(self, callingWindow, context, mainItem, selection, rootMenu, i, pitem)
| 88 | m.Enable(id_, False) |
| 89 | |
| 90 | def getSubMenu(self, callingWindow, context, mainItem, selection, rootMenu, i, pitem): |
| 91 | msw = True if 'wxMSW' in wx.PlatformInfo else False |
| 92 | menu = wx.Menu() |
| 93 | self.chargeEventMap = {} |
| 94 | modType, chargeDict = Ammo.getInstance().getModuleStructuredAmmo(self.module, ammo=self.mainCharges) |
| 95 | if modType == 'ddTurret': |
| 96 | self._addSeparator(menu, _t('Long Range')) |
| 97 | menuItems = [] |
| 98 | for charges in chargeDict.values(): |
| 99 | if len(charges) == 1: |
| 100 | menuItems.append(self._addCharge(rootMenu if msw else menu, charges[0])) |
| 101 | else: |
| 102 | baseCharge = charges[0] |
| 103 | menuItem = self._addCharge(rootMenu if msw else menu, baseCharge) |
| 104 | menuItems.append(menuItem) |
| 105 | subMenu = wx.Menu() |
| 106 | subMenu.Bind(wx.EVT_MENU, self.handleAmmoSwitch) |
| 107 | menuItem.SetSubMenu(subMenu) |
| 108 | self._addSeparator(subMenu, _t('Less Damage')) |
| 109 | for charge in charges: |
| 110 | subMenu.Append(self._addCharge(rootMenu if msw else subMenu, charge)) |
| 111 | self._addSeparator(subMenu, _t('More Damage')) |
| 112 | for menuItem in menuItems: |
| 113 | menu.Append(menuItem) |
| 114 | self._addSeparator(menu, _t('Short Range')) |
| 115 | elif modType == 'ddMissile': |
| 116 | menuItems = [] |
| 117 | for chargeCatName, charges in chargeDict.items(): |
| 118 | menuItem = wx.MenuItem(menu, wx.ID_ANY, self.ddMissileChargeCatTrans.get(chargeCatName, chargeCatName)) |
| 119 | bitmap = BitmapLoader.getBitmap("%s_small" % chargeCatName, "gui") |
| 120 | if bitmap is not None: |
| 121 | menuItem.SetBitmap(bitmap) |
| 122 | menuItems.append(menuItem) |
| 123 | subMenu = wx.Menu() |
| 124 | subMenu.Bind(wx.EVT_MENU, self.handleAmmoSwitch) |
| 125 | menuItem.SetSubMenu(subMenu) |
| 126 | self._addSeparator(subMenu, _t('Less Damage')) |
| 127 | for charge in charges: |
| 128 | subMenu.Append(self._addCharge(rootMenu if msw else subMenu, charge)) |
| 129 | self._addSeparator(subMenu, _t('More Damage')) |
| 130 | for menuItem in menuItems: |
| 131 | menu.Append(menuItem) |
| 132 | elif modType == 'miner': |
| 133 | menuItems = [] |
| 134 | for catHandle, catLabel in self.oreChargeCatTrans.items(): |
| 135 | charges = chargeDict.get(catHandle) |
| 136 | if not charges: |
| 137 | continue |
| 138 | if len(charges) == 1: |
| 139 | menuItems.append(self._addCharge(rootMenu if msw else menu, charges[0])) |
| 140 | else: |
| 141 | menuItem = wx.MenuItem(menu, wx.ID_ANY, catLabel) |
| 142 | menuItems.append(menuItem) |
| 143 | subMenu = wx.Menu() |
| 144 | subMenu.Bind(wx.EVT_MENU, self.handleAmmoSwitch) |
| 145 | menuItem.SetSubMenu(subMenu) |
| 146 | for charge in charges: |
| 147 | subMenu.Append(self._addCharge(rootMenu if msw else subMenu, charge)) |
nothing calls this directly
no test coverage detected