]> git.saurik.com Git - wxWidgets.git/commitdiff
Factor the brush selection out of OnPaint so it can be overridden in
authorRobin Dunn <robin@alldunn.com>
Tue, 24 Oct 2006 01:30:47 +0000 (01:30 +0000)
committerRobin Dunn <robin@alldunn.com>
Tue, 24 Oct 2006 01:30:47 +0000 (01:30 +0000)
derived classes

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42322 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

wxPython/wx/lib/buttons.py

index 11c3e77860583b9c2fde845269dce5c5fca6c4e7..f1e2f737a8454d0948ff161b82bd6c31b230306d 100644 (file)
@@ -255,16 +255,25 @@ class GenButton(wx.PyControl):
         dc.DrawRectangle(bw+2,bw+2,  w-bw*2-4, h-bw*2-4)
         dc.SetLogicalFunction(wx.COPY)
 
-
     def OnPaint(self, event):
         (width, height) = self.GetClientSizeTuple()
         x1 = y1 = 0
         x2 = width-1
         y2 = height-1
-        
+
         dc = wx.PaintDC(self)
-        brush = None
-        
+        brush = self.GetBackgroundBrush(dc)
+        if brush is not None:
+            dc.SetBackground(brush)
+            dc.Clear()
+
+        self.DrawBezel(dc, x1, y1, x2, y2)
+        self.DrawLabel(dc, width, height)
+        if self.hasFocus and self.useFocusInd:
+            self.DrawFocusIndicator(dc, width, height)
+
+
+    def GetBackgroundBrush(self, dc):
         if self.up:
             colBg = self.GetBackgroundColour()
             brush = wx.Brush(colBg, wx.SOLID)
@@ -283,15 +292,10 @@ class GenButton(wx.PyControl):
                     colBg = self.GetParent().GetBackgroundColour()
                     brush = wx.Brush(colBg, wx.SOLID)
         else:
+            # this line assumes that a pressed button should be hilighted with
+            # a solid colour even if the background is supposed to be transparent
             brush = wx.Brush(self.faceDnClr, wx.SOLID)
-        if brush is not None:
-            dc.SetBackground(brush)
-            dc.Clear()
-                    
-        self.DrawBezel(dc, x1, y1, x2, y2)
-        self.DrawLabel(dc, width, height)
-        if self.hasFocus and self.useFocusInd:
-            self.DrawFocusIndicator(dc, width, height)
+        return brush
 
 
     def OnLeftDown(self, event):