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

edit.py (2928B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\control\entries\edit.py
      2 import logging
      3 from carbonui import Density, uiconst
      4 from carbonui.control.scrollentries import SE_BaseClassCore
      5 from carbonui.control.singlelineedits.singleLineEditFloat import SingleLineEditFloat
      6 from carbonui.control.singlelineedits.singleLineEditInteger import SingleLineEditInteger
      7 from carbonui.control.singlelineedits.singleLineEditText import SingleLineEditText
      8 from carbonui.primitives.container import Container
      9 from eve.client.script.ui.control.eveLabel import EveLabelSmall
     10 from eve.client.script.ui.util import uix
     11 log = logging.getLogger(__name__)
     12 
     13 class EditEntry(SE_BaseClassCore):
     14     __guid__ = 'listentry.Edit'
     15     __params__ = ['label']
     16     default_showHilite = False
     17 
     18     def Startup(self, args):
     19         Container(name='push', parent=self, height=3, align=uiconst.TOTOP)
     20         Container(name='push', parent=self, width=128, align=uiconst.TOLEFT)
     21         Container(name='push', parent=self, width=3, align=uiconst.TORIGHT)
     22         self.sr.label = EveLabelSmall(text='', parent=self, left=8, top=5, width=112, state=uiconst.UI_DISABLED)
     23         self.sr.edit = SingleLineEditText(name='textEdit', parent=self, align=uiconst.TOTOP, density=Density.COMPACT)
     24 
     25     def Load(self, node):
     26         self.sr.node = node
     27         self.sr.label.text = self.sr.node.label
     28         if self.sr.node.Get('lines', 1) != 1:
     29             log.error('listentry.Edit is not multi line')
     30         if self.sr.node.Get('intmode', 0):
     31             minInt, maxInt = self.sr.node.intmode
     32             self.sr.edit.Close()
     33             self.sr.edit = SingleLineEditInteger(name='intEdit', parent=self, align=uiconst.TOTOP, minValue=minInt, maxValue=maxInt)
     34         elif self.sr.node.Get('floatmode', 0):
     35             minFloat, maxFloat = self.sr.node.floatmode
     36             self.sr.edit.Close()
     37             self.sr.edit = SingleLineEditFloat(name='floatEdit', parent=self, align=uiconst.TOTOP, minValue=minFloat, maxValue=maxFloat)
     38         if self.sr.node.Get('setValue', None) is None:
     39             self.sr.node.setValue = ''
     40         if self.sr.node.Get('hintText', None):
     41             self.sr.edit.SetHintText(self.sr.node.hintText)
     42         self.sr.edit.SetValue(self.sr.node.setValue)
     43         if self.sr.node.Get('maxLength', None):
     44             self.sr.edit.SetMaxLength(self.sr.node.maxLength)
     45         if self.sr.node.Get('name', ''):
     46             self.sr.edit.name = self.sr.node.name
     47         self.sr.edit.OnChange = self.OnChange
     48         self.sr.node.GetValue = self.sr.edit.GetValue
     49 
     50     def OnChange(self, *args):
     51         if self is not None and not self.destroyed and self.sr.node is not None:
     52             self.sr.node.setValue = self.sr.edit.GetValue()
     53 
     54     def GetHeight(self, *args):
     55         node, width = args
     56         node.height = max(22, uix.GetTextHeight(node.label, width=112)) + 6
     57         return node.height