From ac18c58a0a11acc0f518ae8a6dd14b8a08a90903 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Mon, 8 Dec 2014 11:54:58 -0500 Subject: [PATCH] fix menu bindings --- gui/builtinContextMenus/changeAffectingSkills.py | 3 ++- gui/builtinContextMenus/damagePattern.py | 3 ++- gui/builtinContextMenus/moduleAmmoPicker.py | 13 +++++++------ gui/builtinContextMenus/tacticalMode.py | 9 +++++---- gui/builtinContextMenus/targetResists.py | 7 ++++--- gui/builtinContextMenus/whProjector.py | 6 +++++- 6 files changed, 25 insertions(+), 16 deletions(-) diff --git a/gui/builtinContextMenus/changeAffectingSkills.py b/gui/builtinContextMenus/changeAffectingSkills.py index e8248a960..cfffddaff 100644 --- a/gui/builtinContextMenus/changeAffectingSkills.py +++ b/gui/builtinContextMenus/changeAffectingSkills.py @@ -65,6 +65,7 @@ class ChangeAffectingSkills(ContextMenu): return menuItem def getSubMenu(self, context, selection, rootMenu, i, pitem): + msw = True if "wxMSW" in wx.PlatformInfo else False self.skillIds = {} sub = wx.Menu() @@ -78,7 +79,7 @@ class ChangeAffectingSkills(ContextMenu): skillItem.SetBitmap(bitmap) for i in xrange(-1, 6): - levelItem = self.addSkill(rootMenu, skill, i) + levelItem = self.addSkill(rootMenu if msw else grandSub, skill, i) grandSub.AppendItem(levelItem) #@ todo: add check to current level. Need to fix #109 first sub.AppendItem(skillItem) diff --git a/gui/builtinContextMenus/damagePattern.py b/gui/builtinContextMenus/damagePattern.py index 724e7ac57..352340204 100644 --- a/gui/builtinContextMenus/damagePattern.py +++ b/gui/builtinContextMenus/damagePattern.py @@ -70,6 +70,7 @@ class DamagePattern(ContextMenu): return menuItem def getSubMenu(self, context, selection, rootMenu, i, pitem): + msw = True if "wxMSW" in wx.PlatformInfo else False rootMenu.Bind(wx.EVT_MENU, self.handlePatternSwitch) # this bit is required for some reason if self.m[i] not in self.subMenus: @@ -87,7 +88,7 @@ class DamagePattern(ContextMenu): # Items that have a parent for pattern in self.subMenus[self.m[i]]: - sub.AppendItem(self.addPattern(rootMenu, pattern)) + sub.AppendItem(self.addPattern(rootMenu if msw else sub, pattern)) return sub diff --git a/gui/builtinContextMenus/moduleAmmoPicker.py b/gui/builtinContextMenus/moduleAmmoPicker.py index ddb3dff44..eede88888 100644 --- a/gui/builtinContextMenus/moduleAmmoPicker.py +++ b/gui/builtinContextMenus/moduleAmmoPicker.py @@ -97,12 +97,12 @@ class ModuleAmmoPicker(ContextMenu): parts = charge.name.split(" ") return map(self.numericConverter, parts) - def addCharge(self, rootMenu, charge): + def addCharge(self, menu, charge): id = wx.NewId() name = charge.name if charge is not None else "Empty" self.chargeIds[id] = charge - item = wx.MenuItem(rootMenu, id, name) - rootMenu.Bind(wx.EVT_MENU, self.handleAmmoSwitch, item) + item = wx.MenuItem(menu, id, name) + menu.Bind(wx.EVT_MENU, self.handleAmmoSwitch, item) item.charge = charge if charge is not None and charge.icon is not None: bitmap = bitmapLoader.getBitmap(charge.icon.iconFile, "pack") @@ -117,6 +117,7 @@ class ModuleAmmoPicker(ContextMenu): m.Enable(id, False) def getSubMenu(self, context, selection, rootMenu, i, pitem): + msw = True if "wxMSW" in wx.PlatformInfo else False m = wx.Menu() self.chargeIds = {} hardpoint = self.module.hardpoint @@ -147,7 +148,7 @@ class ModuleAmmoPicker(ContextMenu): base = charge nameBase = currBase range = currRange - item = self.addCharge(rootMenu, charge) + item = self.addCharge(rootMenu if msw else m, charge) items.append(item) else: if sub is None: @@ -155,9 +156,9 @@ class ModuleAmmoPicker(ContextMenu): sub.Bind(wx.EVT_MENU, self.handleAmmoSwitch) self.addSeperator(sub, "Less Damage") item.SetSubMenu(sub) - sub.AppendItem(self.addCharge(rootMenu, base)) + sub.AppendItem(self.addCharge(rootMenu if msw else sub, base)) - sub.AppendItem(self.addCharge(rootMenu, charge)) + sub.AppendItem(self.addCharge(rootMenu if msw else sub, charge)) if sub is not None: self.addSeperator(sub, "More Damage") diff --git a/gui/builtinContextMenus/tacticalMode.py b/gui/builtinContextMenus/tacticalMode.py index 3cf6f6f05..54fb1c9f6 100644 --- a/gui/builtinContextMenus/tacticalMode.py +++ b/gui/builtinContextMenus/tacticalMode.py @@ -20,22 +20,23 @@ class TacticalMode(ContextMenu): def getText(self, itmContext, selection): return "Tactical Mode" - def addMode(self, rootMenu, mode): + def addMode(self, menu, mode): label = mode.item.name.rsplit()[-2] id = wx.NewId() self.modeIds[id] = mode - menuItem = wx.MenuItem(rootMenu, id, label, kind=wx.ITEM_RADIO) - rootMenu.Bind(wx.EVT_MENU, self.handleMode, menuItem) + menuItem = wx.MenuItem(menu, id, label, kind=wx.ITEM_RADIO) + menu.Bind(wx.EVT_MENU, self.handleMode, menuItem) return menuItem def getSubMenu(self, context, selection, rootMenu, i, pitem): + msw = True if "wxMSW" in wx.PlatformInfo else False self.context = context self.modeIds = {} sub = wx.Menu() for mode in self.modes: - menuItem = self.addMode(rootMenu, mode) + menuItem = self.addMode(rootMenu if msw else sub, mode) sub.AppendItem(menuItem) menuItem.Check(self.currMode.item == mode.item) diff --git a/gui/builtinContextMenus/targetResists.py b/gui/builtinContextMenus/targetResists.py index 6f725fe4a..27e6c5153 100644 --- a/gui/builtinContextMenus/targetResists.py +++ b/gui/builtinContextMenus/targetResists.py @@ -61,6 +61,7 @@ class TargetResists(ContextMenu): return item def getSubMenu(self, context, selection, rootMenu, i, pitem): + msw = True if "wxMSW" in wx.PlatformInfo else False self.patternIds = {} self.subMenus = OrderedDict() self.singles = [] @@ -78,12 +79,12 @@ class TargetResists(ContextMenu): else: self.singles.append(pattern) - sub.AppendItem(self.addPattern(rootMenu, None)) # Add reset + sub.AppendItem(self.addPattern(rootMenu if msw else sub, None)) # Add reset sub.AppendSeparator() # Single items, no parent for pattern in self.singles: - sub.AppendItem(self.addPattern(rootMenu, pattern)) + sub.AppendItem(self.addPattern(rootMenu if msw else sub, pattern)) # Items that have a parent for menuName, patterns in self.subMenus.items(): @@ -99,7 +100,7 @@ class TargetResists(ContextMenu): # Append child items to child menu for pattern in patterns: - grandSub.AppendItem(self.addPattern(rootMenu, pattern)) + grandSub.AppendItem(self.addPattern(rootMenu if msw else grandSub, pattern)) sub.AppendItem(item) #finally, append parent item to root menu return sub diff --git a/gui/builtinContextMenus/whProjector.py b/gui/builtinContextMenus/whProjector.py index 5b4c10e38..ac1bb66cb 100644 --- a/gui/builtinContextMenus/whProjector.py +++ b/gui/builtinContextMenus/whProjector.py @@ -15,6 +15,7 @@ class WhProjector(ContextMenu): return "Add System Effects" def getSubMenu(self, context, selection, rootMenu, i, pitem): + msw = True if "wxMSW" in wx.PlatformInfo else False sMkt = service.Market.getInstance() effdata = sMkt.getSystemWideEffects() @@ -32,7 +33,10 @@ class WhProjector(ContextMenu): swObj, swName, swClass = swData self.idmap[wxid] = (swObj, swName) grandSubItem = wx.MenuItem(grandSub, wxid, swClass) - rootMenu.Bind(wx.EVT_MENU, self.handleSelection, grandSubItem) + if msw: + rootMenu.Bind(wx.EVT_MENU, self.handleSelection, grandSubItem) + else: + grandSub.Bind(wx.EVT_MENU, self.handleSelection, grandSubItem) grandSub.AppendItem(grandSubItem) return sub