Skip to content

Commit

Permalink
gitk: Work around empty back and forward images when buttons are disa…
Browse files Browse the repository at this point in the history
…bled

On Mac, the back and forward buttons show an empty rectange instead of
a grayed-out arrow when they are disabled. The reason is a Tk bug on Mac
that causes disabled images not to draw correctly (not to draw at all,
that is); see
<https://groups.google.com/forum/?fromgroups=#!topic/comp.lang.tcl/V-nW1JBq0eU>.

To work around this, we explicitly provide gray images for the disabled
state; I think this looks better than the default stipple effect that you
get on Windows as well, but that may be a matter of taste.

Signed-off-by: Stefan Haller <stefan@haller-berlin.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
  • Loading branch information
Stefan Haller authored and Paul Mackerras committed Sep 23, 2012
1 parent 30441a6 commit f062e50
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions gitk
Original file line number Diff line number Diff line change
Expand Up @@ -2161,27 +2161,32 @@ proc makewindow {} {
trace add variable sha1string write sha1change
pack $sha1entry -side left -pady 2

image create bitmap bm-left -data {
set bm_left_data {
#define left_width 16
#define left_height 16
static unsigned char left_bits[] = {
0x00, 0x00, 0xc0, 0x01, 0xe0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1c, 0x00,
0x0e, 0x00, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0x0e, 0x00, 0x1c, 0x00,
0x38, 0x00, 0x70, 0x00, 0xe0, 0x00, 0xc0, 0x01};
}
image create bitmap bm-right -data {
set bm_right_data {
#define right_width 16
#define right_height 16
static unsigned char right_bits[] = {
0x00, 0x00, 0xc0, 0x01, 0x80, 0x03, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x1c,
0x00, 0x38, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0x00, 0x38, 0x00, 0x1c,
0x00, 0x0e, 0x00, 0x07, 0x80, 0x03, 0xc0, 0x01};
}
${NS}::button .tf.bar.leftbut -image bm-left -command goback \
-state disabled -width 26
image create bitmap bm-left -data $bm_left_data
image create bitmap bm-left-gray -data $bm_left_data -foreground "#999"
image create bitmap bm-right -data $bm_right_data
image create bitmap bm-right-gray -data $bm_right_data -foreground "#999"

${NS}::button .tf.bar.leftbut -image [list bm-left disabled bm-left-gray] \
-command goback -state disabled -width 26
pack .tf.bar.leftbut -side left -fill y
${NS}::button .tf.bar.rightbut -image bm-right -command goforw \
-state disabled -width 26
${NS}::button .tf.bar.rightbut -image [list bm-right disabled bm-right-gray] \
-command goforw -state disabled -width 26
pack .tf.bar.rightbut -side left -fill y

${NS}::label .tf.bar.rowlabel -text [mc "Row"]
Expand Down

0 comments on commit f062e50

Please sign in to comment.