diff options
author | jblum | 2008-09-16 16:59:13 +0000 |
---|---|---|
committer | jblum | 2008-09-16 16:59:13 +0000 |
commit | 5fe222b348b9adc515877ba7aa2d840fd82e51cd (patch) | |
tree | 98dba9bd6ed2548a9f776b4947bec0f7023aa6f0 | |
parent | 440ac243e66a801aa1b0612c0a5ac2ee01243898 (diff) | |
download | gnuradio-5fe222b348b9adc515877ba7aa2d840fd82e51cd.tar.gz gnuradio-5fe222b348b9adc515877ba7aa2d840fd82e51cd.tar.bz2 gnuradio-5fe222b348b9adc515877ba7aa2d840fd82e51cd.zip |
color coding for param entry boxes
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@9584 221aa14e-8319-0410-a670-987f0aec2ac5
-rw-r--r-- | grc/data/platforms/python/blocks/gr_sig_source_x.xml | 6 | ||||
-rw-r--r-- | grc/src/platforms/base/Param.py | 2 | ||||
-rw-r--r-- | grc/src/platforms/gui/Param.py | 10 | ||||
-rw-r--r-- | grc/src/platforms/python/Constants.py.in | 12 | ||||
-rw-r--r-- | grc/src/platforms/python/Param.py | 26 | ||||
-rw-r--r-- | grc/src/platforms/python/Port.py | 21 |
6 files changed, 62 insertions, 15 deletions
diff --git a/grc/data/platforms/python/blocks/gr_sig_source_x.xml b/grc/data/platforms/python/blocks/gr_sig_source_x.xml index 7ad0c20a4..53434c430 100644 --- a/grc/data/platforms/python/blocks/gr_sig_source_x.xml +++ b/grc/data/platforms/python/blocks/gr_sig_source_x.xml @@ -21,21 +21,25 @@ <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> diff --git a/grc/src/platforms/base/Param.py b/grc/src/platforms/base/Param.py index 232f6758f..bc169138d 100644 --- a/grc/src/platforms/base/Param.py +++ b/grc/src/platforms/base/Param.py @@ -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 diff --git a/grc/src/platforms/gui/Param.py b/grc/src/platforms/gui/Param.py index f45d80bba..e9ccb1c25 100644 --- a/grc/src/platforms/gui/Param.py +++ b/grc/src/platforms/gui/Param.py @@ -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) diff --git a/grc/src/platforms/python/Constants.py.in b/grc/src/platforms/python/Constants.py.in index c2d878ba3..973304eba 100644 --- a/grc/src/platforms/python/Constants.py.in +++ b/grc/src/platforms/python/Constants.py.in @@ -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' diff --git a/grc/src/platforms/python/Param.py b/grc/src/platforms/python/Param.py index 39ec57e32..75098e9ed 100644 --- a/grc/src/platforms/python/Param.py +++ b/grc/src/platforms/python/Param.py @@ -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 diff --git a/grc/src/platforms/python/Port.py b/grc/src/platforms/python/Port.py index 93fa087eb..e75b47e4b 100644 --- a/grc/src/platforms/python/Port.py +++ b/grc/src/platforms/python/Port.py @@ -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) |