summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjblum2008-09-16 16:59:13 +0000
committerjblum2008-09-16 16:59:13 +0000
commit5fe222b348b9adc515877ba7aa2d840fd82e51cd (patch)
tree98dba9bd6ed2548a9f776b4947bec0f7023aa6f0
parent440ac243e66a801aa1b0612c0a5ac2ee01243898 (diff)
downloadgnuradio-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.xml6
-rw-r--r--grc/src/platforms/base/Param.py2
-rw-r--r--grc/src/platforms/gui/Param.py10
-rw-r--r--grc/src/platforms/python/Constants.py.in12
-rw-r--r--grc/src/platforms/python/Param.py26
-rw-r--r--grc/src/platforms/python/Port.py21
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)