@@ -2762,18 +2762,6 @@ def __init__(self, canvas):
2762
2762
def set_message (self , s ):
2763
2763
"""Display a message on toolbar or in status bar."""
2764
2764
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
-
2777
2765
def draw_rubberband (self , event , x0 , y0 , x1 , y1 ):
2778
2766
"""
2779
2767
Draw a rectangle rubberband to indicate zoom limits.
@@ -2784,27 +2772,39 @@ def draw_rubberband(self, event, x0, y0, x1, y1):
2784
2772
def remove_rubberband (self ):
2785
2773
"""Remove the rubberband."""
2786
2774
2787
- def forward (self , * args ):
2775
+ def home (self , * args ):
2788
2776
"""
2789
- Move forward in the view lim stack .
2777
+ Restore the original view .
2790
2778
2791
2779
For convenience of being directly connected as a GUI callback, which
2792
2780
often get passed additional parameters, this method accepts arbitrary
2793
2781
parameters, but does not use them.
2794
2782
"""
2795
- self ._nav_stack .forward ()
2783
+ self ._nav_stack .home ()
2796
2784
self .set_history_buttons ()
2797
2785
self ._update_view ()
2798
2786
2799
- def home (self , * args ):
2787
+ def back (self , * args ):
2800
2788
"""
2801
- Restore the original view.
2789
+ Move back up the view lim stack .
2802
2790
2803
2791
For convenience of being directly connected as a GUI callback, which
2804
2792
often get passed additional parameters, this method accepts arbitrary
2805
2793
parameters, but does not use them.
2806
2794
"""
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 ()
2808
2808
self .set_history_buttons ()
2809
2809
self ._update_view ()
2810
2810
@@ -2908,6 +2908,14 @@ def _zoom_pan_handler(self, event):
2908
2908
elif event .name == "button_release_event" :
2909
2909
self .release_zoom (event )
2910
2910
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
+
2911
2919
def pan (self , * args ):
2912
2920
"""
2913
2921
Toggle the pan/zoom tool.
@@ -2924,10 +2932,6 @@ def pan(self, *args):
2924
2932
a .set_navigate_mode (self .mode )
2925
2933
self .set_message (self .mode )
2926
2934
2927
- @cbook .deprecated ("3.3" )
2928
- def press (self , event ):
2929
- """Called whenever a mouse button is pressed."""
2930
-
2931
2935
def press_pan (self , event ):
2932
2936
"""Callback for mouse button press in pan/zoom mode."""
2933
2937
if event .button in [1 , 3 ]:
@@ -2955,6 +2959,49 @@ def press_pan(self, event):
2955
2959
if press is not None :
2956
2960
press (event )
2957
2961
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
+
2958
3005
def press_zoom (self , event ):
2959
3006
"""Callback for mouse button press in zoom to rect mode."""
2960
3007
if event .button not in [1 , 3 ]:
@@ -2982,52 +3029,6 @@ def press_zoom(self, event):
2982
3029
if press is not None :
2983
3030
press (event )
2984
3031
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
-
3031
3032
def drag_zoom (self , event ):
3032
3033
"""Callback for dragging in zoom mode."""
3033
3034
start_xy = self ._zoom_info ["start_xy" ]
@@ -3093,6 +3094,17 @@ def release_zoom(self, event):
3093
3094
if release is not None :
3094
3095
release (event )
3095
3096
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
+
3096
3108
@cbook .deprecated ("3.3" , alternative = "toolbar.canvas.draw_idle()" )
3097
3109
def draw (self ):
3098
3110
"""Redraw the canvases, update the locators."""
@@ -3153,18 +3165,6 @@ def update(self):
3153
3165
self ._nav_stack .clear ()
3154
3166
self .set_history_buttons ()
3155
3167
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
-
3168
3168
def set_history_buttons (self ):
3169
3169
"""Enable or disable the back/forward button."""
3170
3170
0 commit comments