fix menu bindings

This commit is contained in:
blitzmann
2014-12-08 11:54:58 -05:00
parent 281850d7df
commit ac18c58a0a
6 changed files with 25 additions and 16 deletions

View File

@@ -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)

View File

@@ -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

View File

@@ -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")

View File

@@ -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)

View File

@@ -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

View File

@@ -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