50 lines
1.4 KiB

import wx
from gooey.gui import formatters
from gooey.gui.components.widgets.bases import TextContainer
class IntegerField(TextContainer):
"""
An integer input field
"""
widget_class = wx.SpinCtrl
def getWidget(self, *args, **options):
widget = self.widget_class(self,
value='',
min=self._options.get('min', 0),
max=self._options.get('max', 100))
return widget
def getWidgetValue(self):
return self.widget.GetValue()
def setValue(self, value):
self.widget.SetValue(int(value))
def formatOutput(self, metatdata, value):
# casting to string so that the generic formatter
# doesn't treat 0 as false/None
return formatters.general(metatdata, str(value))
class DecimalField(IntegerField):
"""
A decimal input field
"""
widget_class = wx.SpinCtrlDouble
def getWidget(self, *args, **options):
widget = self.widget_class(self,
value='',
min=self._options.get('min', 0),
max=self._options.get('max', 100),
inc=self._options.get('increment', 0.01))
widget.SetDigits(self._options.get('precision', widget.GetDigits()))
return widget
def setValue(self, value):
self.widget.SetValue(value)