X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/185d7c3ee4c6e4a9ddaf811ae38e57d68a0fdff3..42f8298f6f42d5d63bb3caf65682b7d9d9f8b702:/wxPython/demo/GenericButtons.py?ds=inline diff --git a/wxPython/demo/GenericButtons.py b/wxPython/demo/GenericButtons.py index ccdf0ef34a..7bbe9d5704 100644 --- a/wxPython/demo/GenericButtons.py +++ b/wxPython/demo/GenericButtons.py @@ -1,77 +1,136 @@ -from wxPython.wx import * -from wxPython.lib.buttons import wxGenButton, wxGenBitmapButton, \ - wxGenToggleButton, wxGenBitmapToggleButton +import wx +import wx.lib.buttons as buttons -#---------------------------------------------------------------------- +import images +#---------------------------------------------------------------------- -class TestPanel(wxPanel): +class TestPanel(wx.Panel): def __init__(self, parent, log): - wxPanel.__init__(self, parent, -1) + wx.Panel.__init__(self, parent, -1) self.log = log + ##self.SetBackgroundColour("sky blue") + + sizer = wx.FlexGridSizer(1, 3, 20, 20) - b = wxButton(self, -1, "A real button", (10,10)) + # A regular button, selected as the default button + b = wx.Button(self, -1, "A real button") b.SetDefault() - EVT_BUTTON(self, b.GetId(), self.OnButton) - b = wxButton(self, -1, "non-default", (140, 10)) - EVT_BUTTON(self, b.GetId(), self.OnButton) - #wxTextCtrl(self, -1, "", (10,40)) - - b = wxGenButton(self, -1, 'Hello', (10,65)) - EVT_BUTTON(self, b.GetId(), self.OnButton) - b = wxGenButton(self, -1, 'disabled', (140,65)) - EVT_BUTTON(self, b.GetId(), self.OnButton) - b.Enable(false) - - b = wxGenButton(self, -1, 'bigger', (250,50)) - EVT_BUTTON(self, b.GetId(), self.OnButton) - b.SetFont(wxFont(20, wxSWISS, wxNORMAL, wxBOLD, false)) + self.Bind(wx.EVT_BUTTON, self.OnButton, b) + sizer.Add(b) + + # Same thing, but NOT set as the default button + b = wx.Button(self, -1, "non-default") + self.Bind(wx.EVT_BUTTON, self.OnButton, b) + sizer.Add(b) + sizer.Add((10,10)) + + # Plain old text button based off GenButton() + b = buttons.GenButton(self, -1, 'Hello') + self.Bind(wx.EVT_BUTTON, self.OnButton, b) + sizer.Add(b) + + # Plain old text button, disabled. + b = buttons.GenButton(self, -1, 'disabled') + self.Bind(wx.EVT_BUTTON, self.OnButton, b) + b.Enable(False) + sizer.Add(b) + + # This time, we let the botton be as big as it can be. + # Also, this one is fancier, with custom colors and bezel size. + b = buttons.GenButton(self, -1, 'bigger') + self.Bind(wx.EVT_BUTTON, self.OnBiggerButton, b) + b.SetFont(wx.Font(20, wx.SWISS, wx.NORMAL, wx.BOLD, False)) b.SetBezelWidth(5) - b.SetBestSize() - b.SetBackgroundColour(wxNamedColour("Navy")) - b.SetForegroundColour(wxWHITE) - #b.SetUseFocusIndicator(false) + ###b.SetBestSize() + b.SetMinSize(wx.DefaultSize) + b.SetBackgroundColour("Navy") + b.SetForegroundColour(wx.WHITE) b.SetToolTipString("This is a BIG button...") - - bmp = wxBitmap('bitmaps/test2.bmp', wxBITMAP_TYPE_BMP) - b = wxGenBitmapButton(self, -1, bmp, (10, 130)) - EVT_BUTTON(self, b.GetId(), self.OnButton) - - - b = wxGenBitmapButton(self, -1, None, (140, 130)) - EVT_BUTTON(self, b.GetId(), self.OnButton) - bmp = wxBitmap('bitmaps/lb1.bmp', wxBITMAP_TYPE_BMP) - mask = wxMaskColour(bmp, wxBLUE) + # let the sizer set best size + sizer.Add(b, flag=wx.ADJUST_MINSIZE) + + # An image button + bmp = images.getTest2Bitmap() + b = buttons.GenBitmapButton(self, -1, bmp) + self.Bind(wx.EVT_BUTTON, self.OnButton, b) + sizer.Add(b) + + # An image button, disabled. + bmp = images.getTest2Bitmap() + b = buttons.GenBitmapButton(self, -1, bmp) + self.Bind(wx.EVT_BUTTON, self.OnButton, b) + sizer.Add(b) + b.Enable(False) + + # An image button, using a mask to get rid of the + # undesireable part of the image + b = buttons.GenBitmapButton(self, -1, None) + self.Bind(wx.EVT_BUTTON, self.OnButton, b) + bmp = images.getBulb1Bitmap() + mask = wx.Mask(bmp, wx.BLUE) bmp.SetMask(mask) b.SetBitmapLabel(bmp) - bmp = wxBitmap('bitmaps/lb2.bmp', wxBITMAP_TYPE_BMP) - mask = wxMaskColour(bmp, wxBLUE) + bmp = images.getBulb2Bitmap() + mask = wx.Mask(bmp, wx.BLUE) bmp.SetMask(mask) b.SetBitmapSelected(bmp) b.SetBestSize() + sizer.Add(b) + + # A toggle button + b = buttons.GenToggleButton(self, -1, "Toggle Button") + self.Bind(wx.EVT_BUTTON, self.OnToggleButton, b) + sizer.Add(b) + + # An image toggle button + b = buttons.GenBitmapToggleButton(self, -1, None) + self.Bind(wx.EVT_BUTTON, self.OnToggleButton, b) + bmp = images.getBulb1Bitmap() + mask = wx.Mask(bmp, wx.BLUE) + bmp.SetMask(mask) + b.SetBitmapLabel(bmp) + bmp = images.getBulb2Bitmap() + mask = wx.Mask(bmp, wx.BLUE) + bmp.SetMask(mask) + b.SetBitmapSelected(bmp) + b.SetToggle(True) + b.SetBestSize() + sizer.Add(b) - b = wxGenToggleButton(self, -1, "Toggle Button", (10, 230)) - EVT_BUTTON(self, b.GetId(), self.OnToggleButton) - - - b = wxGenBitmapToggleButton(self, -1, None, (140, 230)) - EVT_BUTTON(self, b.GetId(), self.OnToggleButton) - bmp = wxBitmap('bitmaps/lb1.bmp', wxBITMAP_TYPE_BMP) - mask = wxMaskColour(bmp, wxBLUE) + # A bitmap button with text. + b = buttons.GenBitmapTextButton(self, -1, None, "Bitmapped Text", size = (200, 45)) + self.Bind(wx.EVT_BUTTON, self.OnButton, b) + bmp = images.getBulb1Bitmap() + mask = wx.Mask(bmp, wx.BLUE) bmp.SetMask(mask) b.SetBitmapLabel(bmp) - bmp = wxBitmap('bitmaps/lb2.bmp', wxBITMAP_TYPE_BMP) - mask = wxMaskColour(bmp, wxBLUE) + bmp = images.getBulb2Bitmap() + mask = wx.Mask(bmp, wx.BLUE) bmp.SetMask(mask) b.SetBitmapSelected(bmp) - b.SetToggle(true) + b.SetUseFocusIndicator(False) b.SetBestSize() + sizer.Add(b) + + border = wx.BoxSizer(wx.VERTICAL) + border.Add(sizer, 0, wx.ALL, 25) + self.SetSizer(border) def OnButton(self, event): self.log.WriteText("Button Clicked: %d\n" % event.GetId()) + + def OnBiggerButton(self, event): + self.log.WriteText("Bigger Button Clicked: %d\n" % event.GetId()) + b = event.GetEventObject() + txt = "big " + b.GetLabel() + b.SetLabel(txt) + self.GetSizer().Layout() + + def OnToggleButton(self, event): msg = (event.GetIsDown() and "on") or "off" self.log.WriteText("Button %d Toggled: %s\n" % (event.GetId(), msg)) @@ -89,5 +148,10 @@ def runTest(frame, nb, log): #---------------------------------------------------------------------- -import wxPython.lib.buttons -overview = wxPython.lib.buttons.__doc__ +overview = buttons.__doc__ + +if __name__ == '__main__': + import sys,os + import run + run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:]) +