added StepsSequenceEntry
This commit is contained in:
@@ -3,7 +3,7 @@ from .alarm import AlarmMixin
|
||||
from .boxes import EXPANDING, MINIMIZED, STRETCH, make_filled_vbox, make_filled_hbox
|
||||
from .checkbox import CheckBox
|
||||
from .completers import ContainsTextCompleter, FuzzyTextCompleter
|
||||
from .entries import StepsRangeEntry, LabeledEntry, LabeledFilenameEntry, LabeledMathEntry, LabeledTweakEntry, LabeledValuesEntry
|
||||
from .entries import StepsRangeEntry, StepsSequenceEntry, LabeledEntry, LabeledFilenameEntry, LabeledMathEntry, LabeledTweakEntry, LabeledValuesEntry
|
||||
from .lists import AutoWidthListCtrl, show_list, show_two_lists
|
||||
from .mods import MainPanel, NotebookDX
|
||||
from .nope import Nope
|
||||
|
||||
@@ -5,7 +5,7 @@ import wx
|
||||
from slic.utils import arithmetic_eval, typename, nice_arange
|
||||
|
||||
from ..persist import PersistableWidget
|
||||
from .boxes import make_filled_hbox
|
||||
from .boxes import EXPANDING, STRETCH, make_filled_hbox, make_filled_vbox
|
||||
from .fname import increase, decrease
|
||||
from .labeled import make_labeled
|
||||
from .nope import Nope
|
||||
@@ -74,6 +74,50 @@ class StepsRangeEntry(wx.BoxSizer):
|
||||
|
||||
|
||||
|
||||
class StepsSequenceEntry(wx.BoxSizer):
|
||||
|
||||
def __init__(self, parent):
|
||||
super().__init__(wx.VERTICAL)
|
||||
|
||||
self.steps = None
|
||||
|
||||
self.values = values = LabeledValuesEntry(parent, label="Values")
|
||||
|
||||
self.nsteps = nsteps = LabeledEntry(parent, label="#Steps")
|
||||
|
||||
nsteps.Disable()
|
||||
self.on_change(None) # initialize #Steps
|
||||
|
||||
values.Bind(wx.EVT_TEXT, self.on_change)
|
||||
|
||||
hb_values = wx.BoxSizer()
|
||||
hb_values.Add(values, 1, wx.EXPAND)
|
||||
|
||||
widgets = (STRETCH, STRETCH, STRETCH, nsteps)
|
||||
hb_pos = make_filled_hbox(widgets, border=20, flag=wx.TOP)
|
||||
|
||||
widgets = (EXPANDING, hb_values, hb_pos)
|
||||
make_filled_vbox(widgets, box=self)
|
||||
|
||||
|
||||
def on_change(self, _event):
|
||||
try:
|
||||
self.steps = steps = self.values.get_values()
|
||||
except ValueError as e:
|
||||
nsteps = ""
|
||||
tooltip = str(e)
|
||||
else:
|
||||
nsteps = str(len(steps))
|
||||
tooltip = str(steps)
|
||||
self.nsteps.SetValue(nsteps)
|
||||
self.nsteps.SetToolTip(tooltip)
|
||||
|
||||
|
||||
def get_values(self):
|
||||
return self.steps
|
||||
|
||||
|
||||
|
||||
class LabeledTweakEntry(wx.BoxSizer):
|
||||
|
||||
def __init__(self, parent, id=wx.ID_ANY, label="", value=""):
|
||||
|
||||
Reference in New Issue
Block a user