]>
git.saurik.com Git - wxWidgets.git/blob - wxPython/demo/ColourSelect.py
1 #----------------------------------------------------------------------------
2 # Name: ColourSelect.py
3 # Purpose: Colour Selection control display testing on panel for wxPython demo
5 # Author: Lorne White (email: lorne.white@telusplanet.net)
9 # Licence: wxWindows license
11 # Change Log: Add Label parameter to accommodate updated library code
13 # Cliff Wells (logiplexsoftware@earthlink.net) 2002/03/11
14 # - added code to demonstrate EVT_COLOURSELECT
16 # - other minor "improvements"
17 #----------------------------------------------------------------------------
21 import wx
.lib
.colourselect
as csel
23 #----------------------------------------------------------------------------
25 class TestColourSelect(wx
.Panel
):
26 def __init__(self
, parent
, log
):
28 wx
.Panel
.__init
__(self
, parent
, -1)
29 self
.SetAutoLayout(True)
30 mainSizer
= wx
.BoxSizer(wx
.VERTICAL
)
31 self
.SetSizer(mainSizer
)
32 t
= wx
.StaticText(self
, -1,
33 "This example uses a colour selection control based on the wxButton\n"
34 "and wxColourDialog Classes. Click Button to get Colour Values")
35 mainSizer
.Add(t
, 0, wx
.ALL
, 3)
37 b
= wx
.Button(self
, -1, "Show All Colours")
38 self
.Bind(wx
.EVT_BUTTON
, self
.OnShowAll
, id=b
.GetId())
39 mainSizer
.Add(b
, 0, wx
.ALL
, 3)
41 buttonSizer
= wx
.FlexGridSizer(1, 2) # sizer to contain all the example buttons
43 # show a button with all default values
44 self
.colourDefaults
= csel
.ColourSelect(self
, -1)
46 self
.Bind(csel
.EVT_COLOURSELECT
, self
.OnSelectColour
, id=self
.colourDefaults
.GetId())
49 (wx
.StaticText(self
, -1, "Default Colour/Size"), 0, wx
.ALIGN_RIGHT | wx
.ALIGN_CENTER_VERTICAL
),
50 (self
.colourDefaults
, 0, wx
.ALL
, 3),
53 # build several examples of buttons with different colours and sizes
55 ("Default Size", (255, 255, 0), wx
.DefaultSize
, ""),
56 ("Another Size", (255, 0, 255), (60, 20), ""),
57 ("Another Colour", (0, 255, 0), wx
.DefaultSize
, ""),
58 ("Larger Size", (0, 0, 255), (60, 60), ""),
59 ("With a Label", (127, 0, 255), wx
.DefaultSize
, "Colour..."),
60 ("Another Colour/Label", (255, 100, 130), (120, -1), "Choose Colour..."),
63 self
.buttonRefs
= [] # for saving references to buttons
65 # build each button and save a reference to it
66 for name
, color
, size
, label
in buttonData
:
67 b
= csel
.ColourSelect(self
, -1, label
, color
, size
= size
)
69 b
.Bind(csel
.EVT_COLOURSELECT
, self
.OnSelectColour
)
70 self
.buttonRefs
.append((name
, b
)) # store reference to button
73 (wx
.StaticText(self
, -1, name
), 0, wx
.ALIGN_RIGHT | wx
.ALIGN_CENTER_VERTICAL
),
77 mainSizer
.Add(buttonSizer
, 0, wx
.ALL
, 3)
80 def OnSelectColour(self
, event
):
81 self
.log
.WriteText("Colour selected: %s" % str(event
.GetValue()))
83 def OnShowAll(self
, event
):
84 # show the state of each button
86 colour
= self
.colourDefaults
.GetColour() # default control value
87 result
.append("Default Colour/Size: " + str(colour
))
89 for name
, button
in self
.buttonRefs
:
90 colour
= button
.GetColour() # get the colour selection button result
91 result
.append(name
+ ": " + str(colour
)) # create string list for easy viewing of results
93 out_result
= ', '.join(result
)
94 self
.log
.WriteText("Colour Results: " + out_result
+ "\n")
96 #---------------------------------------------------------------------------
98 def runTest(frame
, nb
, log
):
99 win
= TestColourSelect(nb
, log
)
102 #---------------------------------------------------------------------------
108 A coloured button that when clicked allows the user to select a colour from the wxColourDialog.
112 if __name__
== '__main__':
115 run
.main(['', os
.path
.basename(sys
.argv
[0])] + sys
.argv
[1:])