X-Git-Url: https://wylark.com/src/munter.git/blobdiff_plain/de57724f5a4113e74cc23794cb9578661686b3cd..0b8de1afc758a308cb5a2cc27f106c635c6f546a:/munter/gui.py?ds=inline diff --git a/munter/gui.py b/munter/gui.py index c8e4130..fef293a 100644 --- a/munter/gui.py +++ b/munter/gui.py @@ -48,22 +48,26 @@ class MainFrame(wx.Frame): self.te_elevation = wx.TextCtrl(self.pnl, value="0", size=(140, -1)) self.st_fitness = wx.StaticText(self.pnl, label="Fitness: ") - cb_fitness_choices = ['slow', 'average', 'fast'] - cb_fitness_default = 'average' - self.cb_fitness = wx.ComboBox(self.pnl, choices=cb_fitness_choices, - value=cb_fitness_default, style=wx.CB_READONLY) + rb_fitness_choices = ['slow', 'average', 'fast'] + rb_fitness_default = 'average' + self.rb_fitness = wx.ComboBox(self.pnl, choices=rb_fitness_choices, + value=rb_fitness_default, style=wx.CB_READONLY) self.st_travel_mode = wx.StaticText(self.pnl, label="Travel Mode: ") - cb_travel_mode_choices = ['uphill', 'flat', 'downhill', 'bushwhacking'] - cb_travel_mode_default = 'uphill' - self.cb_travel_mode = wx.ComboBox(self.pnl, choices=cb_travel_mode_choices, - value=cb_travel_mode_default, style=wx.CB_READONLY) + 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.st_units = wx.StaticText(self.pnl, label="Units: ") - cb_units_choices = ['imperial', 'metric'] - cb_units_default = 'imperial' - self.cb_units = wx.ComboBox(self.pnl, choices=cb_units_choices, - value=cb_units_default, style=wx.CB_READONLY) + rb_units_choices = ['imperial', 'metric'] + rb_units_default = 'imperial' + + self.rb_units = [] + for choice in range(len(rb_units_choices)): + label = rb_units_choices[choice] + style = wx.RB_GROUP if not choice else 0 + self.rb_units.append(wx.RadioButton(self.pnl, label=label, style=style)) # static text self.st_mtc = wx.StaticText(self.pnl, label="0h", @@ -76,9 +80,11 @@ class MainFrame(wx.Frame): # 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.cb_fitness.Bind(wx.EVT_COMBOBOX, self.update_fitness) - self.cb_travel_mode.Bind(wx.EVT_COMBOBOX, self.update_travel_mode) - self.cb_units.Bind(wx.EVT_COMBOBOX, self.update_units) + self.rb_fitness.Bind(wx.EVT_COMBOBOX, self.update_fitness) + self.rb_travel_mode.Bind(wx.EVT_COMBOBOX, self.update_travel_mode) + + 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), @@ -102,17 +108,18 @@ class MainFrame(wx.Frame): hsizer_fitness = wx.BoxSizer(wx.HORIZONTAL) hsizer_fitness.Add(self.st_fitness, 0, wx.RIGHT, b) - hsizer_fitness.Add(self.cb_fitness, 1, wx.GROW, b) + hsizer_fitness.Add(self.rb_fitness, 1, wx.GROW, b) hsizer_fitness.SetItemMinSize(self.st_fitness, (w, -1)) hsizer_travel_mode = wx.BoxSizer(wx.HORIZONTAL) hsizer_travel_mode.Add(self.st_travel_mode, 0, wx.RIGHT, b) - hsizer_travel_mode.Add(self.cb_travel_mode, 1, wx.GROW, b) + hsizer_travel_mode.Add(self.rb_travel_mode, 1, wx.GROW, b) hsizer_travel_mode.SetItemMinSize(self.st_travel_mode, (w, -1)) hsizer_units = wx.BoxSizer(wx.HORIZONTAL) hsizer_units.Add(self.st_units, 0, wx.RIGHT, b) - hsizer_units.Add(self.cb_units, 1, wx.GROW, b) + for cb in range(len(self.rb_units)): + hsizer_units.Add(self.rb_units[cb], cb + 1, wx.GROW, b) hsizer_units.SetItemMinSize(self.st_units, (w, -1)) hsizer_mtc = wx.BoxSizer(wx.HORIZONTAL) @@ -150,19 +157,20 @@ class MainFrame(wx.Frame): self.update_mtc() def update_fitness(self, event): - value = self.cb_fitness.GetValue() + value = self.rb_fitness.GetValue() if value: self.props['fitness'] = value self.update_mtc() def update_travel_mode(self, event): - value = self.cb_travel_mode.GetValue() + value = self.rb_travel_mode.GetValue() if value: self.props['travel_mode'] = value self.update_mtc() def update_units(self, event): - value = self.cb_units.GetValue() + rb = event.GetEventObject() + value = rb.GetLabel() if value: self.props['units'] = value self.update_mtc()