Files
pyfa/gui/builtinContextMenus/graphDmgDroneMode.py
2019-07-30 19:12:45 +03:00

54 lines
1.8 KiB
Python

from collections import OrderedDict
# noinspection PyPackageRequirements
import wx
import gui.globalEvents as GE
import gui.mainFrame
from gui.contextMenu import ContextMenuUnconditional
from service.const import GraphDpsDroneMode
from service.settings import GraphSettings
class GraphDmgDroneModeMenu(ContextMenuUnconditional):
def __init__(self):
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
self.settings = GraphSettings.getInstance()
def display(self, callingWindow, srcContext):
return srcContext == 'dmgStatsGraph'
def getText(self, callingWindow, itmContext):
return 'Drone Mode'
def handleModeSwitch(self, event):
option = self.idOptionMap[event.Id]
if option == self.settings.get('mobileDroneMode'):
return
self.settings.set('mobileDroneMode', option)
wx.PostEvent(self.mainFrame, GE.GraphOptionChanged())
def getSubMenu(self, callingWindow, context, rootMenu, i, pitem):
m = wx.Menu()
if "wxMSW" in wx.PlatformInfo:
bindmenu = rootMenu
else:
bindmenu = m
self.idOptionMap = {}
optionMap = OrderedDict([
(GraphDpsDroneMode.auto, 'Auto'),
(GraphDpsDroneMode.followTarget, 'Stick to Target'),
(GraphDpsDroneMode.followAttacker, 'Stick to Attacker')])
for option, label in optionMap.items():
menuId = ContextMenuUnconditional.nextID()
item = wx.MenuItem(m, menuId, label, kind=wx.ITEM_CHECK)
bindmenu.Bind(wx.EVT_MENU, self.handleModeSwitch, item)
m.Append(item)
item.Check(option == self.settings.get('mobileDroneMode'))
self.idOptionMap[menuId] = option
return m
GraphDmgDroneModeMenu.register()