Changeset 976
- Timestamp:
- 08/10/06 13:22:09 (2 years ago)
- Files:
-
- gaphas/trunk/gaphas/canvas.py (modified) (1 diff)
- gaphas/trunk/gaphas/tool.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
gaphas/trunk/gaphas/canvas.py
r945 r976 168 168 return self._tree.get_children(item) 169 169 170 def get_matrix_i2w(self, item ):170 def get_matrix_i2w(self, item, calculate=False): 171 171 """Get the Item to World matrix for @item. 172 173 item: The item who's item-to-world transformation matrix should be 174 found 175 calculate: True will allow this function to actually calculate it, 176 in stead of raising an AttributeError when no matrix is present 177 yet. Note that out-of-date matrices are not recalculated. 172 178 """ 173 179 try: 174 180 return item._canvas_matrix_i2w 175 181 except AttributeError, e: 176 self.request_matrix_update(item) 177 raise e 178 179 def get_matrix_w2i(self, item): 182 if calculate: 183 self.update_matrix(item, recursive=False) 184 return item._canvas_matrix_i2w 185 else: 186 self.request_matrix_update(item) 187 raise e 188 189 def get_matrix_w2i(self, item, calculate=False): 180 190 """Get the World to Item matrix for @item. 191 See get_matrix_i2w(). 181 192 """ 182 193 try: 183 194 return item._canvas_matrix_w2i 184 195 except AttributeError, e: 185 self.request_matrix_update(item) 186 raise e 196 if calculate: 197 self.update_matrix(item, recursive=False) 198 return item._canvas_matrix_w2i 199 else: 200 self.request_matrix_update(item) 201 raise e 187 202 188 203 def request_update(self, item): gaphas/trunk/gaphas/tool.py
r970 r976 447 447 self._handle_tool = handle_tool 448 448 self._handle_index = handle_index 449 self._new_obj = None 449 self._new_item = None 450 451 handle_tool = property(lambda s: s._handle_tool, doc="Handle tool") 452 handle_index = property(lambda s: s._handle_index, 453 doc="Index of handle to be used by handle_tool") 454 new_item = property(lambda s: s._new_item, doc="The newly created item") 450 455 451 456 def on_button_press(self, context, event): … … 453 458 canvas = view.canvas 454 459 pos = view.transform_point_c2w(event.x, event.y) 455 new_ obj= self._factory()456 canvas.add(new_ obj)457 new_ obj.matrix.translate(*pos)458 self._handle_tool._grabbed_handle = new_ obj.handles()[self._handle_index]459 self._handle_tool._grabbed_item = new_ obj460 self._new_ obj = new_obj461 view.focused_item = new_ obj460 new_item = self._factory() 461 canvas.add(new_item) 462 new_item.matrix.translate(*pos) 463 self._handle_tool._grabbed_handle = new_item.handles()[self._handle_index] 464 self._handle_tool._grabbed_item = new_item 465 self._new_item = new_item 466 view.focused_item = new_item 462 467 context.grab() 463 468 return True … … 465 470 def on_button_release(self, context, event): 466 471 context.ungrab() 467 if self._new_ obj:472 if self._new_item: 468 473 self._handle_tool.on_button_release(context, event) 469 474 return True 470 475 471 476 def on_motion_notify(self, context, event): 472 if self._new_ obj:477 if self._new_item: 473 478 return self._handle_tool.on_motion_notify(context, event) 474 479 else:
