[37] | 1 | # clrpick.tcl -- |
---|
| 2 | # |
---|
| 3 | # This demonstration script prompts the user to select a color. |
---|
| 4 | # |
---|
| 5 | # RCS: @(#) $Id: clrpick.tcl,v 1.2 1998/09/14 18:23:27 stanton Exp $ |
---|
| 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 | } |
---|