summaryrefslogtreecommitdiffstats
path: root/tk8.6/library/demos/clrpick.tcl
diff options
context:
space:
mode:
Diffstat (limited to 'tk8.6/library/demos/clrpick.tcl')
-rw-r--r--tk8.6/library/demos/clrpick.tcl54
1 files changed, 54 insertions, 0 deletions
diff --git a/tk8.6/library/demos/clrpick.tcl b/tk8.6/library/demos/clrpick.tcl
new file mode 100644
index 0000000..ba50b75
--- /dev/null
+++ b/tk8.6/library/demos/clrpick.tcl
@@ -0,0 +1,54 @@
+# clrpick.tcl --
+#
+# This demonstration script prompts the user to select a color.
+
+if {![info exists widgetDemo]} {
+ error "This script should be run from the \"widget\" demo."
+}
+
+package require Tk
+
+set w .clrpick
+catch {destroy $w}
+toplevel $w
+wm title $w "Color Selection Dialog"
+wm iconname $w "colors"
+positionWindow $w
+
+label $w.msg -font $font -wraplength 4i -justify left -text "Press the buttons below to choose the foreground and background colors for the widgets in this window."
+pack $w.msg -side top
+
+## See Code / Dismiss buttons
+set btns [addSeeDismiss $w.buttons $w]
+pack $btns -side bottom -fill x
+
+button $w.back -text "Set background color ..." \
+ -command \
+ "setColor $w $w.back background {-background -highlightbackground}"
+button $w.fore -text "Set foreground color ..." \
+ -command \
+ "setColor $w $w.back foreground -foreground"
+
+pack $w.back $w.fore -side top -anchor c -pady 2m
+
+proc setColor {w button name options} {
+ grab $w
+ set initialColor [$button cget -$name]
+ set color [tk_chooseColor -title "Choose a $name color" -parent $w \
+ -initialcolor $initialColor]
+ if {[string compare $color ""]} {
+ setColor_helper $w $options $color
+ }
+ grab release $w
+}
+
+proc setColor_helper {w options color} {
+ foreach option $options {
+ catch {
+ $w config $option $color
+ }
+ }
+ foreach child [winfo children $w] {
+ setColor_helper $child $options $color
+ }
+}