Skip to content

Commit 9ab4c40

Browse files
authored
Merge pull request #17416 from anntzer/nt
Reorder NavigationToolbar2 methods.
2 parents 72e9949 + db91106 commit 9ab4c40

File tree

1 file changed

+80
-80
lines changed

1 file changed

+80
-80
lines changed

lib/matplotlib/backend_bases.py

Lines changed: 80 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -2857,18 +2857,6 @@ def __init__(self, canvas):
28572857
def set_message(self, s):
28582858
"""Display a message on toolbar or in status bar."""
28592859

2860-
def back(self, *args):
2861-
"""
2862-
Move back up the view lim stack.
2863-
2864-
For convenience of being directly connected as a GUI callback, which
2865-
often get passed additional parameters, this method accepts arbitrary
2866-
parameters, but does not use them.
2867-
"""
2868-
self._nav_stack.back()
2869-
self.set_history_buttons()
2870-
self._update_view()
2871-
28722860
def draw_rubberband(self, event, x0, y0, x1, y1):
28732861
"""
28742862
Draw a rectangle rubberband to indicate zoom limits.
@@ -2879,27 +2867,39 @@ def draw_rubberband(self, event, x0, y0, x1, y1):
28792867
def remove_rubberband(self):
28802868
"""Remove the rubberband."""
28812869

2882-
def forward(self, *args):
2870+
def home(self, *args):
28832871
"""
2884-
Move forward in the view lim stack.
2872+
Restore the original view.
28852873
28862874
For convenience of being directly connected as a GUI callback, which
28872875
often get passed additional parameters, this method accepts arbitrary
28882876
parameters, but does not use them.
28892877
"""
2890-
self._nav_stack.forward()
2878+
self._nav_stack.home()
28912879
self.set_history_buttons()
28922880
self._update_view()
28932881

2894-
def home(self, *args):
2882+
def back(self, *args):
28952883
"""
2896-
Restore the original view.
2884+
Move back up the view lim stack.
28972885
28982886
For convenience of being directly connected as a GUI callback, which
28992887
often get passed additional parameters, this method accepts arbitrary
29002888
parameters, but does not use them.
29012889
"""
2902-
self._nav_stack.home()
2890+
self._nav_stack.back()
2891+
self.set_history_buttons()
2892+
self._update_view()
2893+
2894+
def forward(self, *args):
2895+
"""
2896+
Move forward in the view lim stack.
2897+
2898+
For convenience of being directly connected as a GUI callback, which
2899+
often get passed additional parameters, this method accepts arbitrary
2900+
parameters, but does not use them.
2901+
"""
2902+
self._nav_stack.forward()
29032903
self.set_history_buttons()
29042904
self._update_view()
29052905

@@ -3003,6 +3003,14 @@ def _zoom_pan_handler(self, event):
30033003
elif event.name == "button_release_event":
30043004
self.release_zoom(event)
30053005

3006+
@cbook.deprecated("3.3")
3007+
def press(self, event):
3008+
"""Called whenever a mouse button is pressed."""
3009+
3010+
@cbook.deprecated("3.3")
3011+
def release(self, event):
3012+
"""Callback for mouse button release."""
3013+
30063014
def pan(self, *args):
30073015
"""
30083016
Toggle the pan/zoom tool.
@@ -3019,10 +3027,6 @@ def pan(self, *args):
30193027
a.set_navigate_mode(self.mode)
30203028
self.set_message(self.mode)
30213029

3022-
@cbook.deprecated("3.3")
3023-
def press(self, event):
3024-
"""Called whenever a mouse button is pressed."""
3025-
30263030
def press_pan(self, event):
30273031
"""Callback for mouse button press in pan/zoom mode."""
30283032
if event.button in [1, 3]:
@@ -3050,6 +3054,49 @@ def press_pan(self, event):
30503054
if press is not None:
30513055
press(event)
30523056

3057+
def drag_pan(self, event):
3058+
"""Callback for dragging in pan/zoom mode."""
3059+
for a, ind in self._xypress:
3060+
#safer to use the recorded button at the press than current button:
3061+
#multiple button can get pressed during motion...
3062+
a.drag_pan(self._button_pressed, event.key, event.x, event.y)
3063+
self.canvas.draw_idle()
3064+
3065+
def release_pan(self, event):
3066+
"""Callback for mouse button release in pan/zoom mode."""
3067+
3068+
if self._button_pressed is None:
3069+
return
3070+
self.canvas.mpl_disconnect(self._id_drag)
3071+
self._id_drag = self.canvas.mpl_connect(
3072+
'motion_notify_event', self.mouse_move)
3073+
for a, ind in self._xypress:
3074+
a.end_pan()
3075+
if not self._xypress:
3076+
return
3077+
self._xypress = []
3078+
self._button_pressed = None
3079+
self.push_current()
3080+
release = cbook._deprecate_method_override(
3081+
__class__.press, self, since="3.3", message="Calling an "
3082+
"overridden release() at pan stop is deprecated since %(since)s "
3083+
"and will be removed %(removal)s; override release_pan() instead.")
3084+
if release is not None:
3085+
release(event)
3086+
self._draw()
3087+
3088+
def zoom(self, *args):
3089+
"""Toggle zoom to rect mode."""
3090+
if self.mode == _Mode.ZOOM:
3091+
self.mode = _Mode.NONE
3092+
self.canvas.widgetlock.release(self)
3093+
else:
3094+
self.mode = _Mode.ZOOM
3095+
self.canvas.widgetlock(self)
3096+
for a in self.canvas.figure.get_axes():
3097+
a.set_navigate_mode(self.mode)
3098+
self.set_message(self.mode)
3099+
30533100
def press_zoom(self, event):
30543101
"""Callback for mouse button press in zoom to rect mode."""
30553102
if event.button not in [1, 3]:
@@ -3077,52 +3124,6 @@ def press_zoom(self, event):
30773124
if press is not None:
30783125
press(event)
30793126

3080-
def push_current(self):
3081-
"""Push the current view limits and position onto the stack."""
3082-
self._nav_stack.push(
3083-
WeakKeyDictionary(
3084-
{ax: (ax._get_view(),
3085-
# Store both the original and modified positions.
3086-
(ax.get_position(True).frozen(),
3087-
ax.get_position().frozen()))
3088-
for ax in self.canvas.figure.axes}))
3089-
self.set_history_buttons()
3090-
3091-
@cbook.deprecated("3.3")
3092-
def release(self, event):
3093-
"""Callback for mouse button release."""
3094-
3095-
def release_pan(self, event):
3096-
"""Callback for mouse button release in pan/zoom mode."""
3097-
3098-
if self._button_pressed is None:
3099-
return
3100-
self.canvas.mpl_disconnect(self._id_drag)
3101-
self._id_drag = self.canvas.mpl_connect(
3102-
'motion_notify_event', self.mouse_move)
3103-
for a, ind in self._xypress:
3104-
a.end_pan()
3105-
if not self._xypress:
3106-
return
3107-
self._xypress = []
3108-
self._button_pressed = None
3109-
self.push_current()
3110-
release = cbook._deprecate_method_override(
3111-
__class__.press, self, since="3.3", message="Calling an "
3112-
"overridden release() at pan stop is deprecated since %(since)s "
3113-
"and will be removed %(removal)s; override release_pan() instead.")
3114-
if release is not None:
3115-
release(event)
3116-
self._draw()
3117-
3118-
def drag_pan(self, event):
3119-
"""Callback for dragging in pan/zoom mode."""
3120-
for a, ind in self._xypress:
3121-
#safer to use the recorded button at the press than current button:
3122-
#multiple button can get pressed during motion...
3123-
a.drag_pan(self._button_pressed, event.key, event.x, event.y)
3124-
self.canvas.draw_idle()
3125-
31263127
def drag_zoom(self, event):
31273128
"""Callback for dragging in zoom mode."""
31283129
start_xy = self._zoom_info["start_xy"]
@@ -3188,6 +3189,17 @@ def release_zoom(self, event):
31883189
if release is not None:
31893190
release(event)
31903191

3192+
def push_current(self):
3193+
"""Push the current view limits and position onto the stack."""
3194+
self._nav_stack.push(
3195+
WeakKeyDictionary(
3196+
{ax: (ax._get_view(),
3197+
# Store both the original and modified positions.
3198+
(ax.get_position(True).frozen(),
3199+
ax.get_position().frozen()))
3200+
for ax in self.canvas.figure.axes}))
3201+
self.set_history_buttons()
3202+
31913203
@cbook.deprecated("3.3", alternative="toolbar.canvas.draw_idle()")
31923204
def draw(self):
31933205
"""Redraw the canvases, update the locators."""
@@ -3248,18 +3260,6 @@ def update(self):
32483260
self._nav_stack.clear()
32493261
self.set_history_buttons()
32503262

3251-
def zoom(self, *args):
3252-
"""Toggle zoom to rect mode."""
3253-
if self.mode == _Mode.ZOOM:
3254-
self.mode = _Mode.NONE
3255-
self.canvas.widgetlock.release(self)
3256-
else:
3257-
self.mode = _Mode.ZOOM
3258-
self.canvas.widgetlock(self)
3259-
for a in self.canvas.figure.get_axes():
3260-
a.set_navigate_mode(self.mode)
3261-
self.set_message(self.mode)
3262-
32633263
def set_history_buttons(self):
32643264
"""Enable or disable the back/forward button."""
32653265

0 commit comments

Comments
 (0)