]> git.gag.com Git - debian/gnuradio/commitdiff
color coding for param entry boxes
authorjblum <jblum@221aa14e-8319-0410-a670-987f0aec2ac5>
Tue, 16 Sep 2008 16:59:13 +0000 (16:59 +0000)
committerjblum <jblum@221aa14e-8319-0410-a670-987f0aec2ac5>
Tue, 16 Sep 2008 16:59:13 +0000 (16:59 +0000)
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@9584 221aa14e-8319-0410-a670-987f0aec2ac5

grc/data/platforms/python/blocks/gr_sig_source_x.xml
grc/src/platforms/base/Param.py
grc/src/platforms/gui/Param.py
grc/src/platforms/python/Constants.py.in
grc/src/platforms/python/Param.py
grc/src/platforms/python/Port.py

index 7ad0c20a4888554a9fdccf8bd670eb2700637d15..53434c4304c5e1a76d2a97899a6da69645d78e1b 100644 (file)
                        <name>Complex</name>
                        <key>complex</key>
                        <opt>fcn:c</opt>
+                       <opt>offset_type:complex</opt>
                </option>
                <option>
                        <name>Float</name>
                        <key>float</key>
                        <opt>fcn:f</opt>
+                       <opt>offset_type:real</opt>
                </option>
                <option>
                        <name>Int</name>
                        <key>int</key>
                        <opt>fcn:i</opt>
+                       <opt>offset_type:int</opt>
                </option>
                <option>
                        <name>Short</name>
                        <key>short</key>
                        <opt>fcn:s</opt>
+                       <opt>offset_type:int</opt>
                </option>
        </param>
        <param>
@@ -90,7 +94,7 @@
                <name>Offset</name>
                <key>offset</key>
                <value>0</value>
-               <type>complex</type>
+               <type>$type.offset_type</type>
        </param>
        <source>
                <name>out</name>
index 232f6758f4fdc2290d55abb96140d3f36b0de88e..bc169138d9772519b762047f556dfcbbd6ac4535 100644 (file)
@@ -163,6 +163,8 @@ class Param(Element):
                """
                raise NotImplementedError
 
+       def get_color(self): return '#FFFFFF'
+
        def __str__(self): return 'Param - %s(%s)'%(self.get_name(), self.get_key())
 
        def is_param(self): return True
index f45d80bba7ff8580a4518c566d8d320b32d041a5..e9ccb1c25cab839fd267d9792b9e7e0c34321ed8 100644 (file)
@@ -43,6 +43,7 @@ class InputParam(gtk.HBox):
                self.pack_start(self.label, False)
                self.set_markup = lambda m: self.label.set_markup(m)
                self.tp = None
+       def set_color(self, color): pass
 
 class EntryParam(InputParam):
        """Provide an entry box for strings and numbers."""
@@ -58,6 +59,7 @@ class EntryParam(InputParam):
                self.tp = gtk.Tooltips()
                self.tp.set_tip(self.entry, '')
                self.tp.enable()
+       def set_color(self, color): self.entry.modify_base(gtk.STATE_NORMAL, gtk.gdk.color_parse(color))
 
 class FileParam(EntryParam):
        """Provide an entry box for filename and a button to browse for a file."""
@@ -153,15 +155,17 @@ class Param(Element):
                        name = '<span underline="low">%s</span>'%name
                if not self.is_valid():
                        self.input.set_markup('<span foreground="red">%s</span>'%name)
-                       tip = '- ' + '\n- '.join(self.get_error_messages())
+                       tip = 'Error: ' + ' '.join(self.get_error_messages())
                else:
                        self.input.set_markup(name)
-                       tip = self.evaluate()
+                       tip = 'Value: %s'%str(self.evaluate())
                #hide/show
                if self.get_hide() == 'all': self.input.hide_all()
                else: self.input.show_all()
+               #set the color
+               self.input.set_color(self.get_color())
                #set the tooltip
-               if self.input.tp: self.input.tp.set_tip(self.input.entry, str(tip))
+               if self.input.tp: self.input.tp.set_tip(self.input.entry, 'Type: %s\nKey: %s\n%s'%(self.get_type(), self.get_key(), tip))
                #execute the external callback
                if self.callback: self.callback(self)
 
index c2d878ba37c1a2e4e1f77ffbcbadf4842d776c45..973304ebafd739ee16c847b378edd5c4f0cad372 100644 (file)
@@ -38,3 +38,15 @@ FLOW_GRAPH_TEMPLATE = os.path.join(DATA_DIR, 'flow_graph.tmpl')
 BLOCK_DTD = os.path.join(DATA_DIR, 'block.dtd')
 BLOCK_TREE = os.path.join(DATA_DIR, 'block_tree.xml')
 DEFAULT_FLOW_GRAPH = os.path.join(DATA_DIR, 'default_flow_graph.grc.xml')
+
+#coloring
+COMPLEX_COLOR_SPEC = '#3399FF'
+FLOAT_COLOR_SPEC = '#FF8C69'
+INT_COLOR_SPEC = '#00FF99'
+SHORT_COLOR_SPEC = '#FFFF66'
+BYTE_COLOR_SPEC = '#FF66FF'
+COMPLEX_VECTOR_COLOR_SPEC = '#3399AA'
+FLOAT_VECTOR_COLOR_SPEC = '#CC8C69'
+INT_VECTOR_COLOR_SPEC = '#00CC99'
+SHORT_VECTOR_COLOR_SPEC = '#CCCC33'
+BYTE_VECTOR_COLOR_SPEC = '#CC66CC'
index 39ec57e3280fad0b7280bbb2dcd5573a689463a7..75098e9edaccf96ce2f8b119dae5d8bd7427a278 100644 (file)
@@ -19,6 +19,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 
 from utils import expr_utils
 from .. base.Param import Param as _Param
+import Constants
 import os
 
 class Param(_Param):
@@ -36,6 +37,29 @@ class Param(_Param):
                'grid_pos', 'import',
        ]
 
+       def get_color(self):
+               """
+               Get the color that represents this param's type.
+               @return a hex color code.
+               """
+               try:
+                       return {
+                               #number types
+                               'complex': Constants.COMPLEX_COLOR_SPEC,
+                               'real': Constants.FLOAT_COLOR_SPEC,
+                               'int': Constants.INT_COLOR_SPEC,
+                               #vector types
+                               'complex_vector': Constants.COMPLEX_VECTOR_COLOR_SPEC,
+                               'real_vector': Constants.FLOAT_VECTOR_COLOR_SPEC,
+                               'int_vector': Constants.INT_VECTOR_COLOR_SPEC,
+                               #special
+                               'hex': Constants.INT_COLOR_SPEC,
+                               'string': Constants.BYTE_VECTOR_COLOR_SPEC,
+                               'id': '#DDDDDD',
+                               'grid_pos': Constants.INT_VECTOR_COLOR_SPEC,
+                       }[self.get_type()]
+               except: return _Param.get_color(self)
+
        def get_hide(self):
                """
                Get the hide value from the base class.
@@ -67,7 +91,7 @@ class Param(_Param):
                def eval_string(v):
                        try:
                                e = self.get_parent().get_parent().evaluate(v)
-                               assert(isinstance(e, str))
+                               assert isinstance(e, str)
                                return e
                        except:
                                self._stringify_flag = True
index 93fa087eb46e24f16dae7c88571c8557e0e1fa0b..e75b47e4b07fdac566e6aee94b1778871c4c6ca8 100644 (file)
@@ -19,6 +19,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 
 from .. base.Port import Port as _Port
 from ... import utils
+import Constants
 
 class Port(_Port):
 
@@ -82,18 +83,18 @@ class Port(_Port):
                try:
                        if self.get_vlen() == 1:
                                return {#vlen is 1
-                                       'complex': '#3399FF',
-                                       'float': '#FF8C69',
-                                       'int': '#00FF99',
-                                       'short': '#FFFF66',
-                                       'byte': '#FF66FF',
+                                       'complex': Constants.COMPLEX_COLOR_SPEC,
+                                       'float': Constants.FLOAT_COLOR_SPEC,
+                                       'int': Constants.INT_COLOR_SPEC,
+                                       'short': Constants.SHORT_COLOR_SPEC,
+                                       'byte': Constants.BYTE_COLOR_SPEC,
                                }[self.get_type()]
                        return {#vlen is non 1
-                               'complex': '#3399AA',
-                               'float': '#CC8C69',
-                               'int': '#00CC99',
-                               'short': '#CCCC33',
-                               'byte': '#CC66CC',
+                               'complex': Constants.COMPLEX_VECTOR_COLOR_SPEC,
+                               'float': Constants.FLOAT_VECTOR_COLOR_SPEC,
+                               'int': Constants.INT_VECTOR_COLOR_SPEC,
+                               'short': Constants.SHORT_VECTOR_COLOR_SPEC,
+                               'byte': Constants.BYTE_VECTOR_COLOR_SPEC,
                        }[self.get_type()]
                except: return _Port.get_color(self)