missionentry.py (3404B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\station\missions\missionentry.py 2 import localization 3 import utillib 4 from carbonui.control.scrollentries import SE_BaseClassCore 5 from carbonui.primitives.container import Container 6 from eve.client.script.ui.control import eveIcon, eveLabel 7 from eve.client.script.ui.util import uix 8 import carbonui.const as uiconst 9 from eveservices.menu import GetMenuService 10 from menu import MenuLabel 11 from eve.common.lib import appConst as const 12 13 class VirtualBaseMissionEntry(SE_BaseClassCore): 14 __guid__ = 'listentry.VirtualBaseMissionEntry' 15 OnSelectCallback = None 16 17 def Startup(self, *etc): 18 self.sr.label = eveLabel.EveLabelMedium(text='', parent=self, left=5, state=uiconst.UI_DISABLED, color=None, maxLines=1, align=uiconst.CENTERLEFT) 19 self.sr.line = Container(name='lineparent', align=uiconst.TOBOTTOM, parent=self, height=1) 20 21 def GetHeight(_self, *args): 22 node, width = args 23 node.height = uix.GetTextHeight(node.label, maxLines=1) + 4 24 return node.height 25 26 def OnSelect(self, *args): 27 if getattr(self, 'OnSelectCallback', None): 28 self.OnSelectCallback(*args) 29 30 def OnClick(self, *args): 31 self.sr.node.scroll.SelectNode(self.sr.node) 32 self.OnSelect(self) 33 34 def NoEvent(self, *args): 35 pass 36 37 @classmethod 38 def GetCopyData(cls, node): 39 return node.label 40 41 42 class VirtualAgentMissionEntry(VirtualBaseMissionEntry): 43 __guid__ = 'listentry.VirtualAgentMissionEntry' 44 isDragObject = True 45 46 def Load(self, node): 47 self.sr.node = node 48 self.sr.label.text = node.label 49 self.sr.iconList = [] 50 textOffset = 1 51 for iconID, hintText in node.missionIconData: 52 self.sr.iconList.append(eveIcon.Icon(icon=iconID, parent=self, pos=(textOffset, 53 1, 54 16, 55 16), align=uiconst.TOPLEFT, idx=0)) 56 self.sr.iconList[-1].hint = hintText 57 textOffset += self.sr.iconList[-1].width 58 59 self.sr.label.left = textOffset + 4 60 self.rightClickMenu = [] 61 self.rightClickMenu.append((MenuLabel('UI/Agents/Commands/ReadDetails'), self.OpenDetails)) 62 self.rightClickMenu.append((MenuLabel('UI/Agents/Commands/StartConversationWith', {'agentID': self.sr.node.agentID}), self.Convo)) 63 if node.missionState == const.agentMissionStateOffered: 64 self.rightClickMenu.append((MenuLabel('UI/Agents/Commands/RemoveOffer'), self.RemoveOffer)) 65 66 def OpenDetails(self): 67 sm.GetService('agents').PopupMission(self.sr.node.agentID) 68 69 def RemoveOffer(self): 70 sm.StartService('agents').RemoveOfferFromJournal(self.sr.node.agentID) 71 72 def OnDblClick(self, *args): 73 self.OpenDetails() 74 75 def Convo(self): 76 sm.GetService('agents').OpenDialogueWindow(self.sr.node.agentID) 77 78 def GetMenu(self): 79 return self.rightClickMenu 80 81 def GetDragData(self, *args): 82 fakeNode = [] 83 if session.fleetid: 84 _fakeNode = utillib.KeyVal() 85 _fakeNode.__guid__ = 'listentry.VirtualAgentMissionEntry' 86 _fakeNode.agentID = self.sr.node.agentID 87 _fakeNode.charID = session.charid 88 _fakeNode.label = localization.GetByLabel('UI/Agents/MissionJournal') 89 fakeNode = [_fakeNode] 90 return fakeNode