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)
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: ")
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']
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
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)
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()
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)