Example #1
0
 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
Example #2
0
 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
Example #3
0
 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
Example #4
0
 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