X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/122c2bae32138468f1da8bd78d6166bff19de3d1..46ff9bd5ddc9c55598eeeecfd8945a54a60cca65:/wxPython/wx/lib/buttonpanel.py diff --git a/wxPython/wx/lib/buttonpanel.py b/wxPython/wx/lib/buttonpanel.py index 872ef93822..d47b9c9482 100644 --- a/wxPython/wx/lib/buttonpanel.py +++ b/wxPython/wx/lib/buttonpanel.py @@ -620,7 +620,7 @@ class BPArt: 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 @@ -974,8 +974,11 @@ class ButtonInfo(Control): 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} @@ -1113,7 +1116,7 @@ class ButtonInfo(Control): if alignment == self._textAlignment: return - self._alignment = alignment + self._textAlignment = alignment def GetToggled(self): @@ -1584,7 +1587,7 @@ class ButtonPanel(wx.PyPanel): def OnPaint(self, event): """ Handles the wx.EVT_PAINT event for ButtonPanel. """ - + dc = wx.BufferedPaintDC(self) rect = self.GetClientRect() @@ -1744,7 +1747,7 @@ class ButtonPanel(wx.PyPanel): 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()) @@ -1765,7 +1768,8 @@ class ButtonPanel(wx.PyPanel): self.RepaintOldSelection() if btn.GetRect().Contains(event.GetPosition()): - btn.SetStatus("Hover") + if btn.GetStatus() != "Pressed": + btn.SetStatus("Hover") else: btn.SetStatus("Normal") @@ -1808,21 +1812,21 @@ class ButtonPanel(wx.PyPanel): 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():