On Thu, 02 Apr 2009 16:53:11 -0500
Thomas Stover <tho...@wsinnovations.com> wrote:

> 
> Well if any lone googlers ever find this, and want to know what 
> happened. I did fix it with this, but I still think the right way is
> to some how create a new structure that is "inherits" the
> GSourceFuncs and adds a place to store the event handle and the
> protected data (in this case global_int). If there was an example of
> how to create a source, or some doc on a source life cycle, that
> would be helpful. I did look at the source, but was quickly lost. I'm
> guessing the main loop architecture involves multiple "sources",
> "fds", and "realization callbacks" all being able to exist without
> "extras". So for instance 1 fd could trigger 5 sources, which each
> result in glib calling a variable number of callbacks. If only there
> was more time to spend on these things....

I may be missing your point (I would have to read through the
back-posts to make sense of it), but if you want to create your own
source object to hold its own protected/private data, it is just this:

struct MySource {
  GSource source;
/* my data, such as a gpointer but it could be anything and as much member data 
as you want */  
  gpointer data;
};

It is created with:

MySource *my_source = (MySource*) g_source_new(&source_funcs, sizeof(MySource));
/* initialise data */
my_source->data = my_object;

For more information see this, in particular the section "Creating new
sources types":

http://library.gnome.org/devel/glib/stable/glib-The-Main-Event-Loop.html

An idle object may already do much of what you want.  With windows, I think
it uses a window event object under the hood.

Chris


_______________________________________________
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