Re: Tool tip colors
- From: Owen Taylor <otaylor redhat com>
- To: gtk-devel-list redhat com
- Cc: gtk-list redhat com, "Donna S. Martin" <donna omartin com>, bobstaff snowhill com
- Subject: Re: Tool tip colors
- Date: 18 Oct 1999 09:32:34 -0400
Bob Stafford <bobstaff@snowhill.com> writes:
> I've got one question and one bug report (I think).
>
> Firstly the bug report (I assume that the people who maintain GTK read
> this list, if there is a better place to report bugs please let me
> know).
>
> In the file gtktooltips.c at around line 401 is the following piece of
> code
>
> if (background != NULL) -- I think this should be
> foreground
> tooltips->foreground = foreground;
> if (foreground != NULL) -- and this should be
> background.
> tooltips->background = background;
Well, yes, but see below.
> Next the question that led me to be looking at the code in the first
> place.
>
> Can anybody tell me why the tooltip in the following test program does
> not have black text on a blue background. I'm running gtk 1.2.6 on
> RH 6.0.
If you look around a bit more at the code, you'll find that
the values set by gtk_tooltips_set_colors() are completely
unused. They haven't worked for at least a year, if they
were ever functional.
First, the color of the tooltips is not something a program should
be changing under almost any circumstances. The color of the
tooltips is a perogative of the user / theme designer. Yes,
the default gray isn't very nice; the GTK+ packages we distribute
at Red Hat include the following in $sysconfdir/gtk/gtkrc.
=====
style "gtk-tooltips-style" {
bg[NORMAL] = "#ffffc0"
}
widget "gtk-tooltips" style "gtk-tooltips-style"
=====
If you wanted to do something different in a program,
it could either parse its own gtkrc file, or set up the
style explicitely.
This would look something like:
==========
void
set_bg (GtkWidget *widget, gushort red, gushort green, gushort blue)
{
GtkRcStyle *rc_style = gtk_rc_style_new();
rc_style->color_flags[GTK_STATE_NORMAL] = GTK_RC_BG;
rc_style->bg[GTK_STATE_NORMAL].red = red;
rc_style->bg[GTK_STATE_NORMAL].green = green;
rc_style->bg[GTK_STATE_NORMAL].blue = blue;
gtk_widget_modify_style (widget, rc_style);
gtk_rc_style_unref (rc_style);
}
GtkTooltips *tips = gtk_tooltips_new ();
gtk_tooltips_force_window (tips);
set_bg (tips->tip_window, 0xffff, 0, 0);
=========
[ The modify_style() call only works with GTK+ 1.2.5 or newer -
there were bugs before that which caused difficulties; you
could also use a call to gtk_widget_set_style() if working]
with older GTK+ versions is important to you. ]
Regards,
Owen
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]