tooltipsWrappers.py (3779B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\tooltips\tooltipsWrappers.py 2 from eve.client.script.ui.control.tooltips import TooltipPanel 3 import carbonui.const as uiconst 4 5 class TooltipBaseWrapper(object): 6 tooltipPointer = None 7 8 def __init__(self, *args, **optionalKeywordArguments): 9 self.tooltipPointer = optionalKeywordArguments.get('tooltipPointer', None) 10 11 def GetProperty(self, propertyName): 12 return getattr(self, '_' + propertyName) 13 14 def SetProperty(self, propertyName, value, callback): 15 if getattr(self, '_' + propertyName) != value: 16 setattr(self, '_' + propertyName, value) 17 if callback: 18 callback() 19 20 21 class TooltipHeaderDescriptionWrapper(TooltipBaseWrapper): 22 23 def __init__(self, header, description, *args, **kwds): 24 TooltipBaseWrapper.__init__(self, *args, **kwds) 25 self._headerText = header 26 self._descriptionText = description 27 self.tooltipPanel = None 28 29 headerText = property(lambda self: self.GetProperty('headerText'), lambda self, value: self.SetProperty('headerText', value, self.UpdateHeader)) 30 descriptionText = property(lambda self: self.GetProperty('descriptionText'), lambda self, value: self.SetProperty('descriptionText', value, self.UpdateDescription)) 31 32 def CreateTooltip(self, parent, owner, idx): 33 self.tooltipPanel = TooltipPanel(parent=parent, owner=owner, idx=idx) 34 self.tooltipPanel.LoadGeneric1ColumnTemplate() 35 self.labelObj = self.tooltipPanel.AddLabelMedium(text=self._headerText, bold=True, colSpan=self.tooltipPanel.columns - 1) 36 if self.descriptionText: 37 self.descrObj = self.CreateDescriptionObject() 38 else: 39 self.descrObj = None 40 return self.tooltipPanel 41 42 def CreateDescriptionObject(self): 43 self.descrObj = self.tooltipPanel.AddLabelMedium(text=self._descriptionText, align=uiconst.TOPLEFT, wrapWidth=200, colSpan=self.tooltipPanel.columns, color=(0.6, 0.6, 0.6, 1)) 44 45 def UpdateHeader(self): 46 if self.tooltipPanel and not self.tooltipPanel.destroyed and not self.tooltipPanel.beingDestroyed: 47 self.labelObj.text = self._headerText 48 49 def UpdateDescription(self): 50 if not self.tooltipPanel or self.tooltipPanel.destroyed or self.tooltipPanel.beingDestroyed: 51 return 52 if self.descrObj is None: 53 self.descrObj = self.CreateDescriptionObject() 54 else: 55 self.descrObj.text = self._descriptionText 56 57 58 class TooltipDescriptionWrapper(TooltipBaseWrapper): 59 60 def __init__(self, description, *args, **kwds): 61 TooltipBaseWrapper.__init__(self, *args, **kwds) 62 self._descriptionText = description 63 self.tooltipPanel = None 64 65 descriptionText = property(lambda self: self.GetProperty('descriptionText'), lambda self, value: self.SetProperty('descriptionText', value, self.UpdateDescription)) 66 67 def CreateTooltip(self, parent, owner, idx): 68 self.tooltipPanel = TooltipPanel(parent=parent, owner=owner, idx=idx) 69 self.tooltipPanel.LoadGeneric1ColumnTemplate() 70 self.descrObj = self.CreateDescriptionObject() 71 return self.tooltipPanel 72 73 def CreateDescriptionObject(self): 74 self.descrObj = self.tooltipPanel.AddLabelMedium(text=self._descriptionText, align=uiconst.TOPLEFT, wrapWidth=200, colSpan=self.tooltipPanel.columns, color=(0.6, 0.6, 0.6, 1)) 75 76 def UpdateDescription(self): 77 if not self.tooltipPanel or self.tooltipPanel.destroyed or self.tooltipPanel.beingDestroyed: 78 return 79 if self.descrObj is None: 80 self.descrObj = self.CreateDescriptionObject() 81 else: 82 self.descrObj.text = self._descriptionText