text box control: string mode
authorjblum <jblum@221aa14e-8319-0410-a670-987f0aec2ac5>
Tue, 14 Oct 2008 05:16:46 +0000 (05:16 +0000)
committerjblum <jblum@221aa14e-8319-0410-a670-987f0aec2ac5>
Tue, 14 Oct 2008 05:16:46 +0000 (05:16 +0000)
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@9793 221aa14e-8319-0410-a670-987f0aec2ac5

grc/src/grc_gnuradio/wxgui/callback_controls.py

index a8e7a9320b496503b9f85ec3034f4848a48d697d..8027a580c4663c05ca70c3d0f7552df763a104aa 100644 (file)
@@ -263,6 +263,8 @@ class text_box_control(_control_base):
                for obj in (label_text, text_box): #fill the container with label and text entry box
                        label_text_sizer.Add(obj, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL)
                self.Add(label_text_sizer, 0, wx.ALIGN_CENTER)
+               #set the value, detect string mode
+               self._string_mode = isinstance(value, str)
                self.text_box.SetValue(str(value))
 
        def get_value(self):
@@ -276,8 +278,13 @@ class text_box_control(_control_base):
                """
                An enter key was pressed. Read the text box, call the callback.
                If the text cannot be evaluated, do not try callback.
+               Do not evaluate the text box value in string mode.
                """
-               try: self._value = eval(self.text_box.GetValue())
-               except: return
+               if self._string_mode: self._value = self.text_box.GetValue()
+               else:
+                       try: self._value = eval(self.text_box.GetValue())
+                       except Exception, e:
+                               print >> sys.stderr, 'Error in evaluate value from handle enter.\n', e
+                               return
                try: self.call()
                except Exception, e: print >> sys.stderr, 'Error in exec callback from handle enter.\n', e