Re: Set the background color in GTK1



Hi Kevin,
there is this tutorial you might want to try
http://ometer.com/gtk-colors.html

-todd

Marc,

Still does not work

            style = gtk_rc_style_new();
            style->bg[GTK_STATE_NORMAL] = color;
            style->color_flags[GTK_STATE_NORMAL] = (GtkRcFlags)
(style->color_flags[GTK_STATE_NORMAL] | GTK_RC_BG); gtk_widget_modify_style(gtkwidget,style);
            gtk_widget_modify_style(drawing_area,style);
            gtk_rc_style_unref(style);

compiles and is executed, but does not do anything...

Kevin

On Monday 19 April 2004 06:25 am, Marc Santhoff wrote:
Am Mo, den 12.04.2004 schrieb Kevin DeKorte um 22:42:
Peter,
I'm not, but hi Kevin!

Didn't seem to do it

I do this to get the style

        style = gtk_style_copy(gtk_widget_get_style(gtkwidget));
       color.red = style->bg[GTK_STATE_NORMAL].red;
       color.green = style->bg[GTK_STATE_NORMAL].green;
       color.blue = style->bg[GTK_STATE_NORMAL].blue;
        black.red = 0;
        black.green = 0;
        black.blue = 0;

This to set the color

            style->bg[GTK_STATE_NORMAL].red = black.red;
            style->bg[GTK_STATE_NORMAL].green = black.green;
            style->bg[GTK_STATE_NORMAL].blue = black.blue;
            gtk_widget_set_style(gtkwidget,style);
            gtk_widget_ensure_style(gtkwidget);

And this to restore it

            style->bg[GTK_STATE_NORMAL].red = color.red;
            style->bg[GTK_STATE_NORMAL].green = color.green;
            style->bg[GTK_STATE_NORMAL].blue = color.blue;

            gtk_widget_set_style(gtkwidget,style);
            gtk_widget_ensure_style(gtkwidget);

And the background color always stays the default grey.
There's a tutorial by Havoc Pennington on this topic, but I lost the URL
(could be:  http://pobox.com/~hp ), so I post a short part for GTK+ 1.2:

Short answer: how to set the color of a widget
In GTK+ 1.2:

 GtkRcStyle *rc_style;
 GdkColor color;

 /* There are two good ways to fill in a color */

 /* 1) Initialize r/g/b components, they are 16-bit values */
 color.red = 65535;
 color.green = 0;
 color.blue = 0;

 /* 2) Parse a color string; an HTML color spec such as "#FF0000"
  * is allowed here too
  */
 gdk_color_parse ("red", &color);


 /* After filling in your GdkColor, create a GtkRcStyle */

 rc_style = gtk_rc_style_new ();

 /* Set foreground (fg) color in normal state to red */
 rc_style->fg[GTK_STATE_NORMAL] = color;

 /* Indicate which colors the GtkRcStyle will affect;
  * unflagged colors will follow the theme
  */
 rc_style->color_flags[GTK_STATE_NORMAL] |= GTK_RC_FG;

 gtk_widget_modify_style (widget, rc_style);

 gtk_rc_style_unref (rc_style);

As you can see, I think you should use "gtk_widget_modify_style()" and
check the definition of the used types.

I had some trouble with this myself.

HTH,
Marc


_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list gnome org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list gnome org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Attachment: taf2.vcf
Description: Vcard



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]