@@ -2857,18 +2857,6 @@ def __init__(self, canvas):
2857
2857
def set_message (self , s ):
2858
2858
"""Display a message on toolbar or in status bar."""
2859
2859
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
-
2872
2860
def draw_rubberband (self , event , x0 , y0 , x1 , y1 ):
2873
2861
"""
2874
2862
Draw a rectangle rubberband to indicate zoom limits.
@@ -2879,27 +2867,39 @@ def draw_rubberband(self, event, x0, y0, x1, y1):
2879
2867
def remove_rubberband (self ):
2880
2868
"""Remove the rubberband."""
2881
2869
2882
- def forward (self , * args ):
2870
+ def home (self , * args ):
2883
2871
"""
2884
- Move forward in the view lim stack .
2872
+ Restore the original view .
2885
2873
2886
2874
For convenience of being directly connected as a GUI callback, which
2887
2875
often get passed additional parameters, this method accepts arbitrary
2888
2876
parameters, but does not use them.
2889
2877
"""
2890
- self ._nav_stack .forward ()
2878
+ self ._nav_stack .home ()
2891
2879
self .set_history_buttons ()
2892
2880
self ._update_view ()
2893
2881
2894
- def home (self , * args ):
2882
+ def back (self , * args ):
2895
2883
"""
2896
- Restore the original view.
2884
+ Move back up the view lim stack .
2897
2885
2898
2886
For convenience of being directly connected as a GUI callback, which
2899
2887
often get passed additional parameters, this method accepts arbitrary
2900
2888
parameters, but does not use them.
2901
2889
"""
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 ()
2903
2903
self .set_history_buttons ()
2904
2904
self ._update_view ()
2905
2905
@@ -3003,6 +3003,14 @@ def _zoom_pan_handler(self, event):
3003
3003
elif event .name == "button_release_event" :
3004
3004
self .release_zoom (event )
3005
3005
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
+
3006
3014
def pan (self , * args ):
3007
3015
"""
3008
3016
Toggle the pan/zoom tool.
@@ -3019,10 +3027,6 @@ def pan(self, *args):
3019
3027
a .set_navigate_mode (self .mode )
3020
3028
self .set_message (self .mode )
3021
3029
3022
- @cbook .deprecated ("3.3" )
3023
- def press (self , event ):
3024
- """Called whenever a mouse button is pressed."""
3025
-
3026
3030
def press_pan (self , event ):
3027
3031
"""Callback for mouse button press in pan/zoom mode."""
3028
3032
if event .button in [1 , 3 ]:
@@ -3050,6 +3054,49 @@ def press_pan(self, event):
3050
3054
if press is not None :
3051
3055
press (event )
3052
3056
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
+
3053
3100
def press_zoom (self , event ):
3054
3101
"""Callback for mouse button press in zoom to rect mode."""
3055
3102
if event .button not in [1 , 3 ]:
@@ -3077,52 +3124,6 @@ def press_zoom(self, event):
3077
3124
if press is not None :
3078
3125
press (event )
3079
3126
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
-
3126
3127
def drag_zoom (self , event ):
3127
3128
"""Callback for dragging in zoom mode."""
3128
3129
start_xy = self ._zoom_info ["start_xy" ]
@@ -3188,6 +3189,17 @@ def release_zoom(self, event):
3188
3189
if release is not None :
3189
3190
release (event )
3190
3191
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
+
3191
3203
@cbook .deprecated ("3.3" , alternative = "toolbar.canvas.draw_idle()" )
3192
3204
def draw (self ):
3193
3205
"""Redraw the canvases, update the locators."""
@@ -3248,18 +3260,6 @@ def update(self):
3248
3260
self ._nav_stack .clear ()
3249
3261
self .set_history_buttons ()
3250
3262
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
-
3263
3263
def set_history_buttons (self ):
3264
3264
"""Enable or disable the back/forward button."""
3265
3265
0 commit comments