From d9e9fa4ec43811215bf42bd70ef9ba694245678d Mon Sep 17 00:00:00 2001 From: Alexander Vasarab Date: Mon, 29 Jun 2020 10:26:32 -0700 Subject: [PATCH] Implement reset button functionality --- munter/gui.py | 46 ++++++++++++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/munter/gui.py b/munter/gui.py index fef293a..fc5d82a 100644 --- a/munter/gui.py +++ b/munter/gui.py @@ -19,12 +19,7 @@ class MainFrame(wx.Frame): self.SetTitle('Munter.py') self.SetSize(600, 400) - self.props = dict() - self.props['distance'] = 0 - self.props['elevation'] = 0 - self.props['fitness'] = 'average' - self.props['units'] = 'imperial' - self.props['travel_mode'] = 'uphill' + self.props = self.init_props() self.pnl = wx.Panel(self) @@ -35,10 +30,8 @@ class MainFrame(wx.Frame): st.SetFont(font) - #sizer = wx.BoxSizer(wx.VERTICAL) sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.Add(st, wx.SizerFlags().Border(wx.TOP|wx.LEFT, 0)) - #self.pnl.SetSizer(sizer) # text entry fields self.st_distance = wx.StaticText(self.pnl, label="Distance: ") @@ -56,8 +49,9 @@ class MainFrame(wx.Frame): self.st_travel_mode = wx.StaticText(self.pnl, label="Travel Mode: ") rb_travel_mode_choices = ['uphill', 'flat', 'downhill', 'bushwhacking'] rb_travel_mode_default = 'uphill' - self.rb_travel_mode = wx.ComboBox(self.pnl, choices=rb_travel_mode_choices, - value=rb_travel_mode_default, style=wx.CB_READONLY) + self.rb_travel_mode = wx.ComboBox(self.pnl, + choices=rb_travel_mode_choices, + value=rb_travel_mode_default, style=wx.CB_READONLY) self.st_units = wx.StaticText(self.pnl, label="Units: ") rb_units_choices = ['imperial', 'metric'] @@ -70,26 +64,27 @@ class MainFrame(wx.Frame): self.rb_units.append(wx.RadioButton(self.pnl, label=label, style=style)) # static text - self.st_mtc = wx.StaticText(self.pnl, label="0h", + self.st_mtc = wx.StaticText(self.pnl, label="", style=wx.ALIGN_CENTRE_HORIZONTAL) st_mtc_font = st.GetFont() st_mtc_font.PointSize += 10 self.st_mtc.SetFont(st_mtc_font) + # buttons + self.b_reset = wx.Button(self.pnl, wx.NewId(), '&Reset', (-1, -1), + wx.DefaultSize) + # bindings self.pnl.Bind(wx.EVT_TEXT, self.update_distance, self.te_distance) self.pnl.Bind(wx.EVT_TEXT, self.update_elevation, self.te_elevation) self.rb_fitness.Bind(wx.EVT_COMBOBOX, self.update_fitness) self.rb_travel_mode.Bind(wx.EVT_COMBOBOX, self.update_travel_mode) + self.b_reset.Bind(wx.EVT_BUTTON, self.reset) for cb in self.rb_units: cb.Bind(wx.EVT_RADIOBUTTON, self.update_units) - # buttons - b_clear = wx.Button(self.pnl, wx.NewId(), '&Clear', (-1, -1), - wx.DefaultSize) - # layout b = 5 w = 100 @@ -127,7 +122,7 @@ class MainFrame(wx.Frame): hsizer_mtc.SetItemMinSize(self.st_mtc, (w, -1)) hsizer5 = wx.BoxSizer(wx.HORIZONTAL) - hsizer5.Add(b_clear, 0) + hsizer5.Add(self.b_reset, 0) b = 5 vsizer1 = wx.BoxSizer(wx.VERTICAL) @@ -143,6 +138,16 @@ class MainFrame(wx.Frame): self.pnl.SetSizerAndFit(vsizer1) self.pnl.SetClientSize(vsizer1.GetSize()) + self.update_mtc() + + def init_props(self): + props = dict() + props['distance'] = 0 + props['elevation'] = 0 + props['fitness'] = 'average' + props['units'] = 'imperial' + props['travel_mode'] = 'uphill' + return props def update_distance(self, event): value = self.te_distance.GetValue() @@ -194,6 +199,15 @@ class MainFrame(wx.Frame): self.pnl.Layout() + def reset(self, event): + self.props = self.init_props() + self.te_distance.SetValue(str(self.props['distance'])) + self.te_elevation.SetValue(str(self.props['elevation'])) + self.rb_fitness.SetValue(str(self.props['fitness'])) + self.rb_travel_mode.SetValue(str(self.props['travel_mode'])) + # leave units as the user selected + self.update_mtc() + def startup(): app = wx.App() frm = MainFrame(None) -- 2.30.2