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

checkbox.py (2714B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\control\entries\checkbox.py
      2 import carbonui.control.checkbox
      3 import carbonui.control.radioButton
      4 import uthread
      5 from carbonui import uiconst
      6 from eve.client.script.ui.control.entries.generic import Generic
      7 from eve.client.script.ui.util import uix
      8 
      9 class CheckboxEntry(Generic):
     10     __guid__ = 'listentry.Checkbox'
     11     __params__ = ['cfgname', 'retval']
     12 
     13     def Startup(self, *args):
     14         Generic.Startup(self, args)
     15         self.sr.label.top = 0
     16         self.sr.label.SetAlign(uiconst.CENTERLEFT)
     17 
     18     def Load(self, args):
     19         Generic.Load(self, args)
     20         data = self.sr.node
     21         group = data.Get('group', None)
     22         if group:
     23             self.sr.checkbox = carbonui.control.radioButton.RadioButton(align=uiconst.CENTERLEFT, pos=(0, 0, 16, 16), state=uiconst.UI_DISABLED, callback=self.CheckBoxChange, parent=self, idx=0, groupname=group, retval=data.retval, checked=data.checked, settingsKey=data.cfgname)
     24         else:
     25             self.sr.checkbox = carbonui.control.checkbox.Checkbox(align=uiconst.CENTERLEFT, pos=(0, 0, 16, 16), state=uiconst.UI_DISABLED, callback=self.CheckBoxChange, parent=self, idx=0, checked=data.checked, settingsKey=data.cfgname)
     26         self.sr.label.text = data.label
     27         self.sr.label.tabs = data.get('tabs', [])
     28         self.sr.checkbox.left = 4 + 16 * data.Get('sublevel', 0)
     29         self.sr.label.left = 24 + 16 * data.Get('sublevel', 0)
     30         self.sr.label.Update()
     31 
     32     def CheckBoxChange(self, cb):
     33         self.sr.node.checked = self.sr.checkbox.checked
     34         self.sr.node.OnChange(cb, self.sr.node)
     35 
     36     def GetHeight(self, *args):
     37         node, width = args
     38         height = CheckboxEntry.GetDynamicHeight(node, width)
     39         node.height = height
     40         return height
     41 
     42     def OnCharSpace(self, enteredChar, *args):
     43         uthread.pool('checkbox::OnChar', self.OnClick, self)
     44         return 1
     45 
     46     @staticmethod
     47     def GetDynamicHeight(node, width):
     48         height = max(19, uix.GetTextHeight(node.label, maxLines=1) + 4)
     49         return height
     50 
     51     def OnClick(self, *args):
     52         self.sr.checkbox.OnClick(*args)
     53 
     54     def OnMouseEnter(self, *args):
     55         super(CheckboxEntry, self).OnMouseEnter(*args)
     56         self.sr.checkbox.OnMouseEnter(*args)
     57 
     58     def OnMouseExit(self, *args):
     59         super(CheckboxEntry, self).OnMouseExit(*args)
     60         self.sr.checkbox.OnMouseExit(*args)
     61 
     62     def OnMouseDown(self, *args):
     63         super(CheckboxEntry, self).OnMouseDown(*args)
     64         self.sr.checkbox.OnMouseDown(*args)
     65 
     66     def OnMouseUp(self, *args):
     67         super(CheckboxEntry, self).OnMouseUp(*args)
     68         self.sr.checkbox.OnMouseUp(*args)