summaryrefslogtreecommitdiff
path: root/cesar/common
diff options
context:
space:
mode:
authorschodet2009-11-23 08:48:56 +0000
committerschodet2009-11-23 08:48:56 +0000
commitb0f41f0c77c2bac482752bc34b0d4dbfbf4b5722 (patch)
treeaeaa96b83c9c428a81031b69f898551315d156b4 /cesar/common
parent4db473d8ae9206126ccb70b9bd9984593075a19a (diff)
cesar/common/tools/traceviewer: rework color management, use black background
git-svn-id: svn+ssh://pessac/svn/cesar/trunk@6443 017c9cb6-072f-447c-8318-d5b54f68fe89
Diffstat (limited to 'cesar/common')
-rw-r--r--cesar/common/tools/traceviewer/trace_view.py48
1 files changed, 33 insertions, 15 deletions
diff --git a/cesar/common/tools/traceviewer/trace_view.py b/cesar/common/tools/traceviewer/trace_view.py
index 6aec62c25c..dc93710fda 100644
--- a/cesar/common/tools/traceviewer/trace_view.py
+++ b/cesar/common/tools/traceviewer/trace_view.py
@@ -48,21 +48,39 @@ class TraceView (gtk.DrawingArea):
+ self.trace_margin)
def realize_after (self, widget):
- self.trace_gc = self.style.fg_gc[gtk.STATE_NORMAL]
- red = (self.window.get_colormap ()
- .alloc_color (gtk.gdk.color_parse ('red')))
- self.cursor_gc = gtk.gdk.GC (self.window, foreground = red)
- green = (self.window.get_colormap ()
- .alloc_color (gtk.gdk.color_parse ('green')))
- self.cursor_user_gc = (
- gtk.gdk.GC (self.window, foreground = green),
- gtk.gdk.GC (self.window, foreground = green,
- line_style = gtk.gdk.LINE_ON_OFF_DASH),
- )
- blue = (self.window.get_colormap ()
- .alloc_color (gtk.gdk.color_parse ('blue')))
- self.cursor_aux_gc = gtk.gdk.GC (self.window, foreground = blue,
- line_style = gtk.gdk.LINE_ON_OFF_DASH)
+ self.color_a = { }
+ self.attr_gc = { }
+ self.modify_bg (gtk.STATE_NORMAL, self.color ('black'))
+ self.trace_gc = self.attr ('white')
+ self.cursor_gc = self.attr ('red')
+ self.cursor_user_gc = (self.attr ('green'), self.attr ('green,dash'))
+ self.cursor_aux_gc = self.attr ('blue,dash')
+
+ def color (self, color):
+ if color not in self.color_a:
+ self.color_a[color] = (self.window.get_colormap ()
+ .alloc_color (color))
+ return self.color_a[color]
+
+ def attr (self, attr):
+ if attr not in self.attr_gc:
+ s = attr.split (',')
+ if len (s) == 1:
+ fg, bg = s[0], None
+ else:
+ fg, bg = s
+ fg = self.color (fg)
+ if bg is None:
+ gc = self.window.new_gc (foreground = fg)
+ elif bg == 'dash':
+ gc = self.window.new_gc (foreground = fg,
+ line_style = gtk.gdk.LINE_ON_OFF_DASH)
+ else:
+ bg = self.color (bg)
+ gc = self.window.new_gc (foreground = fg, background = bg,
+ line_style = gtk.gdk.LINE_DOUBLE_DASH)
+ self.attr_gc[attr] = gc
+ return self.attr_gc[attr]
def expose (self, widget, event):
self.draw (event.area.x, event.area.y, event.area.width,