/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz

« back to all changes in this revision

Viewing changes to branchview/graphcell.py

  • Committer: Curtis Hovey
  • Date: 2011-09-04 03:53:20 UTC
  • mfrom: (738 trunk)
  • mto: This revision was merged to the branch mainline in revision 741.
  • Revision ID: sinzui.is@verizon.net-20110904035320-5abg7as2ki1r8w88
Merged trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
from gi.repository import GObject
21
21
from gi.repository import Pango
22
22
from gi.repository import PangoCairo
 
23
from gi.repository import cairo
23
24
 
24
25
 
25
26
# Cairo constants are not exported yet. These are taken from documentation.
32
33
CAIRO_FILL_RULE_EVEN_ODD = 1
33
34
 
34
35
 
35
 
# Macro from  Pango header.
36
 
def PANGO_PIXELS(d):
37
 
    return (d + 512) / 1000
38
 
 
39
 
 
40
36
class CellRendererGraph(Gtk.CellRendererPixbuf):
41
37
    """Cell renderer for directed graph.
42
38
 
80
76
        else:
81
77
            raise AttributeError, "no such property: '%s'" % property.name
82
78
 
 
79
    def do_get_property(self, property):
 
80
        """Get properties from GObject properties."""
 
81
        if property.name == "node":
 
82
            return self.node
 
83
        elif property.name == "tags":
 
84
            return self.tags
 
85
        elif property.name == "in-lines":
 
86
            return self.in_lines
 
87
        elif property.name == "out-lines":
 
88
            print "get outlines"
 
89
            return self.out_lines
 
90
        else:
 
91
            raise AttributeError, "no such property: '%s'" % property.name
 
92
 
83
93
    def box_size(self, widget):
84
94
        """Calculate box size based on widget's font.
85
95
 
92
102
            pango_ctx = widget.get_pango_context()
93
103
            font_desc = widget.get_style().font_desc
94
104
            metrics = pango_ctx.get_metrics(font_desc, None)
 
105
 
 
106
            def PANGO_PIXELS(d):
 
107
                # Macro from  Pango header.
 
108
                return (d + 512) / 1000
 
109
 
95
110
            ascent = PANGO_PIXELS(metrics.get_ascent())
96
111
            descent = PANGO_PIXELS(metrics.get_descent())
 
112
 
97
113
            self._box_size = ascent + descent + 6
98
114
            return self._box_size
99
115
 
127
143
        ctx.set_source_rgb(red, green, blue)
128
144
 
129
145
    def do_activate(event, widget, path, bg_area, cell_area, flags):
130
 
        """Renderers cannot be activated; always return True."""
131
146
        return True
132
147
 
133
148
    def do_editing_started(event, widget, path, fb_area, cell_area, flags):
134
 
        """Renderers cannot be edited; always return None."""
135
149
        return None
136
150
 
137
151
    def do_get_size(self, widget, cell_area):