if isVertical:
dc.DrawLine(rect.x, coord, rect.x + rect.width, coord)
else:
- dc.DrawLine(coord, rect.y, coord, rect.y + rect.width)
+ dc.DrawLine(coord, rect.y, coord, rect.y + rect.height)
rf += rstep
gf += gstep
self._shortHelp = shortHelp
self._longHelp = longHelp
- disabledbmp = GrayOut(bmp)
-
+ if bmp:
+ disabledbmp = GrayOut(bmp)
+ else:
+ disabledbmp = wx.NullBitmap
+
self._bitmaps = {"Normal": bmp, "Toggled": None, "Disabled": disabledbmp,
"Hover": None, "Pressed": None}
def OnPaint(self, event):
""" Handles the wx.EVT_PAINT event for ButtonPanel. """
-
+
dc = wx.BufferedPaintDC(self)
rect = self.GetClientRect()
def OnMouseMove(self, event):
""" Handles the wx.EVT_MOTION event for ButtonPanel. """
-
+
# Check to see if we are hovering a button
tabId, flags = self.HitTest(event.GetPosition())
self.RepaintOldSelection()
if btn.GetRect().Contains(event.GetPosition()):
- btn.SetStatus("Hover")
+ if btn.GetStatus() != "Pressed":
+ btn.SetStatus("Hover")
else:
btn.SetStatus("Normal")
btn.SetFocus(False)
if hit.GetStatus() == "Pressed":
- # Fire a button click event
- btnEvent = wx.CommandEvent(wx.wxEVT_COMMAND_BUTTON_CLICKED, hit.GetId())
- self.GetEventHandler().ProcessEvent(btnEvent)
-
hit.SetToggled(not hit.GetToggled())
# Update the button status to be hovered
hit.SetStatus("Hover")
hit.SetFocus()
self._currentButton = tabId
+
+ # Fire a button click event
+ btnEvent = wx.CommandEvent(wx.wxEVT_COMMAND_BUTTON_CLICKED, hit.GetId())
+ self.GetEventHandler().ProcessEvent(btnEvent)
def OnMouseLeave(self, event):
""" Handles the wx.EVT_LEAVE_WINDOW event for ButtonPanel. """
-
+
# Reset all buttons statuses
for btn in self._vButtons:
if not btn.IsEnabled():