Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 023ce77

Browse filesBrowse files
authored
Merge pull request #14730 from anntzer/wxeventhandlers
Factor out common parts of wx event handlers.
2 parents 4728e70 + 424cf93 commit 023ce77
Copy full SHA for 023ce77

File tree

Expand file treeCollapse file tree

1 file changed

+28
-86
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+28
-86
lines changed

‎lib/matplotlib/backends/backend_wx.py

Copy file name to clipboardExpand all lines: lib/matplotlib/backends/backend_wx.py
+28-86Lines changed: 28 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,8 @@
1616
import matplotlib
1717
from matplotlib.backend_bases import (
1818
_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)
2221

2322
from matplotlib import cbook, rcParams, backend_tools
2423
from matplotlib._pylab_helpers import Gcf
@@ -607,20 +606,19 @@ def __init__(self, parent, id, figure):
607606
self.Bind(wx.EVT_PAINT, self._onPaint)
608607
self.Bind(wx.EVT_KEY_DOWN, self._onKeyDown)
609608
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)
613618
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)
617619
self.Bind(wx.EVT_MOTION, self._onMotion)
618620
self.Bind(wx.EVT_LEAVE_WINDOW, self._onLeave)
619621
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)
624622

625623
self.Bind(wx.EVT_MOUSE_CAPTURE_CHANGED, self._onCaptureLost)
626624
self.Bind(wx.EVT_MOUSE_CAPTURE_LOST, self._onCaptureLost)
@@ -841,81 +839,25 @@ def _onCaptureLost(self, evt):
841839
"""Capture changed or lost"""
842840
self._set_capture(False)
843841

844-
def _onRightButtonDown(self, evt):
842+
def _onMouseButton(self, evt):
845843
"""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()
899844
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)
919861

920862
def _onMouseWheel(self, evt):
921863
"""Translate mouse wheel events into matplotlib events"""

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.