Re: Complete newbie question about colors
- From: Owen Taylor <otaylor gtk org>
- To: Joakim Hove <hove phys ntnu no>
- Cc: gtk-list redhat com
- Subject: Re: Complete newbie question about colors
- Date: 05 May 1998 11:36:15 -0400
Joakim Hove <hove@phys.ntnu.no> writes:
> So far, so good. Now i want the drawingare displayed with a different
> color. I have tried several varieties of :
>
> ....
> colormap = gtk_widget_get_colormap(...)
> colormap = gdk_colomap_new (...)
> gdk_color_alloc(..)
> gdk_window_set_background(..)
> ....
>
> Some varieties won't compile at all, some generate compiler
> warnings, some run-time warnings and some don't complain at all. But
> unfortunately they *all* produce the same gray drawingare.
The problem you are having is that you can't set the background
on a GdkWindow until it is exists. And the GdkWindow for the
GtkDrawingArea (drawing_area->window) doesn't exist until the
widget is realized.
So, basically, you want to do:
colormap = gtk_widget_get_colormap(drawing_area);
gdk_color_alloc (colormap (...);
gdk_widget_realize (drawing_area);
gdk_window_set_background (drawing_area->window, ...);
But, be warned that this will produce bad results when
(using features that will be present in GTK+-1.2), the user
changes their color scheme at runtime - at that point the
drawing area background will change to whatever the new background
color is.
So, you may want to use an alternate method:
One fairly simple way is to make a copy of the drawing_area's
style and set the background for that.
GtkStyle *new_style;
gtk_widget_ensure_style (drawing_area);
new_style = gtk_style_copy (drawing_area->style);
new_style->bg[GTK_STATE_NORMAL].red = 0xFFFF;
new_style->bg[GTK_STATE_NORMAL].green = 0;
new_style->bg[GTK_STATE_NORMAL].blue = 0;
gtk_widget_set_style (drawing_area, new_style);
gtk_style_unref (new_style); /* We don't need it any more ourself */
The widget's style will now be completely unaffected when the user
changes color scheme changes.
Hope this helps,
Owen
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]