Re: [gtk-list] Re: gtk_rc_get_style_by_name()?
- From: Peter Mattis <petm scam XCF Berkeley EDU>
- To: gtk-list redhat com
- Subject: Re: [gtk-list] Re: gtk_rc_get_style_by_name()?
- Date: Thu, 22 May 1997 21:28:24 -0700
"Michael K. Johnson" writes:
>I wrote:
>>Doh! I've found gtk_rc_style_find(), which appears to do what I want.
But gtk_rc_style_find returns a GtkRcStyle, not a GtkStyle. The
GtkRcStyle contains a GtkStyle which may need to be initialized. I
guess I can add a gtk_rc_style_by_name if its desired.
>If it were exported, it might. There are several rc functions that are
>static that would be useful. Is there a reason for that, or can we make
>some of them available?
Name 'em, explain why they might be useful and I'll see about
exporting them.
>I'd really like to keep those style definitions out of the executable,
>in the configuration file. Is it possible? Is it supposed to be
>possible?
As mentioned by someone else on the list, gtk_widget_set_name does
weird things with changing the style. Why did I do it that way? I
can't remember. Probably because gtk_widget_set_style wasn't
implemented for a long time. Anyways, changing gtk_widget_set_name to
the following worked for me in a small little test:
void
gtk_widget_set_name (GtkWidget *widget,
gchar *name)
{
GtkStyle *new_style;
g_return_if_fail (widget != NULL);
if (widget->name)
g_free (widget->name);
widget->name = g_strdup (name);
new_style = gtk_rc_get_style (widget);
gtk_widget_set_style (widget, new_style);
}
My test basically involved creating a resource file that contained:
style "foo"
{
bg[PRELIGHT] = { 0, 0, 65535 } # blue
}
widget "*.foo.*" style "foo"
Which means any widget named "foo" (and all its children) will have
the style "foo". I then used a simple hello world program with a
single push button, ran it in gdb. Initially it has the default
style. Using gdb I changed the buttons name to "foo" and now it has
style "foo" and its prelight color has changed.
For some reason, I had gtk_widget_set_name not change the style if the
widget was already realized (visible on the screen). This was
undoubtedly causing the problem for you.
Peter
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]