NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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