The built-in [chooseColor] widget is the standard way to allow users to choose a color. There certainly are cases when one wants to present a different appearance to the same function, though. One color picker appears at http://www.tcl.tk/community/hobbs/tcl/capp/ . [D. McC]: Nov 17 2005 - Does it really? I just looked, and I didn't see one. What is it called, and what is the link to it from the URL above? CJL - On the referenced page, click 'Tcl Plugin Apps'. ---- "[ClrPick -A Colour Selection Megawidget]" [WISH Color Picker] ---- Here's an old-time implementation that [Steve Offut] preserved: #!/usr/local/bin/wish proc setColor {tossit} { global redval grnval blueval collist hexval set hexval [format "%02X%02X%02X" $redval $grnval $blueval] .butfrm.visual.button conf \ -bg "#$hexval" \ -activebackground "#$hexval" set temp [expr [expr $blueval + $grnval] + $redval] set bming [expr abs([expr $grnval - $blueval])] set rminb [expr abs([expr $redval - $grnval])] set gminr [expr abs([expr $grnval - $redval])] set sumodiff [expr $gminr + [expr $bming + $rminb]] if {$sumodiff < 350 && $temp < 400} { .butfrm.visual.button conf \ -fg white \ -activeforeground white } else { .butfrm.visual.button conf \ -fg black \ -activeforeground black } } proc picker {} { global collist colnamelist redval grnval blueval frame .butfrm \ -relief raised \ -border 3 \ -width 250 \ -height 410 frame .butfrm.sliders set temp .butfrm.sliders scale $temp.r \ -label Red: \ -from 0 \ -to 255 \ -showvalue 1 \ -sliderrelief raised \ -sliderlength 10 \ -troughcolor red \ -variable redval \ -command {setColor} \ -orient horizontal scale $temp.g \ -label Green: \ -from 0 \ -to 255 \ -showvalue 1 \ -sliderrelief raised \ -troughcolor green \ -sliderlength 10 \ -variable grnval \ -command {setColor} \ -orient horizontal scale $temp.b \ -label Blue: \ -from 0 \ -to 255 \ -showvalue 1 \ -sliderrelief raised \ -troughcolor blue \ -sliderlength 10 \ -variable blueval \ -command {setColor} \ -orient horizontal pack $temp.r $temp.g $temp.b \ -expand 1 frame .butfrm.visual button .butfrm.visual.button \ -bg black \ -fg white \ -text "Pick Your Color" \ -height 6 \ -width 10 entry .butfrm.visual.ent \ -width 7 \ -textvariable hexval \ -relief raised #-font courier14 place $temp \ -in .butfrm \ -relx 0.0 \ -rely 0.0 \ -anchor nw pack .butfrm.visual.button\ -anchor nw \ -side top pack .butfrm.visual.ent \ -anchor n \ -side bottom place .butfrm.visual \ -in .butfrm \ -anchor nw \ -relx 0.5\ -y 35 frame .butfrm.int \ -relief raised \ -border 3 canvas .butfrm.int.scrolled \ -yscrollcommand ".butfrm.int.scroller set" \ -height 200 \ -width 200 \ -relief raised \ -bg black scrollbar .butfrm.int.scroller \ -command ".butfrm.int.scrolled yview" \ -relief raised \ -width 12 pack .butfrm.int.scroller \ -side right \ -fill y \ -anchor ne pack .butfrm.int.scrolled \ -side left \ -anchor nw \ -expand 1 set frmlist [list] set framer 0 set frm .butfrm.int.scrolled set colnum [llength $collist] for {set i 0} {$i < $colnum} {incr i} { set tag [$frm create rect 4 [expr $framer * 30] \ 200 [expr [expr $framer * 30] + 30]\ -fill "#[lindex $collist $i]" \ -width 2] scan [lindex $collist $i] "%02x%02x%02x" red green blue $frm bind $tag "set redval $red; \ set grnval $green; \ set blueval $blue; \ setColor 0" set temp [expr $red + [expr $green + $blue]] set bming [expr abs([expr $green - $blue])] set rminb [expr abs([expr $red - $green])] set gminr [expr abs([expr $green - $red])] set sumodiff [expr $gminr + [expr $bming + $rminb]] if {$sumodiff < 350 && $temp < 400} { set tag [$frm create text 100 [expr [expr $framer *30] + 15] \ -text [lindex $colnamelist $i] \ -fill white] } else { set tag [$frm create text 100 [expr [expr $framer *30] + 15] \ -text [lindex $colnamelist $i] \ -fill black] } $frm bind $tag "set redval $red; \ set grnval $green; \ set blueval $blue; \ setColor 0" incr framer } place .butfrm.int \ -in .butfrm \ -x 7 \ -y 190 pack .butfrm $frm conf -scrollregion "0 0 [. cget -width] [expr $framer * 30]" #$frm.$framer conf -width 400 -height 400 update } # While CL doesn't like these magic numbers, preferring to # calculate them dynamically with [winfo rgb ...], he preserves # them here out of respect for the seniority of this program. set collist [list \ FFFAFA F8F8FF F5F5F5 DCDCDC FFFAF0 FDF5E6 FAF0E6 FAEBD7 \ FFEFD5 FFEBCD FFE4C4 FFDAB9 FFDEAD FFE4B5 FFF8DC FFFFF0 FFFACD FFF5EE \ F0FFF0 F5FFFA F0FFFF F0F8FF E6E6FA FFF0F5 FFE4E1 FFFFFF 000000 2F4F4F \ 696969 708090 778899 BEBEBE D3D3D3 191970 000080 6495ED 483D8B 6A5ACD \ 7B68EE 8470FF 0000CD 4169E1 0000FF 1E90FF 00BFFF 87CEEB 87CEFA 4682B4 \ B0C4DE ADD8E6 B0E0E6 AFEEEE 00CED1 48D1CC 40E0D0 00FFFF E0FFFF 5F9EA0 \ 66CDAA 7FFFD4 006400 556B2F 8FBC8F 2E8B57 3CB371 20B2AA 98FB98 00FF7F \ 7CFC00 00FF00 7FFF00 00FA9A ADFF2F 32CD32 9ACD32 228B22 6B8E23 BDB76B \ F0E68C EEE8AA FAFAD2 FFFFE0 FFFF00 FFD700 EEDD82 DAA520 B8860B BC8F8F \ CD5C5C 8B4513 A0522D CD853F DEB887 F5F5DC F5DEB3 F4A460 D2B48C D2691E \ B22222 A52A2A E9967A FA8072 FFA07A FFA500 FF8C00 FF7F50 F08080 FF6347 \ FF4500 FF0000 FF69B4 FF1493 FFC0CB FFB6C1 DB7093 B03060 C71585 D02090 \ FF00FF EE82EE DDA0DD DA70D6 BA55D3 9932CC 9400D3 8A2BE2 A020F0 9370DB \ D8BFD8 EEE9E9 CDC9C9 8B8989 EEE5DE CDC5BF 8B8682 FFEFDB EEDFCC CDC0B0 \ 8B8378 EED5B7 CDB79E 8B7D6B EECBAD CDAF95 8B7765 EECFA1 CDB38B 8B795E \ EEE9BF CDC9A5 8B8970 EEE8CD CDC8B1 8B8878 EEEEE0 CDCDC1 8B8B83 E0EEE0 \ C1CDC1 838B83 EEE0E5 CDC1C5 8B8386 EED5D2 CDB7B5 8B7D7B E0EEEE C1CDCD \ 838B8B 836FFF 7A67EE 6959CD 473C8B 4876FF 436EEE 3A5FCD 27408B 0000EE \ 00008B 1C86EE 1874CD 104E8B 63B8FF 5CACEE 4F94CD 36648B 00B2EE 009ACD \ 00688B 87CEFF 7EC0EE 6CA6CD 4A708B B0E2FF A4D3EE 8DB6CD 607B8B C6E2FF \ B9D3EE 9FB6CD 6C7B8B CAE1FF BCD2EE A2B5CD 6E7B8B BFEFFF B2DFEE 9AC0CD \ 68838B D1EEEE B4CDCD 7A8B8B BBFFFF AEEEEE 96CDCD 668B8B 98F5FF 8EE5EE \ 7AC5CD 53868B 00F5FF 00E5EE 00C5CD 00868B 00EEEE 00CDCD 008B8B 97FFFF \ 8DEEEE 79CDCD 528B8B 76EEC6 458B74 C1FFC1 B4EEB4 9BCD9B 698B69 54FF9F \ 4EEE94 43CD80 9AFF9A 90EE90 7CCD7C 548B54 00EE76 00CD66 008B45 00EE00 \ 00CD00 008B00 76EE00 66CD00 458B00 C0FF3E B3EE3A 698B22 CAFF70 BCEE68 \ A2CD5A 6E8B3D FFF68F EEE685 CDC673 8B864E FFEC8B EEDC82 CDBE70 8B814C \ EEEED1 CDCDB4 8B8B7A EEEE00 CDCD00 8B8B00 EEC900 CDAD00 8B7500 FFC125 \ EEB422 CD9B1D 8B6914 FFB90F EEAD0E CD950C 8B6508 FFC1C1 EEB4B4 CD9B9B \ 8B6969 FF6A6A EE6363 CD5555 8B3A3A FF8247 EE7942 CD6839 8B4726 FFD39B \ EEC591 CDAA7D 8B7355 FFE7BA EED8AE CDBA96 8B7E66 FFA54F EE9A49 8B5A2B \ FF7F24 EE7621 CD661D FF3030 EE2C2C CD2626 8B1A1A FF4040 EE3B3B CD3333 \ 8B2323 FF8C69 EE8262 CD7054 8B4C39 EE9572 CD8162 8B5742 EE9A00 CD8500 \ 8B5A00 FF7F00 EE7600 CD6600 8B4500 FF7256 EE6A50 CD5B45 8B3E2F EE5C42 \ CD4F39 8B3626 EE4000 CD3700 8B2500 EE0000 CD0000 8B0000 EE1289 CD1076 \ 8B0A50 FF6EB4 EE6AA7 CD6090 8B3A62 FFB5C5 EEA9B8 CD919E 8B636C FFAEB9 \ EEA2AD CD8C95 8B5F65 FF82AB EE799F CD6889 8B475D FF34B3 EE30A7 CD2990 \ 8B1C62 FF3E96 EE3A8C CD3278 8B2252 EE00EE CD00CD 8B008B FF83FA EE7AE9 \ CD69C9 8B4789 FFBBFF EEAEEE CD96CD 8B668B E066FF D15FEE B452CD 7A378B \ BF3EFF B23AEE 9A32CD 68228B 9B30FF 912CEE 7D26CD 551A8B AB82FF 9F79EE \ 8968CD 5D478B FFE1FF EED2EE CDB5CD 8B7B8B 030303 050505 080808 0A0A0A \ 0D0D0D 0F0F0F 121212 141414 171717 1A1A1A 1C1C1C 1F1F1F 212121 242424 \ 262626 292929 2B2B2B 2E2E2E 303030 333333 363636 383838 3B3B3B 3D3D3D \ 404040 424242 454545 474747 4A4A4A 4D4D4D 4F4F4F 525252 545454 575757 \ 595959 5C5C5C 5E5E5E 616161 636363 666666 6B6B6B 6E6E6E 707070 737373 \ 757575 787878 7A7A7A 7D7D7D 7F7F7F 828282 858585 878787 8A8A8A 8C8C8C \ 8F8F8F 919191 949494 969696 999999 9C9C9C 9E9E9E A1A1A1 A3A3A3 A6A6A6 \ A8A8A8 ABABAB ADADAD B0B0B0 B3B3B3 B5B5B5 B8B8B8 BABABA BDBDBD BFBFBF \ C2C2C2 C4C4C4 C7C7C7 C9C9C9 CCCCCC CFCFCF D1D1D1 D4D4D4 D6D6D6 D9D9D9 \ DBDBDB DEDEDE E0E0E0 E3E3E3 E5E5E5 E8E8E8 EBEBEB EDEDED F0F0F0 F2F2F2 \ F7F7F7 FAFAFA FCFCFC] set colnamelist [list \ snow {ghost white} {white smoke} gainsboro {floral white} \ {old lace} linen {antique white} {papaya whip} {blanched almond} bisque \ {peach puff} {navajo white} moccasin cornsilk ivory {lemon chiffon} \ seashell honeydew {mint cream} azure {alice blue} lavender {lavender blush} \ {misty rose} white black {dark slate gray} {dim gray} {slate gray} \ {light slate gray} gray {light grey} {midnight blue} navy \ {cornflower blue} {dark slate blue} {slate blue} {medium slate blue} \ {light slate blue} {medium blue} {royal blue} blue {dodger blue} \ {deep sky blue} {sky blue} {light sky blue} {steel blue} {light steel blue} \ {light blue} {powder blue} {pale turquoise} {dark turquoise} {medium turquoise} \ turquoise cyan {light cyan} {cadet blue} {medium aquamarine} \ aquamarine {dark green} {dark olive green} {dark sea green} {sea green} \ {medium sea green} {light sea green} {pale green} {spring green} {lawn green} \ green chartreuse {medium spring green} {green yellow} {lime green} \ {yellow green} {forest green} {olive drab} {dark khaki} khaki \ {pale goldenrod} {light goldenrod yellow} {light yellow} yellow gold \ {light goldenrod} goldenrod {dark goldenrod} {rosy brown} {indian red} {saddle brown} sienna peru burlywood beige wheat {sandy brown} tan \ chocolate firebrick brown {dark salmon} salmon {light salmon} orange \ {dark orange} coral {light coral} tomato {orange red} red {hot pink} \ {deep pink} pink {light pink} {pale violet red} maroon {medium violet red} \ {violet red} magenta violet plum orchid {medium orchid} \ {dark orchid} {dark violet} {blue violet} purple {medium purple} thistle snow2 \ snow3 snow4 seashell2 seashell3 seashell4 AntiqueWhite1 AntiqueWhite2 \ AntiqueWhite3 AntiqueWhite4 bisque2 bisque3 bisque4 PeachPuff2 \ PeachPuff3 PeachPuff4 NavajoWhite2 NavajoWhite3 NavajoWhite4 \ LemonChiffon2 LemonChiffon3 LemonChiffon4 cornsilk2 cornsilk3 cornsilk4 \ ivory2 ivory3 ivory4 honeydew2 honeydew3 honeydew4 LavenderBlush2 \ LavenderBlush3 LavenderBlush4 MistyRose2 MistyRose3 MistyRose4 azure2 \ azure3 azure4 SlateBlue1 SlateBlue2 SlateBlue3 SlateBlue4 RoyalBlue1 \ RoyalBlue2 RoyalBlue3 RoyalBlue4 blue2 blue4 DodgerBlue2 DodgerBlue3 \ DodgerBlue4 SteelBlue1 SteelBlue2 SteelBlue3 SteelBlue4 DeepSkyBlue2 \ DeepSkyBlue3 DeepSkyBlue4 SkyBlue1 SkyBlue2 SkyBlue3 SkyBlue4 \ LightSkyBlue1 LightSkyBlue2 LightSkyBlue3 LightSkyBlue4 SlateGray1 \ SlateGray2 SlateGray3 SlateGray4 LightSteelBlue1 LightSteelBlue2 \ LightSteelBlue3 LightSteelBlue4 LightBlue1 LightBlue2 LightBlue3 \ LightBlue4 LightCyan2 LightCyan3 LightCyan4 PaleTurquoise1 \ PaleTurquoise2 PaleTurquoise3 PaleTurquoise4 CadetBlue1 CadetBlue2 \ CadetBlue3 CadetBlue4 turquoise1 turquoise2 turquoise3 turquoise4 cyan2 \ cyan3 cyan4 DarkSlateGray1 DarkSlateGray2 DarkSlateGray3 DarkSlateGray4 \ aquamarine2 aquamarine4 DarkSeaGreen1 DarkSeaGreen2 DarkSeaGreen3 \ DarkSeaGreen4 SeaGreen1 SeaGreen2 SeaGreen3 PaleGreen1 PaleGreen2 \ PaleGreen3 PaleGreen4 SpringGreen2 SpringGreen3 SpringGreen4 green2 \ green3 green4 chartreuse2 chartreuse3 chartreuse4 OliveDrab1 OliveDrab2 \ OliveDrab4 DarkOliveGreen1 DarkOliveGreen2 DarkOliveGreen3 \ DarkOliveGreen4 khaki1 khaki2 khaki3 khaki4 LightGoldenrod1 \ LightGoldenrod2 LightGoldenrod3 LightGoldenrod4 LightYellow2 \ LightYellow3 LightYellow4 yellow2 yellow3 yellow4 gold2 gold3 gold4 \ goldenrod1 goldenrod2 goldenrod3 goldenrod4 DarkGoldenrod1 \ DarkGoldenrod2 DarkGoldenrod3 DarkGoldenrod4 RosyBrown1 RosyBrown2 \ RosyBrown3 RosyBrown4 IndianRed1 IndianRed2 IndianRed3 IndianRed4 \ sienna1 sienna2 sienna3 sienna4 burlywood1 burlywood2 burlywood3 \ burlywood4 wheat1 wheat2 wheat3 wheat4 tan1 tan2 tan4 chocolate1 \ chocolate2 chocolate3 firebrick1 firebrick2 firebrick3 firebrick4 brown1 \ brown2 brown3 brown4 salmon1 salmon2 salmon3 salmon4 LightSalmon2 \ LightSalmon3 LightSalmon4 orange2 orange3 orange4 DarkOrange1 \ DarkOrange2 DarkOrange3 DarkOrange4 coral1 coral2 coral3 coral4 tomato2 \ tomato3 tomato4 OrangeRed2 OrangeRed3 OrangeRed4 red2 red3 red4 \ DeepPink2 DeepPink3 DeepPink4 HotPink1 HotPink2 HotPink3 HotPink4 pink1 \ pink2 pink3 pink4 LightPink1 LightPink2 LightPink3 LightPink4 \ PaleVioletRed1 PaleVioletRed2 PaleVioletRed3 PaleVioletRed4 maroon1 \ maroon2 maroon3 maroon4 VioletRed1 VioletRed2 VioletRed3 VioletRed4 \ magenta2 magenta3 magenta4 orchid1 orchid2 orchid3 orchid4 plum1 plum2 \ plum3 plum4 MediumOrchid1 MediumOrchid2 MediumOrchid3 MediumOrchid4 \ DarkOrchid1 DarkOrchid2 DarkOrchid3 DarkOrchid4 purple1 purple2 purple3 \ purple4 MediumPurple1 MediumPurple2 MediumPurple3 MediumPurple4 thistle1 \ thistle2 thistle3 thistle4 gray1 gray2 gray3 gray4 gray5 gray6 gray7 \ gray8 gray9 gray10 gray11 gray12 gray13 gray14 gray15 gray16 gray17 \ gray18 gray19 gray20 gray21 gray22 gray23 gray24 gray25 gray26 gray27 \ gray28 gray29 gray30 gray31 gray32 gray33 gray34 gray35 gray36 gray37 \ gray38 gray39 gray40 gray42 gray43 gray44 gray45 gray46 gray47 gray48 \ gray49 gray50 gray51 gray52 gray53 gray54 gray55 gray56 gray57 gray58 \ gray59 gray60 gray61 gray62 gray63 gray64 gray65 gray66 gray67 gray68 \ gray69 gray70 gray71 gray72 gray73 gray74 gray75 gray76 gray77 gray78 \ gray79 gray80 gray81 gray82 gray83 gray84 gray85 gray86 gray87 gray88 \ gray89 gray90 gray91 gray92 gray93 gray94 gray95 gray97 gray98 gray99] set redval 0 set blueval 0 set grnval 0 picker wm title . "Color Picker" ---- [LES] This code doesn't work for me until I replace '''collist [[list \ ... ]]''' with '''collist { ... }''' and replace '''colnamelist [[list \ ... ]]''' with '''colnamelist { ... }''' [SO] Jan 8, 2005 ... hmmm... This code is certainly broken, I have no recollection of posting this (OTOH, I may not remember what I did yesterday ...). This was not something I wrote, but may well have been something I had on hand during the 8.0 days ... I will search the archives.. [WJP] 2006-04-11 Here's a stand-alone color-picker that I wrote in Tcl/Tk: http://billposer.org/Software/ColorExplorer.html.