-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Gabriel Schulhof wrote:
> On Sun, 2007-08-05 at 11:29 +0800, Gregory Hosler wrote:
>> I'm looking for code examples specifically on how to use/implement 
>> g_idle_add().
>> Know any projects that uses g_idle_add() and related infrastructure?
> 
> 
> static gboolean
> make_insensitive_idle_cb(gpointer data)
> {
>   GtkWidget *widget = GTK_WIDGET(data);
> 
>   gtk_widget_set_sensitive(widget, FALSE);
> 
> /* Return FALSE so as not to keep executing this function over and over
>    again */
>   return FALSE;
> }
> 
> static gpointer
> my_thread(gpointer data)
> {
> /* ... do something of long duration, during which ... */
> 
> g_idle_add(make_insensitive_idle_cb, some_widget);
> 
> /* ... do the rest of the long duration stuff ... */
> 
> return NULL;
> }
> 
> Have a look at
> 
> http://developer.gnome.org/doc/API/2.0/glib/glib-The-Main-Event-Loop.html#id2603517

I actually had a look at that page prior to my post. It didn't answer some of
the basic questions / concerns I had.

Your example clears up alot of stuff for me. One of my questions (that your
example pretty much clarifies for me), was "what do I g_idle_add()" ?
If I understand correctly, you basically add callback functions, and in
particular, ones that are gtk/gdk related (i.e. that deal with the displaying of
widgets).

is this more or less correct ?

so, um, when a g_idle_add does a "gtk_widget_show()" on a widget, and that
widget would get displayed as part of the main thread.

Am I correct to say that things like gtk_label_new(), and all the related calls
to build a label widget, can be done in a thread, but the "show" must be done in
the main loop (via the g_adle_add() call) ?

If there a list (or guideline) of which gtk_calls should be done in the idle,
and which need not be ?

many thanks,

- -Greg

> HTH,

yes, it did!

- -G

> 
> 
> Gabriel
> 


- --
+---------------------------------------------------------------------+

Please also check the log file at "/dev/null" for additional information.
                (from /var/log/Xorg.setup.log)

| Greg Hosler                                   [EMAIL PROTECTED]    |
+---------------------------------------------------------------------+
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)

iD8DBQFGtb57404fl/0CV/QRAtJHAKCcPTvYTNlvKN71ttWyEGUTkuBd2ACcDmvx
eJuwrFcdbeHq0vHmnwBHets=
=S79l
-----END PGP SIGNATURE-----
_______________________________________________
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