diff --git a/gooey/gui/widgets/choosers.py b/gooey/gui/widgets/choosers.py index 6bd0f19..4c54aa9 100644 --- a/gooey/gui/widgets/choosers.py +++ b/gooey/gui/widgets/choosers.py @@ -27,7 +27,7 @@ class AbstractChooser(object): def do_layout(self, parent): self.panel = wx.Panel(parent) - + self.panel.SetDoubleBuffered(True) self.title = self.CreateNameLabelWidget(self.panel) self.help_msg = self.CreateHelpMsgWidget(self.panel) self.text_box = wx.TextCtrl(self.panel) diff --git a/gooey/gui/widgets/components.py b/gooey/gui/widgets/components.py index f990d5c..bfc7aa9 100644 --- a/gooey/gui/widgets/components.py +++ b/gooey/gui/widgets/components.py @@ -1,14 +1,15 @@ - -from gooey.gui.widgets import widget_pack - -__author__ = 'Chris' - import wx from gooey.gui import styling +from gooey.gui.widgets import widget_pack +from collections import namedtuple class BaseGuiComponent(object): def __init__(self, data, widget_pack): + ''' + :param data: field info (title, help, etc..) + :param widget_pack: internal wxWidgets to render + ''' self.data = data # parent @@ -21,16 +22,13 @@ class BaseGuiComponent(object): # Internal WidgetPack self.widget_pack = widget_pack - # used to throttle resizing (to avoid widget jiggle) - # TODO: figure out anti-jiggle technology - # self.event_stack = [] - def build(self, parent): return self.do_layout(parent) def do_layout(self, parent): self.panel = wx.Panel(parent) + self.title = self.createTitle(self.panel) self.help_msg = self.createHelpMsgWidget(self.panel) self.help_msg.SetMinSize((0, -1)) @@ -50,7 +48,7 @@ class BaseGuiComponent(object): vertical_container.Add(core_widget_set, 0, wx.EXPAND) self.panel.SetSizer(vertical_container) - self.panel.Bind(wx.EVT_SIZE, self.onResize) + # self.panel.Bind(wx.EVT_SIZE, self.onResize) return self.panel def createHelpMsgWidget(self, parent): @@ -77,12 +75,12 @@ class BaseGuiComponent(object): def onResize(self, evt): # handle internal widgets - self.panel.Freeze() + # self.panel.Freeze() self._onResize(evt) # propagate event to child widgets self.widget_pack.onResize(evt) evt.Skip() - self.panel.Thaw() + # self.panel.Thaw() def _onResize(self, evt): if not self.help_msg: @@ -103,6 +101,9 @@ class BaseGuiComponent(object): # used only for unittesting return self.widget_pack.widget + def __repr__(self): + return self.__class__.__name__ + class CheckBox(BaseGuiComponent): def __init__(self, data, widget_pack=None): @@ -214,9 +215,8 @@ class RadioGroup(object): def GetValue(self): vals = [button.GetValue() for button in self.radio_buttons] - # print self.option_stings[vals.index(True)] try: - opts = self.option_stings[vals.index(True)][0] + return self.option_stings[vals.index(True)][0] except: return '' @@ -224,9 +224,6 @@ class RadioGroup(object): return self.radio_buttons - - - FileChooser = lambda data: BaseGuiComponent(data=data, widget_pack=widget_pack.FileChooserPayload()) MultiFileChooser = lambda data: BaseGuiComponent(data=data, widget_pack=widget_pack.MultiFileSaverPayload()) DirChooser = lambda data: BaseGuiComponent(data=data, widget_pack=widget_pack.DirChooserPayload()) @@ -236,6 +233,3 @@ TextField = lambda data: BaseGuiComponent(data=data, widget_pack=widget_ Dropdown = lambda data: BaseGuiComponent(data=data, widget_pack=widget_pack.DropdownPayload()) Counter = lambda data: BaseGuiComponent(data=data, widget_pack=widget_pack.CounterPayload()) - - - diff --git a/gooey/gui/widgets/widget_pack.py b/gooey/gui/widgets/widget_pack.py index 47d259a..188e0a5 100644 --- a/gooey/gui/widgets/widget_pack.py +++ b/gooey/gui/widgets/widget_pack.py @@ -44,7 +44,6 @@ class BaseChooser(WidgetPack): self.button = None def build(self, parent, data=None): - self.parent = parent self.option_string = data['commands'][0] if data['commands'] else '' self.text_box = wx.TextCtrl(self.parent) @@ -71,6 +70,11 @@ class BaseChooser(WidgetPack): def onButton(self, evt): raise NotImplementedError + + def __repr__(self): + return self.__class__.__name__ + + class BaseFileChooser(BaseChooser): def __init__(self, dialog): BaseChooser.__init__(self)