From 169f3a3d6ff1d73a71e8b03f04f7e252c619a630 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Tue, 12 Dec 2006 01:51:18 +0000 Subject: [PATCH] Added a set of button classes to wx.lib.buttons from David Hughes that uses the native renderer to draw the button. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43947 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- wxPython/demo/GenericButtons.py | 4 ++++ wxPython/docs/CHANGES.txt | 4 +++- wxPython/wx/lib/buttons.py | 35 ++++++++++++++++++++++++++++++++- 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/wxPython/demo/GenericButtons.py b/wxPython/demo/GenericButtons.py index 7a08befcff..a142d5c234 100644 --- a/wxPython/demo/GenericButtons.py +++ b/wxPython/demo/GenericButtons.py @@ -128,6 +128,10 @@ class TestPanel(wx.Panel): ##b.SetBackgroundColour("sky blue") ##b.SetBackgroundColour("pink") + b = buttons.ThemedGenButton(self, -1, 'Drawn with native renderer') + self.Bind(wx.EVT_BUTTON, self.OnButton, b) + sizer.Add(b) + border = wx.BoxSizer(wx.VERTICAL) border.Add(sizer, 0, wx.ALL, 25) diff --git a/wxPython/docs/CHANGES.txt b/wxPython/docs/CHANGES.txt index ad953adefd..150779f304 100644 --- a/wxPython/docs/CHANGES.txt +++ b/wxPython/docs/CHANGES.txt @@ -53,11 +53,13 @@ without intervening fixed characters. Added wx.SearchCtrl, which is a composite of a wx.TextCtrl with optional bitmap buttons and a drop-down menu. Controls like this can typically be found on a toolbar of applications that support some form of search -functionality. On the Mac this control is implemneted using the +functionality. On the Mac this control is implemented using the native HISearchField control, on the other platforms a generic control is used, although that may change in the future as more platforms introduce native search widgets. +Added a set of button classes to wx.lib.buttons from David Hughes that +uses the native renderer to draw the button. diff --git a/wxPython/wx/lib/buttons.py b/wxPython/wx/lib/buttons.py index f4b9d7b4fb..a7290cbbde 100644 --- a/wxPython/wx/lib/buttons.py +++ b/wxPython/wx/lib/buttons.py @@ -198,7 +198,9 @@ class GenButton(wx.PyControl): self.InitColours() def SetDefault(self): - self.GetParent().SetDefaultItem(self) + tlw = wx.GetTopLevelParent(self) + if hasattr(tlw, 'SetDefaultItem'): + tlw.SetDefaultItem(self) def _GetLabelSize(self): """ used internally """ @@ -579,4 +581,35 @@ class GenBitmapTextToggleButton(__ToggleMixin, GenBitmapTextButton): #---------------------------------------------------------------------- +class ThemedGenButton(GenButton): + " A themed generic button, and base class for the other themed buttons " + def DrawBezel(self, dc, x1, y1, x2, y2): + rect = wx.Rect(x1, y1, x2, y2) + if self.up: + state = 0 + else: + state = wx.CONTROL_PRESSED + wx.RendererNative.Get().DrawPushButton(self, dc, rect, state) + +class ThemedGenBitmapButton(ThemedGenButton, GenBitmapButton): + """A themed generic bitmap button.""" + pass + +class ThemedGenBitmapTextButton(ThemedGenButton, GenBitmapTextButton): + """A themed generic bitmapped button with text label""" + pass + +class ThemedGenToggleButton(ThemedGenButton, GenToggleButton): + """A themed generic toggle button""" + pass + +class ThemedGenBitmapToggleButton(ThemedGenButton, GenBitmapToggleButton): + """A themed generic toggle bitmap button""" + pass +class ThemedGenBitmapTextToggleButton(ThemedGenButton, GenBitmapTextToggleButton): + """A themed generic toggle bitmap button with text label""" + pass + + +#---------------------------------------------------------------------- -- 2.47.2