Convert travel mode/units from combobox to radios
authorAlexander Vasarab <alexander@wylark.com>
Mon, 29 Jun 2020 17:07:06 +0000 (10:07 -0700)
committerAlexander Vasarab <alexander@wylark.com>
Mon, 29 Jun 2020 17:07:06 +0000 (10:07 -0700)
munter/gui.py

index c8e4130df45d94482e76dfaedd4b4d536e380214..141a24ca84e782ccb2fd2141e39859d6e3baf73a 100644 (file)
@@ -62,8 +62,12 @@ class MainFrame(wx.Frame):
         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)
+
+        self.cb_units = []
+        for choice in range(len(cb_units_choices)):
+            label = cb_units_choices[choice]
+            style = wx.RB_GROUP if not choice else 0
+            self.cb_units.append(wx.RadioButton(self.pnl, label=label, style=style))
 
         # static text
         self.st_mtc = wx.StaticText(self.pnl, label="0h",
@@ -78,7 +82,9 @@ class MainFrame(wx.Frame):
         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)
+
+        for cb in self.cb_units:
+            cb.Bind(wx.EVT_RADIOBUTTON, self.update_units)
 
         # buttons
         b_clear = wx.Button(self.pnl, wx.NewId(), '&Clear', (-1, -1),
@@ -112,7 +118,8 @@ class MainFrame(wx.Frame):
 
         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.cb_units)):
+            hsizer_units.Add(self.cb_units[cb], cb + 1, wx.GROW, b)
         hsizer_units.SetItemMinSize(self.st_units, (w, -1))
 
         hsizer_mtc = wx.BoxSizer(wx.HORIZONTAL)
@@ -162,7 +169,8 @@ class MainFrame(wx.Frame):
         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()