Updated demo to show EVT_COLOURSELECT

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14583 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn 2002-03-13 22:25:18 +00:00
parent b9fdb3970d
commit caa74ba3bb

View File

@ -1,4 +1,3 @@
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
# Name: ColourSelect.py # Name: ColourSelect.py
# Purpose: Colour Selection control display testing on panel for wxPython demo # Purpose: Colour Selection control display testing on panel for wxPython demo
@ -8,66 +7,87 @@
# Version 0.6 # Version 0.6
# Date: Nov 14, 2001 # Date: Nov 14, 2001
# Licence: wxWindows license # Licence: wxWindows license
#
# Change Log: Add Label parameter to accommodate updated library code # 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.wx import *
from wxPython.lib.colourselect import * from wxPython.lib.colourselect import *
import string import string
#--------------------------------------------------------------------------- #----------------------------------------------------------------------------
class TestColourSelect(wxPanel): class TestColourSelect(wxPanel):
def __init__(self, parent, log): def __init__(self, parent, log):
self.log = log self.log = log
wxPanel.__init__(self, parent, -1) 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)
wxStaticText(self, -1, "This example uses a colour selection control based on the wxButton and wxColourDialog Classes. Click Button to get Colour Values", b = wxButton(self, -1, "Show All Colours")
wxPoint(10, 20), wxSize(400, 60)) EVT_BUTTON(self, b.GetId(), self.OnShowAll)
mainSizer.Add(b, 0, wxALL, 3)
self.x_pos = 30 buttonSizer = wxFlexGridSizer(1, 2) # sizer to contain all the example buttons
self.y_pos = 100
delta = 40
mID = NewId() # show a button with all default values
wxButton(self, mID, "Get All Colours", wxPoint(self.x_pos, self.y_pos)) self.colourDefaults = ColourSelect(self, -1)
EVT_BUTTON(self, mID, self.OnClick) EVT_COLOURSELECT(self.colourDefaults, self.colourDefaults.GetId(), self.OnSelectColour)
self.y_pos = self.y_pos + delta buttonSizer.AddMany([
(wxStaticText(self, -1, "Default Colour/Size"), 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL),
(self.colourDefaults, 0, wxALL, 3),
])
wxStaticText(self, -1, "Default", wxPoint(self.x_pos, self.y_pos), wxSize(-1, -1)) # name # build several examples of buttons with different colours and sizes
self.colour_def = ColourSelect(self, -1, pos=wxPoint(self.x_pos+100, self.y_pos)) # default colour selection control 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.y_pos = self.y_pos + delta self.buttonRefs = [] # for saving references to buttons
colours = [[255, 255, 0], [255, 0, 255], [0, 255, 0], [0, 0, 255]] # list of initial colours for display
self.names = names = [ "Default Size", "Another Size", "Another Colour", "Larger"] # display names
sizes = [ wxDefaultSize, wxSize(60, 20), wxDefaultSize, wxSize(60, 60)] # button sizes
self.set_val = []
for i in range(len(colours)): # build each button and save a reference to it
wxStaticText(self, -1, names[i], wxPoint(self.x_pos, self.y_pos), wxSize(-1, -1)) # name 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),
])
val = ColourSelect(self, -1, "", colours[i], wxPoint(self.x_pos+100, self.y_pos), sizes[i]) # colour selection button mainSizer.Add(buttonSizer, 0, wxALL, 3)
self.set_val.append(val) # store control for reference self.Layout()
self.y_pos = self.y_pos + delta
self.y_pos = self.y_pos - delta def OnSelectColour(self, event):
ColourSelect(self, -1, "Color Label", colours[0], wxPoint(self.x_pos+200, self.y_pos), sizes[0]) # colour selection button self.log.WriteText("Colour selected: %s" % str(event.GetValue()))
def OnShowAll(self, event):
def OnClick(self, event): # show the state of each button
result = [] result = []
colour = self.colour_def.GetColour() # default control value colour = self.colourDefaults.GetColour() # default control value
result.append("%s: #%02x%02x%02x" % ("Default", colour[0], colour[1], colour[2])) 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
for i in range(len(self.set_val)):
val = self.set_val[i]
colour = val.GetColour() # get the colour selection button result
name = self.names[i]
result.append("%s: #%02x%02x%02x" % (name, colour[0], colour[1], colour[2]))
out_result = string.joinfields(result, ', ') out_result = string.joinfields(result, ', ')
self.log.WriteText("Colour Results :" + out_result + "\n") self.log.WriteText("Colour Results: " + out_result + "\n")
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------