@@ -1789,11 +1789,15 @@ def __init__(self, ax, onselect, useblit=False, button=None,
1789
1789
self .validButtons = button
1790
1790
1791
1791
# will save the data (position at mouseclick)
1792
- self .eventpress = None
1792
+ self ._eventpress = None
1793
1793
# will save the data (pos. at mouserelease)
1794
- self .eventrelease = None
1794
+ self ._eventrelease = None
1795
1795
self ._prev_event = None
1796
- self .state = set ()
1796
+ self ._state = set ()
1797
+
1798
+ eventpress = _api .deprecate_privatize_attribute ("3.5" )
1799
+ eventrelease = _api .deprecate_privatize_attribute ("3.5" )
1800
+ state = _api .deprecate_privatize_attribute ("3.5" )
1797
1801
1798
1802
def set_active (self , active ):
1799
1803
super ().set_active (active )
@@ -1846,14 +1850,14 @@ def ignore(self, event):
1846
1850
return True
1847
1851
# If no button was pressed yet ignore the event if it was out
1848
1852
# of the axes
1849
- if self .eventpress is None :
1853
+ if self ._eventpress is None :
1850
1854
return event .inaxes != self .ax
1851
1855
# If a button was pressed, check if the release-button is the same.
1852
- if event .button == self .eventpress .button :
1856
+ if event .button == self ._eventpress .button :
1853
1857
return False
1854
1858
# If a button was pressed, check if the release-button is the same.
1855
1859
return (event .inaxes != self .ax or
1856
- event .button != self .eventpress .button )
1860
+ event .button != self ._eventpress .button )
1857
1861
1858
1862
def update (self ):
1859
1863
"""Draw using blit() or draw_idle(), depending on ``self.useblit``."""
@@ -1899,13 +1903,13 @@ def press(self, event):
1899
1903
"""Button press handler and validator."""
1900
1904
if not self .ignore (event ):
1901
1905
event = self ._clean_event (event )
1902
- self .eventpress = event
1906
+ self ._eventpress = event
1903
1907
self ._prev_event = event
1904
1908
key = event .key or ''
1905
1909
key = key .replace ('ctrl' , 'control' )
1906
1910
# move state is locked in on a button press
1907
1911
if key == self .state_modifier_keys ['move' ]:
1908
- self .state .add ('move' )
1912
+ self ._state .add ('move' )
1909
1913
self ._press (event )
1910
1914
return True
1911
1915
return False
@@ -1915,13 +1919,13 @@ def _press(self, event):
1915
1919
1916
1920
def release (self , event ):
1917
1921
"""Button release event handler and validator."""
1918
- if not self .ignore (event ) and self .eventpress :
1922
+ if not self .ignore (event ) and self ._eventpress :
1919
1923
event = self ._clean_event (event )
1920
- self .eventrelease = event
1924
+ self ._eventrelease = event
1921
1925
self ._release (event )
1922
- self .eventpress = None
1923
- self .eventrelease = None
1924
- self .state .discard ('move' )
1926
+ self ._eventpress = None
1927
+ self ._eventrelease = None
1928
+ self ._state .discard ('move' )
1925
1929
return True
1926
1930
return False
1927
1931
@@ -1930,7 +1934,7 @@ def _release(self, event):
1930
1934
1931
1935
def onmove (self , event ):
1932
1936
"""Cursor move event handler and validator."""
1933
- if not self .ignore (event ) and self .eventpress :
1937
+ if not self .ignore (event ) and self ._eventpress :
1934
1938
event = self ._clean_event (event )
1935
1939
self ._onmove (event )
1936
1940
return True
@@ -1959,7 +1963,7 @@ def on_key_press(self, event):
1959
1963
return
1960
1964
for (state , modifier ) in self .state_modifier_keys .items ():
1961
1965
if modifier in key :
1962
- self .state .add (state )
1966
+ self ._state .add (state )
1963
1967
self ._on_key_press (event )
1964
1968
1965
1969
def _on_key_press (self , event ):
@@ -1971,7 +1975,7 @@ def on_key_release(self, event):
1971
1975
key = event .key or ''
1972
1976
for (state , modifier ) in self .state_modifier_keys .items ():
1973
1977
if modifier in key :
1974
- self .state .discard (state )
1978
+ self ._state .discard (state )
1975
1979
self ._on_key_release (event )
1976
1980
1977
1981
def _on_key_release (self , event ):
@@ -2240,9 +2244,9 @@ def _onmove(self, event):
2240
2244
2241
2245
v = event .xdata if self .direction == 'horizontal' else event .ydata
2242
2246
if self .direction == 'horizontal' :
2243
- vpress = self .eventpress .xdata
2247
+ vpress = self ._eventpress .xdata
2244
2248
else :
2245
- vpress = self .eventpress .ydata
2249
+ vpress = self ._eventpress .ydata
2246
2250
2247
2251
# move existing span
2248
2252
# When "dragging from anywhere", `self._active_handle` is set to 'C'
@@ -2290,7 +2294,7 @@ def _set_active_handle(self, event):
2290
2294
2291
2295
# Prioritise center handle over other handles
2292
2296
# Use 'C' to match the notation used in the RectangleSelector
2293
- if 'move' in self .state :
2297
+ if 'move' in self ._state :
2294
2298
self ._active_handle = 'C'
2295
2299
elif e_dist > self .handle_grab_distance :
2296
2300
# Not close to any handles
@@ -2712,23 +2716,23 @@ def _release(self, event):
2712
2716
2713
2717
# update the eventpress and eventrelease with the resulting extents
2714
2718
x0 , x1 , y0 , y1 = self .extents
2715
- self .eventpress .xdata = x0
2716
- self .eventpress .ydata = y0
2719
+ self ._eventpress .xdata = x0
2720
+ self ._eventpress .ydata = y0
2717
2721
xy0 = self .ax .transData .transform ([x0 , y0 ])
2718
- self .eventpress .x , self .eventpress .y = xy0
2722
+ self ._eventpress .x , self ._eventpress .y = xy0
2719
2723
2720
- self .eventrelease .xdata = x1
2721
- self .eventrelease .ydata = y1
2724
+ self ._eventrelease .xdata = x1
2725
+ self ._eventrelease .ydata = y1
2722
2726
xy1 = self .ax .transData .transform ([x1 , y1 ])
2723
- self .eventrelease .x , self .eventrelease .y = xy1
2727
+ self ._eventrelease .x , self ._eventrelease .y = xy1
2724
2728
2725
2729
# calculate dimensions of box or line
2726
2730
if self .spancoords == 'data' :
2727
- spanx = abs (self .eventpress .xdata - self .eventrelease .xdata )
2728
- spany = abs (self .eventpress .ydata - self .eventrelease .ydata )
2731
+ spanx = abs (self ._eventpress .xdata - self ._eventrelease .xdata )
2732
+ spany = abs (self ._eventpress .ydata - self ._eventrelease .ydata )
2729
2733
elif self .spancoords == 'pixels' :
2730
- spanx = abs (self .eventpress .x - self .eventrelease .x )
2731
- spany = abs (self .eventpress .y - self .eventrelease .y )
2734
+ spanx = abs (self ._eventpress .x - self ._eventrelease .x )
2735
+ spany = abs (self ._eventpress .y - self ._eventrelease .y )
2732
2736
else :
2733
2737
_api .check_in_list (['data' , 'pixels' ],
2734
2738
spancoords = self .spancoords )
@@ -2743,7 +2747,7 @@ def _release(self, event):
2743
2747
return
2744
2748
2745
2749
# call desired function
2746
- self .onselect (self .eventpress , self .eventrelease )
2750
+ self .onselect (self ._eventpress , self ._eventrelease )
2747
2751
self .update ()
2748
2752
2749
2753
return False
@@ -2759,26 +2763,26 @@ def _onmove(self, event):
2759
2763
y1 = event .ydata
2760
2764
2761
2765
# move existing shape
2762
- elif (('move' in self .state or self ._active_handle == 'C' or
2766
+ elif (('move' in self ._state or self ._active_handle == 'C' or
2763
2767
(self .drag_from_anywhere and self ._contains (event ))) and
2764
2768
self ._extents_on_press is not None ):
2765
2769
x0 , x1 , y0 , y1 = self ._extents_on_press
2766
- dx = event .xdata - self .eventpress .xdata
2767
- dy = event .ydata - self .eventpress .ydata
2770
+ dx = event .xdata - self ._eventpress .xdata
2771
+ dy = event .ydata - self ._eventpress .ydata
2768
2772
x0 += dx
2769
2773
x1 += dx
2770
2774
y0 += dy
2771
2775
y1 += dy
2772
2776
2773
2777
# new shape
2774
2778
else :
2775
- center = [self .eventpress .xdata , self .eventpress .ydata ]
2776
- center_pix = [self .eventpress .x , self .eventpress .y ]
2779
+ center = [self ._eventpress .xdata , self ._eventpress .ydata ]
2780
+ center_pix = [self ._eventpress .x , self ._eventpress .y ]
2777
2781
dx = (event .xdata - center [0 ]) / 2.
2778
2782
dy = (event .ydata - center [1 ]) / 2.
2779
2783
2780
2784
# square shape
2781
- if 'square' in self .state :
2785
+ if 'square' in self ._state :
2782
2786
dx_pix = abs (event .x - center_pix [0 ])
2783
2787
dy_pix = abs (event .y - center_pix [1 ])
2784
2788
if not dx_pix :
@@ -2790,7 +2794,7 @@ def _onmove(self, event):
2790
2794
dy *= maxd / (abs (dy_pix ) + 1e-6 )
2791
2795
2792
2796
# from center
2793
- if 'center' in self .state :
2797
+ if 'center' in self ._state :
2794
2798
dx *= 2
2795
2799
dy *= 2
2796
2800
@@ -2891,7 +2895,7 @@ def _set_active_handle(self, event):
2891
2895
e_idx , e_dist = self ._edge_handles .closest (event .x , event .y )
2892
2896
m_idx , m_dist = self ._center_handle .closest (event .x , event .y )
2893
2897
2894
- if 'move' in self .state :
2898
+ if 'move' in self ._state :
2895
2899
self ._active_handle = 'C'
2896
2900
self ._extents_on_press = self .extents
2897
2901
# Set active handle as closest handle, if mouse click is close enough.
@@ -3204,7 +3208,7 @@ def _remove_vertex(self, i):
3204
3208
def _press (self , event ):
3205
3209
"""Button press event handler."""
3206
3210
# Check for selection of a tool handle.
3207
- if ((self ._polygon_completed or 'move_vertex' in self .state )
3211
+ if ((self ._polygon_completed or 'move_vertex' in self ._state )
3208
3212
and len (self ._xs ) > 0 ):
3209
3213
h_idx , h_dist = self ._polygon_handles .closest (event .x , event .y )
3210
3214
if h_dist < self .vertex_select_radius :
@@ -3230,8 +3234,8 @@ def _release(self, event):
3230
3234
3231
3235
# Place new vertex.
3232
3236
elif (not self ._polygon_completed
3233
- and 'move_all' not in self .state
3234
- and 'move_vertex' not in self .state ):
3237
+ and 'move_all' not in self ._state
3238
+ and 'move_vertex' not in self ._state ):
3235
3239
self ._xs .insert (- 1 , event .xdata )
3236
3240
self ._ys .insert (- 1 , event .ydata )
3237
3241
@@ -3243,7 +3247,7 @@ def onmove(self, event):
3243
3247
# Method overrides _SelectorWidget.onmove because the polygon selector
3244
3248
# needs to process the move callback even if there is no button press.
3245
3249
# _SelectorWidget.onmove include logic to ignore move event if
3246
- # eventpress is None.
3250
+ # _eventpress is None.
3247
3251
if not self .ignore (event ):
3248
3252
event = self ._clean_event (event )
3249
3253
self ._onmove (event )
@@ -3262,16 +3266,16 @@ def _onmove(self, event):
3262
3266
self ._xs [- 1 ], self ._ys [- 1 ] = event .xdata , event .ydata
3263
3267
3264
3268
# Move all vertices.
3265
- elif 'move_all' in self .state and self .eventpress :
3266
- dx = event .xdata - self .eventpress .xdata
3267
- dy = event .ydata - self .eventpress .ydata
3269
+ elif 'move_all' in self ._state and self ._eventpress :
3270
+ dx = event .xdata - self ._eventpress .xdata
3271
+ dy = event .ydata - self ._eventpress .ydata
3268
3272
for k in range (len (self ._xs )):
3269
3273
self ._xs [k ] = self ._xs_at_press [k ] + dx
3270
3274
self ._ys [k ] = self ._ys_at_press [k ] + dy
3271
3275
3272
3276
# Do nothing if completed or waiting for a move.
3273
3277
elif (self ._polygon_completed
3274
- or 'move_vertex' in self .state or 'move_all' in self .state ):
3278
+ or 'move_vertex' in self ._state or 'move_all' in self ._state ):
3275
3279
return
3276
3280
3277
3281
# Position pending vertex.
@@ -3293,7 +3297,8 @@ def _on_key_press(self, event):
3293
3297
# Remove the pending vertex if entering the 'move_vertex' or
3294
3298
# 'move_all' mode
3295
3299
if (not self ._polygon_completed
3296
- and ('move_vertex' in self .state or 'move_all' in self .state )):
3300
+ and ('move_vertex' in self ._state or
3301
+ 'move_all' in self ._state )):
3297
3302
self ._xs , self ._ys = self ._xs [:- 1 ], self ._ys [:- 1 ]
3298
3303
self ._draw_polygon ()
3299
3304
0 commit comments