Re: GtkGLArea and signals



sven gimp org wrote:
>> Why is it that I can't simply have the glarea widget signal 
>> itself that it is in need of a refresh? Isn't a widget allowed
>> to signal itself?
> 
> if you would emit the signal correctly it would probably work
> (you missed to pass a valid GdkEvent to signal_emit). However 
> the correct way of emitting an expose event is to use 
> gtk_widget_queue_draw() or gtk_widget_queue_draw_area().

OK, I see what you mean. Thanks :)

I have another signal related problem now - I want to refresh the GL widget
as soon as it is displayed, otherwise a load of random crap in memory is
displayed until I (for example) rotate the view with the mouse. I really need
to force this refresh to occur before the user interacts with the program.

The problem is that I've tried doing a gtk_widget_draw() in my "realize" handler
and even tried it in a "map" handler, but it doesn't make a difference. To
be perfectly honest I'm programming blind, because I can't find any
documentation that describes what these signals really are, precisely when
they fire, and what you can and can't do within the signal handlers, depending
on the state of the widget.

Where do I find this information? It doesn't appear to be in the GTK docs.
I'm really looking for something like this (taken from Amiga MUI docs):

"   To sum it up again, look at the diagram below. Things between
brackets might be called zero or more times for the same object.

     OM_NEW; /* you dont know anything about display environment here */
     {
        MUIM_Setup;      /* information about display, still no window */
        MUIM_AskMinMax;  /* tell me your min/max dimensions */
        [ window is opened here ]
        {
           MUIM_Show;    /* add yourself to the window, don't yet draw */
           {
              MUIM_Draw;     /* draw yourself */
           }
           MUIM_Hide;    /* remove yourself from the window */
        }
        [ window is closed here ]
        MUIM_Cleanup;    /* free any display dependant data */
     }
     OM_DISPOSE; /* kill yourself completely */"

Is there anything analogous to this in the GTK documentation? And a full
explanation of the signals? - all the signal information in the GtkWidget
documentation is blank apart from the parameter descriptions! And its the
same with the GTK 2.0 docs too :(

Thanks,

Giles





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