Update buttons.py

This commit is contained in:
JillHolliday
2019-09-03 12:12:01 +01:00
parent 34521dc10d
commit 883d093cda

View File

@@ -174,17 +174,18 @@ class GenButton(wx.Control):
self.SetInitialSize(size)
self.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_BTNFACE))
self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown)
self.Bind(wx.EVT_LEFT_UP, self.OnLeftUp)
self.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftDown)
self.Bind(wx.EVT_MOTION, self.OnMotion)
self.Bind(wx.EVT_SET_FOCUS, self.OnGainFocus)
self.Bind(wx.EVT_KILL_FOCUS, self.OnLoseFocus)
self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
self.Bind(wx.EVT_KEY_UP, self.OnKeyUp)
self.Bind(wx.EVT_PAINT, self.OnPaint)
self.Bind(wx.EVT_ERASE_BACKGROUND, lambda evt: None)
self.Bind(wx.EVT_SIZE, self.OnSize)
self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown)
self.Bind(wx.EVT_LEFT_UP, self.OnLeftUp)
self.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftDown)
self.Bind(wx.EVT_MOTION, self.OnMotion)
self.Bind(wx.EVT_SET_FOCUS, self.OnGainFocus)
self.Bind(wx.EVT_KILL_FOCUS, self.OnLoseFocus)
self.Bind(wx.EVT_MOUSE_CAPTURE_LOST, self.OnLoseCapture)
self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
self.Bind(wx.EVT_KEY_UP, self.OnKeyUp)
self.Bind(wx.EVT_PAINT, self.OnPaint)
self.Bind(wx.EVT_ERASE_BACKGROUND, lambda evt: None)
self.Bind(wx.EVT_SIZE, self.OnSize)
self.InitOtherEvents()
@@ -543,7 +544,7 @@ class GenButton(wx.Control):
:param `event`: a :class:`wx.MouseEvent` event to be processed.
"""
if not self.IsEnabled():
if (not self.IsEnabled()) or self.HasCapture():
return
self.up = False
@@ -624,6 +625,18 @@ class GenButton(wx.Control):
self.Update()
def OnLoseCapture(self, event):
"""
Handles the ``wx.EVT_MOUSE_CAPTURE_LOST`` event for :class:`GenButton`.
:param `event`: a :class:`wx.MouseCaptureLostEvent` event to be processed.
"""
self.up = True
self.Refresh()
self.Update()
def OnKeyDown(self, event):
"""
Handles the ``wx.EVT_KEY_DOWN`` event for :class:`GenButton`.
@@ -962,6 +975,9 @@ class __ToggleMixin(object):
return
self.saveUp = self.up
if self.HasCapture():
return
self.up = not self.up
self.CaptureMouse()
self.SetFocus()