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
# Purpose: Colour Selection control display testing on panel for wxPython demo
@ -8,66 +7,87 @@
# 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 *
import string
#---------------------------------------------------------------------------
#----------------------------------------------------------------------------
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)
wxStaticText(self, -1, "This example uses a colour selection control based on the wxButton and wxColourDialog Classes. Click Button to get Colour Values",
wxPoint(10, 20), wxSize(400, 60))
b = wxButton(self, -1, "Show All Colours")
EVT_BUTTON(self, b.GetId(), self.OnShowAll)
mainSizer.Add(b, 0, wxALL, 3)
self.x_pos = 30
self.y_pos = 100
delta = 40
buttonSizer = wxFlexGridSizer(1, 2) # sizer to contain all the example buttons
mID = NewId()
wxButton(self, mID, "Get All Colours", wxPoint(self.x_pos, self.y_pos))
EVT_BUTTON(self, mID, self.OnClick)
self.y_pos = self.y_pos + delta
# 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),
])
wxStaticText(self, -1, "Default", wxPoint(self.x_pos, self.y_pos), wxSize(-1, -1)) # name
self.colour_def = ColourSelect(self, -1, pos=wxPoint(self.x_pos+100, self.y_pos)) # default colour selection control
# 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.y_pos = self.y_pos + delta
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 = []
self.buttonRefs = [] # for saving references to buttons
for i in range(len(colours)):
wxStaticText(self, -1, names[i], wxPoint(self.x_pos, self.y_pos), wxSize(-1, -1)) # name
# 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),
])
val = ColourSelect(self, -1, "", colours[i], wxPoint(self.x_pos+100, self.y_pos), sizes[i]) # colour selection button
self.set_val.append(val) # store control for reference
self.y_pos = self.y_pos + delta
mainSizer.Add(buttonSizer, 0, wxALL, 3)
self.Layout()
self.y_pos = self.y_pos - delta
ColourSelect(self, -1, "Color Label", colours[0], wxPoint(self.x_pos+200, self.y_pos), sizes[0]) # colour selection button
def OnSelectColour(self, event):
self.log.WriteText("Colour selected: %s" % str(event.GetValue()))
def OnClick(self, event):
def OnShowAll(self, event):
# show the state of each button
result = []
colour = self.colour_def.GetColour() # default control value
result.append("%s: #%02x%02x%02x" % ("Default", colour[0], colour[1], colour[2]))
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
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, ', ')
self.log.WriteText("Colour Results :" + out_result + "\n")
self.log.WriteText("Colour Results: " + out_result + "\n")
#---------------------------------------------------------------------------