Changeset 1838
- Timestamp:
- 08/05/07 23:39:39 (1 year ago)
- Files:
-
- gaphas/trunk/gaphas/tests/test_view.py (modified) (2 diffs)
- gaphas/trunk/gaphas/view.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
gaphas/trunk/gaphas/tests/test_view.py
r1824 r1838 5 5 import unittest 6 6 import gtk 7 from gaphas.view import GtkView7 from gaphas.view import View, GtkView 8 8 from gaphas.canvas import Canvas, Context 9 9 from gaphas.item import Line … … 112 112 window.destroy() 113 113 114 def test_view_registration(self): 115 canvas = Canvas() 116 117 # Simple views do not register on the canvas 118 119 view = View(canvas) 120 assert len(canvas._registered_views) == 0 121 122 # GTK view does register for updates though 123 124 view = GtkView(canvas) 125 assert len(canvas._registered_views) == 1 126 127 view.canvas = None 128 assert len(canvas._registered_views) == 0 129 130 view.canvas = canvas 131 assert len(canvas._registered_views) == 1 132 133 def test_view_registration_2(self): 134 """ 135 Test view registration and destroy when view is destroyed. 136 """ 137 canvas = Canvas() 138 view = GtkView(canvas) 139 window = gtk.Window(gtk.WINDOW_TOPLEVEL) 140 window.add(view) 141 window.show_all() 142 143 box = Box() 144 canvas.add(box) 145 146 assert hasattr(box, '_matrix_i2v') 147 assert hasattr(box, '_matrix_v2i') 148 149 assert box._matrix_i2v[view] 150 assert box._matrix_v2i[view] 151 152 assert len(canvas._registered_views) == 1 153 assert view in canvas._registered_views 154 155 window.destroy() 156 157 assert len(canvas._registered_views) == 0 158 159 assert not box._matrix_i2v.has_key(view) 160 assert not box._matrix_v2i.has_key(view) 161 162 114 163 115 164 if __name__ == '__main__': gaphas/trunk/gaphas/view.py
r1829 r1838 390 390 391 391 def __init__(self, canvas=None): 392 super(GtkView, self).__init__()393 View.__init__(self )392 gtk.DrawingArea.__init__(self) 393 View.__init__(self, canvas) 394 394 self.set_flags(gtk.CAN_FOCUS) 395 395 self.add_events(gtk.gdk.BUTTON_PRESS_MASK … … 405 405 406 406 self._tool = DefaultTool() 407 self.canvas = canvas408 407 409 408 # Set background to white. … … 634 633 gtk.DrawingArea.do_realize(self) 635 634 allocation = self.allocation 636 print 'allocation', allocation.width, allocation.height637 635 638 636 if self._canvas: 639 637 self.request_update(self._canvas.get_all_items()) 640 638 639 def do_unrealize(self): 640 if self.canvas: 641 for item in self.canvas.get_all_items(): 642 try: 643 del item._matrix_i2v[self] 644 del item._matrix_v2i[self] 645 except KeyError: 646 pass 647 self.canvas = None 648 self._qtree = None 649 650 self._dirty_items = None 651 self._dirty_matrix_items = None 652 653 gtk.DrawingArea.do_unrealize(self) 641 654 642 655 def do_expose_event(self, event):
