summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 8d84995)
raw | patch | inline | side by side (parent: 8d84995)
author | Paul Mackerras <paulus@samba.org> | |
Sat, 14 Nov 2009 10:15:01 +0000 (21:15 +1100) | ||
committer | Paul Mackerras <paulus@samba.org> | |
Sat, 14 Nov 2009 10:15:01 +0000 (21:15 +1100) |
Commit 5497f7a23ac11f9b230892220d5ed80263eedd1f ("gitk: Add configuration
for UI colour scheme") added a call to tk_setPalette at startup.
Unfortunately, tk_setPalette always chooses a dark red color for
the selectColor value if none is given explicitly, and this makes
checkbuttons and radiobuttons look rather bad.
This restores the previous appearance by specifying selectColor
explicitly. For light backgrounds we use white for selectColor, and
for dark backgrounds we use black. The formula and threshold for
distinguishing light from dark are the same as used in tk_setPalette
for choosing the foreground color.
Signed-off-by: Paul Mackerras <paulus@samba.org>
for UI colour scheme") added a call to tk_setPalette at startup.
Unfortunately, tk_setPalette always chooses a dark red color for
the selectColor value if none is given explicitly, and this makes
checkbuttons and radiobuttons look rather bad.
This restores the previous appearance by specifying selectColor
explicitly. For light backgrounds we use white for selectColor, and
for dark backgrounds we use black. The formula and threshold for
distinguishing light from dark are the same as used in tk_setPalette
for choosing the foreground color.
Signed-off-by: Paul Mackerras <paulus@samba.org>
gitk | patch | blob | history |
index db5ec54be879e3ad194c2718468a499882c75733..61771bd05cdb33f59458a192ff84e59b85a4ef2c 100755 (executable)
--- a/gitk
+++ b/gitk
allcanvs itemconf secsel -fill $c
}
+# This sets the background color and the color scheme for the whole UI.
+# For some reason, tk_setPalette chooses a nasty dark red for selectColor
+# if we don't specify one ourselves, which makes the checkbuttons and
+# radiobuttons look bad. This chooses white for selectColor if the
+# background color is light, or black if it is dark.
proc setui {c} {
- tk_setPalette $c
+ set bg [winfo rgb . $c]
+ set selc black
+ if {[lindex $bg 0] + 1.5 * [lindex $bg 1] + 0.5 * [lindex $bg 2] > 100000} {
+ set selc white
+ }
+ tk_setPalette background $c selectColor $selc
}
proc setbg {c} {
parsefont uifont $uifont
eval font create uifont [fontflags uifont]
-tk_setPalette $uicolor
+setui $uicolor
setoptions