On Sun, Jun 18, 2006 at 11:52:24AM +0800, Bing Lin wrote:
> I set some values of GtkRcStyle, but the color still not changed, how can I
> do?
> The code is like this:
> 
> #include <gtk/gtk.h>
> int main( int argc, char *argv[] )
> {
> GtkWidget *window;
> GtkWidget *button;
> GdkColor color;
> GtkRcStyle *rc_style;
> 
> gtk_init (&argc, &argv);
> 
> window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
> gtk_window_set_title(GTK_WINDOW(window), "test");
> gtk_window_set_policy(GTK_WINDOW(window), FALSE, FALSE, FALSE);
> button = gtk_button_new_with_label("    ");
> gtk_container_add(GTK_CONTAINER(window), button);
> gdk_color_parse("red", &color);
> rc_style = gtk_rc_style_new();
> rc_style->fg[GTK_STATE_NORMAL] = color;
> rc_style->color_flags[GTK_STATE_NORMAL] |= GTK_RC_FG;
> gtk_widget_modify_style(GTK_WIDGET(button), rc_style);
> gtk_rc_style_unref(rc_style);
> gtk_widget_show(button);
> gtk_widget_show(window);
> 
> gtk_main ();
> return 0;
> }

The only thing drawn with fg color on a button is the focus
frame -- if it has focus.  But it should be visible, the
problem is that this, like the previous method and

    gtk_rc_parse_string("style \"fg-red\" {\n"
                        "  fg[NORMAL] = \"red\"\n"
                        "}\n"
                        "widget \"*.fg-red-button\" style \"fg-red\"\n");
    gtk_widget_set_name(button, "fg-red-button")

is defenceless against theme engines.  For example with
RedHat's bluecurve theme engine, it seems impossible to
change the color of the focus frame.  Without any theme
engine all methods work.

Yeti


--
Anonyms eat their boogers.
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to