OSDN Git Service

touched all tk files to ease next import
[pf3gnuchains/pf3gnuchains4x.git] / tk / library / demos / clrpick.tcl
1 # clrpick.tcl --
2 #
3 # This demonstration script prompts the user to select a color.
4 #
5 # RCS: @(#) $Id$
6
7 if {![info exists widgetDemo]} {
8     error "This script should be run from the \"widget\" demo."
9 }
10
11 set w .clrpick
12 catch {destroy $w}
13 toplevel $w
14 wm title $w "Color Selection Dialog"
15 wm iconname $w "colors"
16 positionWindow $w
17
18 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."
19 pack $w.msg -side top
20
21 frame $w.buttons
22 pack $w.buttons -side bottom -fill x -pady 2m
23 button $w.buttons.dismiss -text Dismiss -command "destroy $w"
24 button $w.buttons.code -text "See Code" -command "showCode $w"
25 pack $w.buttons.dismiss $w.buttons.code -side left -expand 1
26
27 button $w.back -text "Set background color ..." \
28     -command \
29     "setColor $w $w.back background {-background -highlightbackground}"
30 button $w.fore -text "Set foreground color ..." \
31     -command \
32     "setColor $w $w.back foreground -foreground"
33
34 pack $w.back $w.fore -side top -anchor c -pady 2m
35
36 proc setColor {w button name options} {
37     grab $w
38     set initialColor [$button cget -$name]
39     set color [tk_chooseColor -title "Choose a $name color" -parent $w \
40         -initialcolor $initialColor]
41     if [string compare $color ""] {
42         setColor_helper $w $options $color
43     }
44     grab release $w
45 }
46
47 proc setColor_helper {w options color} {
48     foreach option $options {
49         catch {
50             $w config $option $color
51         }
52     }
53     foreach child [winfo children $w] {
54         setColor_helper $child $options $color
55     }
56 }
57