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

viewhelper.py (4642B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\eveclientqatools\sofpreviewer\viewhelper.py
      2 from __future__ import print_function
      3 from carbonui.control.checkbox import Checkbox
      4 from carbonui.control.combo import Combo
      5 from carbonui.control.singlelineedits.singleLineEditText import SingleLineEditText
      6 from carbonui.control.scrollContainer import ScrollContainer
      7 from carbonui.control.slider import Slider
      8 from carbonui.primitives.container import Container
      9 from eve.client.script.ui.control.eveLabel import Label
     10 import carbonui.const as uiconst
     11 
     12 def CreateSlider(label, minValue, maxValue, startValue, valueChangedFunc, parent):
     13     name = GetGenericName(label)
     14     container = CreateContainer(name, parent, padTop=0, padBottom=16)
     15     slider = _CreateSlider(name, label, minValue, maxValue, startValue, valueChangedFunc, container)
     16     return slider
     17 
     18 
     19 def CreateDropdownWithCheckbox(label, values, select, dropdownCallback, checkboxLabel, checkboxCallback, parent):
     20     name = GetGenericName(label)
     21     container = CreateContainer(name, parent)
     22     dropdown = CreateCombo(name, values, dropdownCallback, select, label, container)
     23     checkbox = CreateCheckbox(name, checkboxLabel, checkboxCallback, container)
     24     return (dropdown, checkbox)
     25 
     26 
     27 def CreateLabel(name, width, height, parent, align = uiconst.TOLEFT):
     28     container = CreateContainer(name, parent)
     29     label = Label(name=name, text=name, align=align, width=width, height=height, padLeft=5, padRight=5, padTop=0, padBottom=0, parent=container)
     30     return label
     31 
     32 
     33 def CreateScrollContainer(name, width, height, parent, align = uiconst.TOTOP):
     34     container = ScrollContainer(name=name + '_scrollContainer', align=align, width=width, height=height, padLeft=5, padRight=5, padTop=10, parent=parent)
     35     return container
     36 
     37 
     38 def CreateDropdown(label, values, callback, select, parent, align = uiconst.TOLEFT):
     39     name = GetGenericName(label)
     40     container = CreateContainer(name, parent)
     41     combo = CreateCombo(name, values, callback, select, label, container, align)
     42     return combo
     43 
     44 
     45 def CreateInput(label, value, callback, parent, align = uiconst.TOLEFT):
     46     name = GetGenericName(label)
     47     container = CreateContainer(name, parent)
     48     inputField = _CreateInput(name, value, callback, label, container, align)
     49     return inputField
     50 
     51 
     52 def GetComboListIndex(comboContentList, name):
     53     for index, each in enumerate(comboContentList):
     54         if each.lower() == name.lower():
     55             return index
     56 
     57 
     58 def GetGenericName(label):
     59     return label.replace(' ', '_').replace(':', '').strip().lower()
     60 
     61 
     62 def TrySettingComboOptions(comboBox, options, selectedValue):
     63     options = sorted(options)
     64     if 'None' in options:
     65         o = options.pop(options.index('None'))
     66         options.insert(0, o)
     67     optionTuple = [ (name, i) for i, name in enumerate(options) ]
     68     comboBox.LoadOptions(optionTuple)
     69     return TrySettingComboValue(comboBox, selectedValue)
     70 
     71 
     72 def TrySettingComboValue(comboBox, selectedValue):
     73     try:
     74         comboBox.SelectItemByLabel(selectedValue)
     75     except RuntimeError:
     76         comboBox.SelectItemByIndex(0)
     77         print("Could not select '%s', defaulting to '%s'" % (selectedValue, comboBox.GetKey()))
     78 
     79     return comboBox.GetKey()
     80 
     81 
     82 def CreateCheckbox(name, checkboxLabel, checkboxCallback, parent, align = uiconst.TOLEFT, noPadding = False):
     83     return Checkbox(name=name + '_constraint', align=align, width=75, height=32, padLeft=0 if noPadding else 10, parent=parent, text=checkboxLabel, callback=checkboxCallback)
     84 
     85 
     86 def CreateCombo(name, values, callback, select, label, parent, align = uiconst.TOLEFT, width = 150):
     87     return Combo(name=name + '_combo', align=align, width=width, height=32, parent=parent, label=label, options=[ (name, i) for i, name in enumerate(values) ], callback=callback, select=select)
     88 
     89 
     90 def _CreateInput(name, value, callback, label, parent, align = uiconst.TOLEFT):
     91     return SingleLineEditText(name=name + '_input', align=align, label=label, parent=parent, width=150, height=18, setvalue=value, OnFocusLost=callback, OnReturn=callback)
     92 
     93 
     94 def _CreateSlider(name, label, minValue, maxValue, startVal, valueChangeFunc, parent, align = uiconst.TOLEFT):
     95     return Slider(name=name, align=align, label=label, parent=parent, width=150, height=18, minValue=minValue, maxValue=maxValue, value=startVal, on_dragging=valueChangeFunc, callback=valueChangeFunc)
     96 
     97 
     98 def CreateContainer(name, parent, padTop = 16, padBottom = 0, align = uiconst.TOTOP):
     99     return Container(name=name + '_container', parent=parent, align=align, height=32, padTop=padTop, padBottom=padBottom, padLeft=5, padRight=5)