clrpick.tcl
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:2k
源码类别:

通讯编程

开发平台:

Visual C++

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