root/gaphor/tags/gaphor-0.3.0/gaphor/diagram/modelelement.py

Revision 241, 2.2 kB (checked in by arjanmol, 5 years ago)

*** empty log message ***

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 # vim:sw=4
2 '''
3 ModelElementItem
4
5 Abstract base class for element-like Diagram items.
6 '''
7
8 import gobject
9 import diacanvas
10 from gaphor.diagram import initialize_item
11 from diagramitem import DiagramItem
12
13 __revision__ = '$revision$'
14 __author__ = 'Arjan J. Molenaar'
15 __date__ = '$date$'
16
17
18 class ModelElementItem(diacanvas.CanvasElement, DiagramItem):
19     # Properties, also add the DiagramItem properties here.
20     __gproperties__ = {
21         'auto-resize':  (gobject.TYPE_BOOLEAN, 'auto resize',
22                          'Set auto-resize for the diagram item',
23                          1, gobject.PARAM_READWRITE)
24     }
25     __gproperties__.update(DiagramItem.__gproperties__)
26
27     __gsignals__ = DiagramItem.__gsignals__
28
29     def __init__(self, id=None):
30         self.__gobject_init__()
31         DiagramItem.__init__(self, id)
32         self.auto_resize = 0
33
34     # Ensure we call the right connect functions:
35     connect = DiagramItem.connect
36     disconnect = DiagramItem.disconnect
37     notify = DiagramItem.notify
38
39     def save(self, save_func):
40         for prop in ('affine', 'width', 'height', 'auto-resize'):
41             self.save_property(save_func, prop)
42         DiagramItem.save(self, save_func)
43
44     def load(self, name, value):
45         DiagramItem.load(self, name, value)
46
47     def do_set_property(self, pspec, value):
48         if pspec.name == 'auto-resize':
49             self.preserve_property('auto-resize')
50             self.auto_resize = value
51         else:
52             DiagramItem.do_set_property(self, pspec, value)
53
54     def do_get_property(self, pspec):
55         if pspec.name == 'auto-resize':
56             return self.auto_resize
57         else:
58             return DiagramItem.do_get_property(self, pspec)
59
60     # DiaCanvasItem callbacks:
61
62     def on_glue(self, handle, wx, wy):
63         #import sys
64         #print self, handle, '=>', sys.getrefcount(self), sys.getrefcount(handle)
65         return self._on_glue(handle, wx, wy, diacanvas.CanvasElement)
66
67     def on_connect_handle(self, handle):
68         return self._on_connect_handle(handle, diacanvas.CanvasElement)
69
70     def on_disconnect_handle(self, handle):
71         return self._on_disconnect_handle(handle, diacanvas.CanvasElement)
72
73
74 initialize_item(ModelElementItem)
Note: See TracBrowser for help on using the browser.