MCPcopy Index your code
hub / github.com/pyfa-org/Pyfa / FloatRangeBox

Class FloatRangeBox

gui/utils/inputs.py:110–146  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

108
109
110class FloatRangeBox(wx.TextCtrl):
111
112 def __init__(self, parent, value, id=wx.ID_ANY, style=0, **kwargs):
113 # Workaround for #2591
114 if 'wxMac' in wx.PlatformInfo and 'size' not in kwargs:
115 kwargs['size'] = wx.Size(97, 26)
116 super().__init__(parent=parent, id=id, style=style, **kwargs)
117 self.Bind(wx.EVT_TEXT, self.OnText)
118 self._storedValue = ''
119 value = [v for v in value if v is not None]
120 if not value:
121 self.ChangeValue('')
122 else:
123 self.ChangeValue('{}-{}'.format(valToStr(min(value)), valToStr(max(value))))
124
125 def ChangeValue(self, value):
126 self._storedValue = value
127 super().ChangeValue(value)
128
129 def OnText(self, event):
130 currentValue = self.GetValue()
131 if currentValue == self._storedValue:
132 event.Skip()
133 return
134 if currentValue == '' or re.match(r'^\d*\.?\d*-?\d*\.?\d*$', currentValue):
135 self._storedValue = currentValue
136 event.Skip()
137 else:
138 self.ChangeValue(self._storedValue)
139
140 def GetValueRange(self):
141 parts = self.GetValue().split('-')
142 if len(parts) == 1:
143 val = strToFloat(parts[0])
144 return (val, val)
145 else:
146 return (strToFloat(parts[0]), strToFloat(parts[1]))

Callers 1

__addInputFieldMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected