53 lines
1.5 KiB
Tcl
53 lines
1.5 KiB
Tcl
|
# clrpick.tcl --
|
||
|
#
|
||
|
# This demonstration script prompts the user to select a color.
|
||
|
#
|
||
|
# SCCS: @(#) clrpick.tcl 1.1 96/08/23 11:36:42
|
||
|
|
||
|
set w .clrpick
|
||
|
catch {destroy $w}
|
||
|
toplevel $w
|
||
|
wm title $w "File Selection Dialogs"
|
||
|
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
|
||
|
|
||
|
frame $w.buttons
|
||
|
pack $w.buttons -side bottom -fill x -pady 2m
|
||
|
button $w.buttons.dismiss -text Dismiss -command "destroy $w"
|
||
|
button $w.buttons.code -text "See Code" -command "showCode $w"
|
||
|
pack $w.buttons.dismiss $w.buttons.code -side left -expand 1
|
||
|
|
||
|
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
|
||
|
}
|
||
|
}
|