added StepsSequenceEntry

This commit is contained in:
2025-05-23 17:03:23 +02:00
parent 14fe0e42e1
commit 8765f28b8a
2 changed files with 46 additions and 2 deletions
+1 -1
View File
@@ -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
+45 -1
View File
@@ -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=""):