Round the slider's value, but not the internal representation.
authorJosh Blum <josh@joshknows.com>
Wed, 9 Sep 2009 20:05:38 +0000 (13:05 -0700)
committerJosh Blum <josh@joshknows.com>
Wed, 9 Sep 2009 20:05:38 +0000 (13:05 -0700)
Now, the slider can operate on any step size without killing the precision for other forms.

gr-wxgui/src/python/forms/converters.py
gr-wxgui/src/python/forms/forms.py

index 9f757aa8410eb24b7d226e9c828da4caa8a2fd6c..3cc13466a5de900c8ecc751f8b4aa323e952f7b8 100644 (file)
@@ -134,8 +134,7 @@ class slider_converter(abstract_converter):
                self._scaler = float(maximum - minimum)/num_steps
                self._cast = cast
        def external_to_internal(self, v):
-               #slider's internal representation is an integer
-               return int(round((v - self._offset)/self._scaler))
+               return (v - self._offset)/self._scaler
        def internal_to_external(self, v):
                return self._cast(v*self._scaler + self._offset)
        def help(self):
index c69315b0358906c531bd1ceaeaeb23defe9237e1..c0f181b4d8050d33c442566188cc3c185850f99a 100644 (file)
@@ -37,6 +37,9 @@ The forms follow a layered model:
 Known problems:
   * An empty label in the radio box still consumes space.
   * The static text cannot resize the parent at runtime.
+  * Text box should indicate its that its edited but not committed.
+    * Colorize?
+    * Tab out to commit?
 """
 
 EXT_KEY = 'external'
@@ -176,7 +179,7 @@ class _slider_base(_form_base):
                self._add_widget(self._slider, label, flag=wx.EXPAND)
 
        def _handle(self, event): self[INT_KEY] = self._slider.GetValue()
-       def _update(self, value): self._slider.SetValue(value)
+       def _update(self, value): self._slider.SetValue(int(round(value)))
 
 ########################################################################
 # Static Text Form