Files
wxWidgets/wxPython/demo/ColourSelect.py
Robin Dunn 64dfb023eb Switched to using True/False in the wxPython lib and demo instead of
true/false or TRUE/FALSE to prepare for the new boolean type and
constants being added to Python.  Added code to wx.py to test for the
existence of the new constants and to create suitable values if not
present.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19335 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-02-26 18:38:37 +00:00

116 lines
4.0 KiB
Python

#----------------------------------------------------------------------------
# Name: ColourSelect.py
# Purpose: Colour Selection control display testing on panel for wxPython demo
#
# Author: Lorne White (email: lorne.white@telusplanet.net)
#
# Version 0.6
# Date: Nov 14, 2001
# Licence: wxWindows license
#
# Change Log: Add Label parameter to accommodate updated library code
#
# Cliff Wells (logiplexsoftware@earthlink.net) 2002/03/11
# - added code to demonstrate EVT_COLOURSELECT
# - use sizers
# - other minor "improvements"
#----------------------------------------------------------------------------
from wxPython.wx import *
from wxPython.lib.colourselect import *
#----------------------------------------------------------------------------
class TestColourSelect(wxPanel):
def __init__(self, parent, log):
self.log = log
wxPanel.__init__(self, parent, -1)
self.SetAutoLayout(True)
mainSizer = wxBoxSizer(wxVERTICAL)
self.SetSizer(mainSizer)
t = wxStaticText(self, -1,
"This example uses a colour selection control based on the wxButton\n"
"and wxColourDialog Classes. Click Button to get Colour Values")
mainSizer.Add(t, 0, wxALL, 3)
b = wxButton(self, -1, "Show All Colours")
EVT_BUTTON(self, b.GetId(), self.OnShowAll)
mainSizer.Add(b, 0, wxALL, 3)
buttonSizer = wxFlexGridSizer(1, 2) # sizer to contain all the example buttons
# show a button with all default values
self.colourDefaults = ColourSelect(self, -1)
EVT_COLOURSELECT(self.colourDefaults, self.colourDefaults.GetId(), self.OnSelectColour)
buttonSizer.AddMany([
(wxStaticText(self, -1, "Default Colour/Size"), 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL),
(self.colourDefaults, 0, wxALL, 3),
])
# build several examples of buttons with different colours and sizes
buttonData = [
("Default Size", (255, 255, 0), wxDefaultSize, ""),
("Another Size", (255, 0, 255), (60, 20), ""),
("Another Colour", (0, 255, 0), wxDefaultSize, ""),
("Larger Size", (0, 0, 255), (60, 60), ""),
("With a Label", (127, 0, 255), wxDefaultSize, "Colour..."),
("Another Colour/Label", (255, 100, 130), (120, -1), "Choose Colour..."),
]
self.buttonRefs = [] # for saving references to buttons
# build each button and save a reference to it
for name, color, size, label in buttonData:
b = ColourSelect(self, -1, label, color, size = size)
EVT_COLOURSELECT(b, b.GetId(), self.OnSelectColour)
self.buttonRefs.append((name, b)) # store reference to button
buttonSizer.AddMany([
(wxStaticText(self, -1, name), 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL),
(b, 0, wxALL, 3),
])
mainSizer.Add(buttonSizer, 0, wxALL, 3)
self.Layout()
def OnSelectColour(self, event):
self.log.WriteText("Colour selected: %s" % str(event.GetValue()))
def OnShowAll(self, event):
# show the state of each button
result = []
colour = self.colourDefaults.GetColour() # default control value
result.append("Default Colour/Size: " + str(colour))
for name, button in self.buttonRefs:
colour = button.GetColour() # get the colour selection button result
result.append(name + ": " + str(colour)) # create string list for easy viewing of results
out_result = ', '.join(result)
self.log.WriteText("Colour Results: " + out_result + "\n")
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestColourSelect(nb, log)
return win
#---------------------------------------------------------------------------
overview = """\
"""