Merge branch 'forms' of http://gnuradio.org/git/jblum into master
authorJohnathan Corgan <jcorgan@corganenterprises.com>
Thu, 10 Sep 2009 00:37:01 +0000 (17:37 -0700)
committerJohnathan Corgan <jcorgan@corganenterprises.com>
Thu, 10 Sep 2009 00:37:01 +0000 (17:37 -0700)
* 'forms' of http://gnuradio.org/git/jblum:
  set text box bg color on change
  Round the slider's value, but not the internal representation.

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..8dc58367d9deac34251467061d307388b816945e 100644 (file)
@@ -176,7 +176,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
@@ -224,11 +224,18 @@ class text_box(_form_base):
        def __init__(self, label='', width=-1, converter=converters.eval_converter(), **kwargs):
                _form_base.__init__(self, converter=converter, **kwargs)
                self._text_box = wx.TextCtrl(self._parent, size=wx.Size(width, -1), style=wx.TE_PROCESS_ENTER)
+               self._default_bg_colour = self._text_box.GetBackgroundColour()
                self._text_box.Bind(wx.EVT_TEXT_ENTER, self._handle)
+               self._text_box.Bind(wx.EVT_TEXT, self._update_color)
                self._add_widget(self._text_box, label)
 
+       def _update_color(self, *args):
+               if self._text_box.GetValue() == self[INT_KEY]:
+                       self._text_box.SetBackgroundColour(self._default_bg_colour)
+               else: self._text_box.SetBackgroundColour('#EEDDDD')
+
        def _handle(self, event): self[INT_KEY] = self._text_box.GetValue()
-       def _update(self, value): self._text_box.SetValue(value)
+       def _update(self, value): self._text_box.SetValue(value); self._update_color()
 
 ########################################################################
 # Slider Form