MCPcopy Index your code
hub / github.com/pyfa-org/Pyfa / getSubMenu

Method getSubMenu

gui/builtinContextMenus/moduleAmmoChange.py:90–154  ·  view source on GitHub ↗
(self, callingWindow, context, mainItem, selection, rootMenu, i, pitem)

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 11

_addSeparatorMethod · 0.95
_addChargeMethod · 0.95
valuesMethod · 0.80
itemsMethod · 0.80
SetBitmapMethod · 0.80
_tFunction · 0.50
getInstanceMethod · 0.45
appendMethod · 0.45
getMethod · 0.45
getBitmapMethod · 0.45

Tested by

no test coverage detected