| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | proc ::tk_setPalette {args} { |
| | if {[winfo depth .] == 1} { |
| | |
| | return |
| | } |
| |
|
| | |
| | |
| |
|
| | if {[llength $args] == 1} { |
| | set new(background) [lindex $args 0] |
| | } else { |
| | array set new $args |
| | } |
| | if {![info exists new(background)]} { |
| | return -code error -errorcode {TK SET_PALETTE BACKGROUND} \ |
| | "must specify a background color" |
| | } |
| | set bg [winfo rgb . $new(background)] |
| | if {![info exists new(foreground)]} { |
| | |
| | |
| | |
| | foreach {r g b} $bg {break} |
| | if {$r+1.5*$g+0.5*$b > 100000} { |
| | set new(foreground) black |
| | } else { |
| | set new(foreground) white |
| | } |
| | } |
| | lassign [winfo rgb . $new(foreground)] fg_r fg_g fg_b |
| | lassign $bg bg_r bg_g bg_b |
| | set darkerBg [format #%02x%02x%02x [expr {(9*$bg_r)/2560}] \ |
| | [expr {(9*$bg_g)/2560}] [expr {(9*$bg_b)/2560}]] |
| |
|
| | foreach i {activeForeground insertBackground selectForeground \ |
| | highlightColor} { |
| | if {![info exists new($i)]} { |
| | set new($i) $new(foreground) |
| | } |
| | } |
| | if {![info exists new(disabledForeground)]} { |
| | set new(disabledForeground) [format #%02x%02x%02x \ |
| | [expr {(3*$bg_r + $fg_r)/1024}] \ |
| | [expr {(3*$bg_g + $fg_g)/1024}] \ |
| | [expr {(3*$bg_b + $fg_b)/1024}]] |
| | } |
| | if {![info exists new(highlightBackground)]} { |
| | set new(highlightBackground) $new(background) |
| | } |
| | if {![info exists new(activeBackground)]} { |
| | |
| | |
| | |
| | |
| |
|
| | foreach i {0 1 2} color $bg { |
| | set light($i) [expr {$color/256}] |
| | set inc1 [expr {($light($i)*15)/100}] |
| | set inc2 [expr {(255-$light($i))/3}] |
| | if {$inc1 > $inc2} { |
| | incr light($i) $inc1 |
| | } else { |
| | incr light($i) $inc2 |
| | } |
| | if {$light($i) > 255} { |
| | set light($i) 255 |
| | } |
| | } |
| | set new(activeBackground) [format #%02x%02x%02x $light(0) \ |
| | $light(1) $light(2)] |
| | } |
| | if {![info exists new(selectBackground)]} { |
| | set new(selectBackground) $darkerBg |
| | } |
| | if {![info exists new(troughColor)]} { |
| | set new(troughColor) $darkerBg |
| | } |
| |
|
| | |
| | |
| | toplevel .___tk_set_palette |
| | wm withdraw .___tk_set_palette |
| | foreach q { |
| | button canvas checkbutton entry frame label labelframe |
| | listbox menubutton menu message radiobutton scale scrollbar |
| | spinbox text |
| | } { |
| | $q .___tk_set_palette.$q |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | eval [tk::RecolorTree . new] |
| |
|
| | destroy .___tk_set_palette |
| |
|
| | |
| | |
| |
|
| | foreach option [array names new] { |
| | option add *$option $new($option) widgetDefault |
| | } |
| |
|
| | |
| | |
| |
|
| | array set ::tk::Palette [array get new] |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | proc ::tk::RecolorTree {w colors} { |
| | upvar $colors c |
| | set result {} |
| | set prototype .___tk_set_palette.[string tolower [winfo class $w]] |
| | if {![winfo exists $prototype]} { |
| | unset prototype |
| | } |
| | foreach dbOption [array names c] { |
| | set option -[string tolower $dbOption] |
| | set class [string replace $dbOption 0 0 [string toupper \ |
| | [string index $dbOption 0]]] |
| | if {![catch {$w configure $option} value]} { |
| | |
| | |
| | |
| | set defaultcolor [option get $w $dbOption $class] |
| | if {$defaultcolor eq "" || \ |
| | ([info exists prototype] && \ |
| | [$prototype cget $option] ne "$defaultcolor")} { |
| | set defaultcolor [lindex $value 3] |
| | } |
| | if {$defaultcolor ne ""} { |
| | set defaultcolor [winfo rgb . $defaultcolor] |
| | } |
| | set chosencolor [lindex $value 4] |
| | if {$chosencolor ne ""} { |
| | set chosencolor [winfo rgb . $chosencolor] |
| | } |
| | if {[string match $defaultcolor $chosencolor]} { |
| | |
| | |
| | append result ";\noption add [list \ |
| | *[winfo class $w].$dbOption $c($dbOption) 60]" |
| | $w configure $option $c($dbOption) |
| | } |
| | } |
| | } |
| | foreach child [winfo children $w] { |
| | append result ";\n[::tk::RecolorTree $child c]" |
| | } |
| | return $result |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | proc ::tk::Darken {color percent} { |
| | if {$percent < 0} { |
| | return #000000 |
| | } elseif {$percent > 200} { |
| | return #ffffff |
| | } elseif {$percent <= 100} { |
| | lassign [winfo rgb . $color] r g b |
| | set r [expr {($r/256)*$percent/100}] |
| | set g [expr {($g/256)*$percent/100}] |
| | set b [expr {($b/256)*$percent/100}] |
| | } elseif {$percent > 100} { |
| | lassign [winfo rgb . $color] r g b |
| | set r [expr {255 - ((65535-$r)/256)*(200-$percent)/100}] |
| | set g [expr {255 - ((65535-$g)/256)*(200-$percent)/100}] |
| | set b [expr {255 - ((65535-$b)/256)*(200-$percent)/100}] |
| | } |
| | return [format #%02x%02x%02x $r $g $b] |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| |
|
| | proc ::tk_bisque {} { |
| | tk_setPalette activeBackground #e6ceb1 activeForeground black \ |
| | background #ffe4c4 disabledForeground #b0b0b0 foreground black \ |
| | highlightBackground #ffe4c4 highlightColor black \ |
| | insertBackground black \ |
| | selectBackground #e6ceb1 selectForeground black \ |
| | troughColor #cdb79e |
| | } |
| |
|