Files
pyfa/gui/builtinContextMenus/damagePattern.py
cncfanatics 37c34a32f3 Add a V in front of the active damage pattern and allow different
bitmaps per menu item when multiple are passed
2010-10-11 21:54:53 +02:00

47 lines
1.5 KiB
Python
Executable File

from gui.contextMenu import ContextMenu
import gui.mainFrame
import service
import gui.fittingView
import wx
from gui import bitmapLoader
class DamagePattern(ContextMenu):
def __init__(self):
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
def display(self, context, selection):
return context in ("resistancesViewFull",) and self.mainFrame.getActiveFit() is not None
def getText(self, context, selection):
sDP = service.DamagePattern.getInstance()
self.patterns = sDP.getDamagePatternList()
self.patterns.sort(key=lambda p: p.name)
m = map(lambda p: p.name, self.patterns)
return m
def activate(self, context, selection, i):
sDP = service.DamagePattern.getInstance()
sFit = service.Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
sFit.setDamagePattern(fitID, self.patterns[i])
wx.PostEvent(self.mainFrame, gui.fittingView.FitChanged(fitID=fitID))
def getBitmap(self, context, selection):
sFit = service.Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
f = sFit.getFit(fitID)
dp = f.damagePattern
if dp is None:
return None
l = []
index = self.patterns.index(dp)
bitmap = bitmapLoader.getBitmap("state_active_small", "icons")
for i in range(len(self.patterns)):
l.append(bitmap if i == index else None)
return l
DamagePattern.register()