From 83de90b1a773970383945c51688ecc9d6e908d2c Mon Sep 17 00:00:00 2001 From: gac-maloja Date: Wed, 29 Sep 2021 19:38:15 +0200 Subject: [PATCH] moved SettingsList to separate file --- scam.py | 79 +--------------------------------------------------- settings.py | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 78 deletions(-) create mode 100644 settings.py diff --git a/scam.py b/scam.py index d51c305..d35fa95 100755 --- a/scam.py +++ b/scam.py @@ -25,10 +25,8 @@ except ImportError: from fake import PipelineClient from tools import EXPANDING, STRETCH, make_filled_vbox, make_filled_hbox -from mathentry import MathEntry -from listentry import ListEntry from entrybutton import EntryButton - +from settings import SettingsList pc = PipelineClient("http://sf-daqsync-01:8889") @@ -135,81 +133,6 @@ class MainPanel(wx.Panel): -class SettingsList(wx.GridSizer): - - def __init__(self, parent, hgap=5, vgap=5): - super().__init__(cols=2, hgap=hgap, vgap=vgap) - self.parent = parent - self.children = {} - - def update(self, cfg): - self.clear() - for k, v in sorted(cfg.items()): - self.add(k, v) - - def clear(self): - self.Clear(True) - - def add(self, *args): - new = Setting(self.parent, *args) - self.children[new.get_name()] = new - self.Add(new.state) - self.Add(new.text, 0, wx.EXPAND|wx.ALL) - - def get(self): - res = {} - for i in self.children.values(): - name = i.get_name() - if i.get_state(): - value = i.get_value() - else: - value = None - res[name] = value - return res - - def set(self, name, value): - self.children[name].text.SetValue(value) - - - -class Setting: - - def __init__(self, parent, label, value): - self.state = state = wx.CheckBox(parent, label=label) - - if isinstance(value, list): - self.text = text = ListEntry(parent, style=wx.TE_RIGHT) - else: - self.text = text = MathEntry(parent, style=wx.TE_RIGHT) - - state.Bind(wx.EVT_CHECKBOX, self.on_state_change) - - if value is None: - state.SetValue(False) - text.Disable() - else: - state.SetValue(True) - text.SetValue(value) - - - def get_name(self): - return self.state.GetLabel() - - def get_state(self): - return self.state.GetValue() - - def get_value(self): - return self.text.GetValue() - - - def on_state_change(self, event): - if self.get_state(): - self.text.Enable() - else: - self.text.Disable() - - - app = wx.App() diff --git a/settings.py b/settings.py new file mode 100644 index 0000000..2d5cb3e --- /dev/null +++ b/settings.py @@ -0,0 +1,80 @@ +import wx +from mathentry import MathEntry +from listentry import ListEntry + + +class SettingsList(wx.GridSizer): + + def __init__(self, parent, hgap=5, vgap=5): + super().__init__(cols=2, hgap=hgap, vgap=vgap) + self.parent = parent + self.children = {} + + def update(self, cfg): + self.clear() + for k, v in sorted(cfg.items()): + self.add(k, v) + + def clear(self): + self.Clear(True) + + def add(self, *args): + new = Setting(self.parent, *args) + self.children[new.get_name()] = new + self.Add(new.state) + self.Add(new.text, 0, wx.EXPAND|wx.ALL) + + def get(self): + res = {} + for i in self.children.values(): + name = i.get_name() + if i.get_state(): + value = i.get_value() + else: + value = None + res[name] = value + return res + + def set(self, name, value): + self.children[name].text.SetValue(value) + + + +class Setting: + + def __init__(self, parent, label, value): + self.state = state = wx.CheckBox(parent, label=label) + + if isinstance(value, list): + self.text = text = ListEntry(parent, style=wx.TE_RIGHT) + else: + self.text = text = MathEntry(parent, style=wx.TE_RIGHT) + + state.Bind(wx.EVT_CHECKBOX, self.on_state_change) + + if value is None: + state.SetValue(False) + text.Disable() + else: + state.SetValue(True) + text.SetValue(value) + + + def get_name(self): + return self.state.GetLabel() + + def get_state(self): + return self.state.GetValue() + + def get_value(self): + return self.text.GetValue() + + + def on_state_change(self, event): + if self.get_state(): + self.text.Enable() + else: + self.text.Disable() + + +