Re: Help starting with gtk
- From: Owen Taylor <otaylor gtk org>
- To: Alex King <alex milton earthlight co nz>
- Cc: gtk-list redhat com
- Subject: Re: Help starting with gtk
- Date: 25 May 1998 09:55:18 -0400
Alex King <alex@milton.earthlight.co.nz> writes:
> I'm just starting programming with GTK/GDK and I'm struggling with the
> lack of docs. I have a Debian system with GTK 1.0.1. I'm new to x
> programming.
>
> I'll include the test program I'm working with - it compiles without
> warnings but gives errors when run on my setup. The program was pulled
> together from bits of the faq and tutorial - I want to be able to draw
> different shapes in different colours on the window every 1/2 second, but
> I cant get past the warnings eg.
>
> ** WARNING **: file gdkgc.c: line 43 (gdk_gc_new_with_values): "window !=
> NULL"
>
> ** WARNING **: file gdkgc.c: line 375 (gdk_gc_set_foreground): "gc !=
> NULL"
>
> ** WARNING **: file gdkdraw.c: line 117 (gdk_draw_arc): "gc != NULL"
All of these warnings come from one thing:
> gtk_drawing_area_size(GTK_DRAWING_AREA(data.area),100,100);
> window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
> gtk_signal_connect (GTK_OBJECT (window), "delete_event",
> GTK_SIGNAL_FUNC (delete_event), NULL);
> gtk_window_set_title (GTK_WINDOW (window), "Adding Program");
> gtk_container_add(GTK_CONTAINER(window),data.area);
> data.gc=gdk_gc_new(data.area->window);
At this call, data.area->window is currently NULL. The window for the
drawing area won't normally be created until you show the toplevel
window.
You can force this "realization" by adding immediately before:
gtk_widget_realize (data.area);
The other approach is to, in you callback, do something like
/* To be safe, check that the window is realized at this point */
if (!GTK_WIDGET_REALIZED (data.area))
return TRUE;
if (!data.gc)
{
data.gc = ....
}
Regards,
Owen
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]