16
16
import matplotlib
17
17
from matplotlib .backend_bases import (
18
18
_Backend , FigureCanvasBase , FigureManagerBase , GraphicsContextBase ,
19
- NavigationToolbar2 , RendererBase , TimerBase , cursors , ToolContainerBase ,
20
- StatusbarBase )
21
- from matplotlib .backend_bases import _has_pil
19
+ MouseButton , NavigationToolbar2 , RendererBase , StatusbarBase , TimerBase ,
20
+ ToolContainerBase , _has_pil , cursors )
22
21
23
22
from matplotlib import cbook , rcParams , backend_tools
24
23
from matplotlib ._pylab_helpers import Gcf
@@ -607,20 +606,19 @@ def __init__(self, parent, id, figure):
607
606
self .Bind (wx .EVT_PAINT , self ._onPaint )
608
607
self .Bind (wx .EVT_KEY_DOWN , self ._onKeyDown )
609
608
self .Bind (wx .EVT_KEY_UP , self ._onKeyUp )
610
- self .Bind (wx .EVT_RIGHT_DOWN , self ._onRightButtonDown )
611
- self .Bind (wx .EVT_RIGHT_DCLICK , self ._onRightButtonDClick )
612
- self .Bind (wx .EVT_RIGHT_UP , self ._onRightButtonUp )
609
+ self .Bind (wx .EVT_LEFT_DOWN , self ._onMouseButton )
610
+ self .Bind (wx .EVT_LEFT_DCLICK , self ._onMouseButton )
611
+ self .Bind (wx .EVT_LEFT_UP , self ._onMouseButton )
612
+ self .Bind (wx .EVT_MIDDLE_DOWN , self ._onMouseButton )
613
+ self .Bind (wx .EVT_MIDDLE_DCLICK , self ._onMouseButton )
614
+ self .Bind (wx .EVT_MIDDLE_UP , self ._onMouseButton )
615
+ self .Bind (wx .EVT_RIGHT_DOWN , self ._onMouseButton )
616
+ self .Bind (wx .EVT_RIGHT_DCLICK , self ._onMouseButton )
617
+ self .Bind (wx .EVT_RIGHT_UP , self ._onMouseButton )
613
618
self .Bind (wx .EVT_MOUSEWHEEL , self ._onMouseWheel )
614
- self .Bind (wx .EVT_LEFT_DOWN , self ._onLeftButtonDown )
615
- self .Bind (wx .EVT_LEFT_DCLICK , self ._onLeftButtonDClick )
616
- self .Bind (wx .EVT_LEFT_UP , self ._onLeftButtonUp )
617
619
self .Bind (wx .EVT_MOTION , self ._onMotion )
618
620
self .Bind (wx .EVT_LEAVE_WINDOW , self ._onLeave )
619
621
self .Bind (wx .EVT_ENTER_WINDOW , self ._onEnter )
620
- # Add middle button events
621
- self .Bind (wx .EVT_MIDDLE_DOWN , self ._onMiddleButtonDown )
622
- self .Bind (wx .EVT_MIDDLE_DCLICK , self ._onMiddleButtonDClick )
623
- self .Bind (wx .EVT_MIDDLE_UP , self ._onMiddleButtonUp )
624
622
625
623
self .Bind (wx .EVT_MOUSE_CAPTURE_CHANGED , self ._onCaptureLost )
626
624
self .Bind (wx .EVT_MOUSE_CAPTURE_LOST , self ._onCaptureLost )
@@ -841,81 +839,25 @@ def _onCaptureLost(self, evt):
841
839
"""Capture changed or lost"""
842
840
self ._set_capture (False )
843
841
844
- def _onRightButtonDown (self , evt ):
842
+ def _onMouseButton (self , evt ):
845
843
"""Start measuring on an axis."""
846
- x = evt .GetX ()
847
- y = self .figure .bbox .height - evt .GetY ()
848
- evt .Skip ()
849
- self ._set_capture (True )
850
- FigureCanvasBase .button_press_event (self , x , y , 3 , guiEvent = evt )
851
-
852
- def _onRightButtonDClick (self , evt ):
853
- """Start measuring on an axis."""
854
- x = evt .GetX ()
855
- y = self .figure .bbox .height - evt .GetY ()
856
- evt .Skip ()
857
- self ._set_capture (True )
858
- FigureCanvasBase .button_press_event (self , x , y , 3 ,
859
- dblclick = True , guiEvent = evt )
860
-
861
- def _onRightButtonUp (self , evt ):
862
- """End measuring on an axis."""
863
- x = evt .GetX ()
864
- y = self .figure .bbox .height - evt .GetY ()
865
- evt .Skip ()
866
- self ._set_capture (False )
867
- FigureCanvasBase .button_release_event (self , x , y , 3 , guiEvent = evt )
868
-
869
- def _onLeftButtonDown (self , evt ):
870
- """Start measuring on an axis."""
871
- x = evt .GetX ()
872
- y = self .figure .bbox .height - evt .GetY ()
873
- evt .Skip ()
874
- self ._set_capture (True )
875
- FigureCanvasBase .button_press_event (self , x , y , 1 , guiEvent = evt )
876
-
877
- def _onLeftButtonDClick (self , evt ):
878
- """Start measuring on an axis."""
879
- x = evt .GetX ()
880
- y = self .figure .bbox .height - evt .GetY ()
881
- evt .Skip ()
882
- self ._set_capture (True )
883
- FigureCanvasBase .button_press_event (self , x , y , 1 ,
884
- dblclick = True , guiEvent = evt )
885
-
886
- def _onLeftButtonUp (self , evt ):
887
- """End measuring on an axis."""
888
- x = evt .GetX ()
889
- y = self .figure .bbox .height - evt .GetY ()
890
- evt .Skip ()
891
- self ._set_capture (False )
892
- FigureCanvasBase .button_release_event (self , x , y , 1 , guiEvent = evt )
893
-
894
- # Add middle button events
895
- def _onMiddleButtonDown (self , evt ):
896
- """Start measuring on an axis."""
897
- x = evt .GetX ()
898
- y = self .figure .bbox .height - evt .GetY ()
899
844
evt .Skip ()
900
- self ._set_capture (True )
901
- FigureCanvasBase .button_press_event (self , x , y , 2 , guiEvent = evt )
902
-
903
- def _onMiddleButtonDClick (self , evt ):
904
- """Start measuring on an axis."""
905
- x = evt .GetX ()
906
- y = self .figure .bbox .height - evt .GetY ()
907
- evt .Skip ()
908
- self ._set_capture (True )
909
- FigureCanvasBase .button_press_event (self , x , y , 2 ,
910
- dblclick = True , guiEvent = evt )
911
-
912
- def _onMiddleButtonUp (self , evt ):
913
- """End measuring on an axis."""
914
- x = evt .GetX ()
915
- y = self .figure .bbox .height - evt .GetY ()
916
- evt .Skip ()
917
- self ._set_capture (False )
918
- FigureCanvasBase .button_release_event (self , x , y , 2 , guiEvent = evt )
845
+ self ._set_capture (evt .ButtonDown () or evt .ButtonDClick ())
846
+ x = evt .X
847
+ y = self .figure .bbox .height - evt .Y
848
+ button_map = {
849
+ wx .MOUSE_BTN_LEFT : MouseButton .LEFT ,
850
+ wx .MOUSE_BTN_MIDDLE : MouseButton .MIDDLE ,
851
+ wx .MOUSE_BTN_RIGHT : MouseButton .RIGHT ,
852
+ }
853
+ button = evt .GetButton ()
854
+ button = button_map .get (button , button )
855
+ if evt .ButtonDown ():
856
+ self .button_press_event (x , y , button , guiEvent = evt )
857
+ elif evt .ButtonDClick ():
858
+ self .button_press_event (x , y , button , dblclick = True , guiEvent = evt )
859
+ elif evt .ButtonUp ():
860
+ self .button_release_event (x , y , button , guiEvent = evt )
919
861
920
862
def _onMouseWheel (self , evt ):
921
863
"""Translate mouse wheel events into matplotlib events"""
0 commit comments