def _button_press_cb(self, widget, event): if not self.show_viewfinder: return False if not self._drag_start and event.button == 1: if self.viewport_overlay_shapes: points = [] for shape in self.viewport_overlay_shapes: points.extend(shape) pmx, pmy = self.tdw.display_to_model(event.x, event.y) cmx, cmy = self._main_tdw.get_center_model_coords() shape = geom.convex_hull(points) if geom.point_in_convex_poly((pmx, pmy), shape): self._drag_start = (cmx, cmy, pmx, pmy) self._set_cursor(self._cursor_drag_active) self._button_pressed = event.button return True
def _button_press_cb(self, widget, event): if not self.show_viewfinder: return False if not self._drag_start and event.button == 1: if self.viewport_overlay_shapes: points = [] for shape in self.viewport_overlay_shapes: points.extend(shape) pmx, pmy = self.tdw.display_to_model(event.x, event.y) cmx, cmy = self._main_tdw.get_center_model_coords() inside = False shape = geom.convex_hull(points) if geom.point_in_convex_poly((pmx, pmy), shape): self._drag_start = (cmx, cmy, pmx, pmy) self._set_cursor(self._cursor_drag_active) self._button_pressed = event.button return True
def _motion_notify_cb(self, widget, event): if not self.show_viewfinder: return False pmx, pmy = self.tdw.display_to_model(event.x, event.y) if self._drag_start: cmx0, cmy0, pmx0, pmy0 = self._drag_start dmx, dmy = pmx-pmx0, pmy-pmy0 self._main_tdw.recenter_on_model_coords(cmx0+dmx, cmy0+dmy) self.app.doc.notify_view_changed(prioritize=True) else: cursor = None if self.viewport_overlay_shapes: points = [] for shape in self.viewport_overlay_shapes: points.extend(shape) shape = geom.convex_hull(points) if geom.point_in_convex_poly((pmx, pmy), shape): cursor = self._cursor_drag_ready else: cursor = self._cursor_move_here self._set_cursor(cursor) return True
def _motion_notify_cb(self, widget, event): if not self.show_viewfinder: return False pmx, pmy = self.tdw.display_to_model(event.x, event.y) if self._drag_start: cmx0, cmy0, pmx0, pmy0 = self._drag_start dmx, dmy = pmx - pmx0, pmy - pmy0 self._main_tdw.recenter_on_model_coords(cmx0 + dmx, cmy0 + dmy) self.app.doc.notify_view_changed(prioritize=True) else: cursor = None if self.viewport_overlay_shapes: points = [] for shape in self.viewport_overlay_shapes: points.extend(shape) shape = geom.convex_hull(points) if geom.point_in_convex_poly((pmx, pmy), shape): cursor = self._cursor_drag_ready else: cursor = self._cursor_move_here self._set_cursor(cursor) return True