Accommodate upcoming changes to RectangleSelector API

This commit is contained in:
Steven Silvester
2014-12-20 20:04:44 -06:00
parent 0debedd82c
commit 79c648b14c
+15 -6
View File
@@ -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"""