mirror of
https://github.com/wassname/scikit-image.git
synced 2026-07-12 15:59:32 +08:00
Accommodate upcoming changes to RectangleSelector API
This commit is contained in:
@@ -41,15 +41,16 @@ class RectangleTool(CanvasToolBase, RectangleSelector):
|
||||
|
||||
def __init__(self, viewer, on_move=None, on_release=None, on_enter=None,
|
||||
maxdist=10, rect_props=None):
|
||||
CanvasToolBase.__init__(self, viewer, on_move=on_move,
|
||||
on_enter=on_enter, on_release=on_release)
|
||||
|
||||
self._rect = None
|
||||
props = dict(edgecolor=None, facecolor='r', alpha=0.15)
|
||||
props.update(rect_props if rect_props is not None else {})
|
||||
if props['edgecolor'] is None:
|
||||
props['edgecolor'] = props['facecolor']
|
||||
RectangleSelector.__init__(self, self.ax, lambda *args: None,
|
||||
RectangleSelector.__init__(self, viewer.ax, lambda *args: None,
|
||||
rectprops=props)
|
||||
CanvasToolBase.__init__(self, viewer, on_move=on_move,
|
||||
on_enter=on_enter, on_release=on_release)
|
||||
|
||||
# Events are handled by the viewer
|
||||
try:
|
||||
self.disconnect_events()
|
||||
@@ -87,6 +88,8 @@ class RectangleTool(CanvasToolBase, RectangleSelector):
|
||||
|
||||
@property
|
||||
def _rect_bbox(self):
|
||||
if not self._rect:
|
||||
return 0, 0, 0, 0
|
||||
x0 = self._rect.get_x()
|
||||
y0 = self._rect.get_y()
|
||||
width = self._rect.get_width()
|
||||
@@ -142,7 +145,10 @@ class RectangleTool(CanvasToolBase, RectangleSelector):
|
||||
if not self.ax.in_axes(event):
|
||||
self.eventpress = None
|
||||
return
|
||||
RectangleSelector.release(self, event)
|
||||
if hasattr(RectangleSelector, '_release'):
|
||||
RectangleSelector._release(self, event)
|
||||
else:
|
||||
RectangleSelector.release(self, event)
|
||||
self._extents_on_press = None
|
||||
# Undo hiding of rectangle and redraw.
|
||||
self.set_visible(True)
|
||||
@@ -158,7 +164,10 @@ class RectangleTool(CanvasToolBase, RectangleSelector):
|
||||
self.set_visible(False)
|
||||
self.redraw()
|
||||
self.set_visible(True)
|
||||
RectangleSelector.press(self, event)
|
||||
if hasattr(RectangleSelector, '_press'):
|
||||
RectangleSelector._press(self, event)
|
||||
else:
|
||||
RectangleSelector.press(self, event)
|
||||
|
||||
def _set_active_handle(self, event):
|
||||
"""Set active handle based on the location of the mouse event"""
|
||||
|
||||
Reference in New Issue
Block a user