@@ -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