@@ -2762,18 +2762,6 @@ def __init__(self, canvas):
27622762 def set_message (self , s ):
27632763 """Display a message on toolbar or in status bar."""
27642764
2765- def back (self , * args ):
2766- """
2767- Move back up the view lim stack.
2768-
2769- For convenience of being directly connected as a GUI callback, which
2770- often get passed additional parameters, this method accepts arbitrary
2771- parameters, but does not use them.
2772- """
2773- self ._nav_stack .back ()
2774- self .set_history_buttons ()
2775- self ._update_view ()
2776-
27772765 def draw_rubberband (self , event , x0 , y0 , x1 , y1 ):
27782766 """
27792767 Draw a rectangle rubberband to indicate zoom limits.
@@ -2784,27 +2772,39 @@ def draw_rubberband(self, event, x0, y0, x1, y1):
27842772 def remove_rubberband (self ):
27852773 """Remove the rubberband."""
27862774
2787- def forward (self , * args ):
2775+ def home (self , * args ):
27882776 """
2789- Move forward in the view lim stack .
2777+ Restore the original view .
27902778
27912779 For convenience of being directly connected as a GUI callback, which
27922780 often get passed additional parameters, this method accepts arbitrary
27932781 parameters, but does not use them.
27942782 """
2795- self ._nav_stack .forward ()
2783+ self ._nav_stack .home ()
27962784 self .set_history_buttons ()
27972785 self ._update_view ()
27982786
2799- def home (self , * args ):
2787+ def back (self , * args ):
28002788 """
2801- Restore the original view.
2789+ Move back up the view lim stack .
28022790
28032791 For convenience of being directly connected as a GUI callback, which
28042792 often get passed additional parameters, this method accepts arbitrary
28052793 parameters, but does not use them.
28062794 """
2807- self ._nav_stack .home ()
2795+ self ._nav_stack .back ()
2796+ self .set_history_buttons ()
2797+ self ._update_view ()
2798+
2799+ def forward (self , * args ):
2800+ """
2801+ Move forward in the view lim stack.
2802+
2803+ For convenience of being directly connected as a GUI callback, which
2804+ often get passed additional parameters, this method accepts arbitrary
2805+ parameters, but does not use them.
2806+ """
2807+ self ._nav_stack .forward ()
28082808 self .set_history_buttons ()
28092809 self ._update_view ()
28102810
@@ -2908,6 +2908,14 @@ def _zoom_pan_handler(self, event):
29082908 elif event .name == "button_release_event" :
29092909 self .release_zoom (event )
29102910
2911+ @cbook .deprecated ("3.3" )
2912+ def press (self , event ):
2913+ """Called whenever a mouse button is pressed."""
2914+
2915+ @cbook .deprecated ("3.3" )
2916+ def release (self , event ):
2917+ """Callback for mouse button release."""
2918+
29112919 def pan (self , * args ):
29122920 """
29132921 Toggle the pan/zoom tool.
@@ -2924,10 +2932,6 @@ def pan(self, *args):
29242932 a .set_navigate_mode (self .mode )
29252933 self .set_message (self .mode )
29262934
2927- @cbook .deprecated ("3.3" )
2928- def press (self , event ):
2929- """Called whenever a mouse button is pressed."""
2930-
29312935 def press_pan (self , event ):
29322936 """Callback for mouse button press in pan/zoom mode."""
29332937 if event .button in [1 , 3 ]:
@@ -2955,6 +2959,49 @@ def press_pan(self, event):
29552959 if press is not None :
29562960 press (event )
29572961
2962+ def drag_pan (self , event ):
2963+ """Callback for dragging in pan/zoom mode."""
2964+ for a , ind in self ._xypress :
2965+ #safer to use the recorded button at the press than current button:
2966+ #multiple button can get pressed during motion...
2967+ a .drag_pan (self ._button_pressed , event .key , event .x , event .y )
2968+ self .canvas .draw_idle ()
2969+
2970+ def release_pan (self , event ):
2971+ """Callback for mouse button release in pan/zoom mode."""
2972+
2973+ if self ._button_pressed is None :
2974+ return
2975+ self .canvas .mpl_disconnect (self ._id_drag )
2976+ self ._id_drag = self .canvas .mpl_connect (
2977+ 'motion_notify_event' , self .mouse_move )
2978+ for a , ind in self ._xypress :
2979+ a .end_pan ()
2980+ if not self ._xypress :
2981+ return
2982+ self ._xypress = []
2983+ self ._button_pressed = None
2984+ self .push_current ()
2985+ release = cbook ._deprecate_method_override (
2986+ __class__ .press , self , since = "3.3" , message = "Calling an "
2987+ "overridden release() at pan stop is deprecated since %(since)s "
2988+ "and will be removed %(removal)s; override release_pan() instead." )
2989+ if release is not None :
2990+ release (event )
2991+ self ._draw ()
2992+
2993+ def zoom (self , * args ):
2994+ """Toggle zoom to rect mode."""
2995+ if self .mode == _Mode .ZOOM :
2996+ self .mode = _Mode .NONE
2997+ self .canvas .widgetlock .release (self )
2998+ else :
2999+ self .mode = _Mode .ZOOM
3000+ self .canvas .widgetlock (self )
3001+ for a in self .canvas .figure .get_axes ():
3002+ a .set_navigate_mode (self .mode )
3003+ self .set_message (self .mode )
3004+
29583005 def press_zoom (self , event ):
29593006 """Callback for mouse button press in zoom to rect mode."""
29603007 if event .button not in [1 , 3 ]:
@@ -2982,52 +3029,6 @@ def press_zoom(self, event):
29823029 if press is not None :
29833030 press (event )
29843031
2985- def push_current (self ):
2986- """Push the current view limits and position onto the stack."""
2987- self ._nav_stack .push (
2988- WeakKeyDictionary (
2989- {ax : (ax ._get_view (),
2990- # Store both the original and modified positions.
2991- (ax .get_position (True ).frozen (),
2992- ax .get_position ().frozen ()))
2993- for ax in self .canvas .figure .axes }))
2994- self .set_history_buttons ()
2995-
2996- @cbook .deprecated ("3.3" )
2997- def release (self , event ):
2998- """Callback for mouse button release."""
2999-
3000- def release_pan (self , event ):
3001- """Callback for mouse button release in pan/zoom mode."""
3002-
3003- if self ._button_pressed is None :
3004- return
3005- self .canvas .mpl_disconnect (self ._id_drag )
3006- self ._id_drag = self .canvas .mpl_connect (
3007- 'motion_notify_event' , self .mouse_move )
3008- for a , ind in self ._xypress :
3009- a .end_pan ()
3010- if not self ._xypress :
3011- return
3012- self ._xypress = []
3013- self ._button_pressed = None
3014- self .push_current ()
3015- release = cbook ._deprecate_method_override (
3016- __class__ .press , self , since = "3.3" , message = "Calling an "
3017- "overridden release() at pan stop is deprecated since %(since)s "
3018- "and will be removed %(removal)s; override release_pan() instead." )
3019- if release is not None :
3020- release (event )
3021- self ._draw ()
3022-
3023- def drag_pan (self , event ):
3024- """Callback for dragging in pan/zoom mode."""
3025- for a , ind in self ._xypress :
3026- #safer to use the recorded button at the press than current button:
3027- #multiple button can get pressed during motion...
3028- a .drag_pan (self ._button_pressed , event .key , event .x , event .y )
3029- self .canvas .draw_idle ()
3030-
30313032 def drag_zoom (self , event ):
30323033 """Callback for dragging in zoom mode."""
30333034 start_xy = self ._zoom_info ["start_xy" ]
@@ -3093,6 +3094,17 @@ def release_zoom(self, event):
30933094 if release is not None :
30943095 release (event )
30953096
3097+ def push_current (self ):
3098+ """Push the current view limits and position onto the stack."""
3099+ self ._nav_stack .push (
3100+ WeakKeyDictionary (
3101+ {ax : (ax ._get_view (),
3102+ # Store both the original and modified positions.
3103+ (ax .get_position (True ).frozen (),
3104+ ax .get_position ().frozen ()))
3105+ for ax in self .canvas .figure .axes }))
3106+ self .set_history_buttons ()
3107+
30963108 @cbook .deprecated ("3.3" , alternative = "toolbar.canvas.draw_idle()" )
30973109 def draw (self ):
30983110 """Redraw the canvases, update the locators."""
@@ -3153,18 +3165,6 @@ def update(self):
31533165 self ._nav_stack .clear ()
31543166 self .set_history_buttons ()
31553167
3156- def zoom (self , * args ):
3157- """Toggle zoom to rect mode."""
3158- if self .mode == _Mode .ZOOM :
3159- self .mode = _Mode .NONE
3160- self .canvas .widgetlock .release (self )
3161- else :
3162- self .mode = _Mode .ZOOM
3163- self .canvas .widgetlock (self )
3164- for a in self .canvas .figure .get_axes ():
3165- a .set_navigate_mode (self .mode )
3166- self .set_message (self .mode )
3167-
31683168 def set_history_buttons (self ):
31693169 """Enable or disable the back/forward button."""
31703170
0 commit comments