[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: Pass more widgets as gpointer.
- From: Claudio Saavedra <csaavedra igalia com>
- To: Vlad Volodin <vest 84 gmail com>
- Cc: gtk-app-devel-list gnome org
- Subject: Re: Pass more widgets as gpointer.
- Date: Tue, 21 Apr 2009 09:08:07 +0200
On Tue, Apr 21, 2009 at 08:57:41AM +0400, Vlad Volodin wrote:
> Hello, Jens
>
> The other way is to make your widgets global. Especially, me? I use
> GOjects, and always pass "self" object. For example, I inherit main
> window object from GtkWindow and later in widgets definition pass
> itself to callback. Also, you can use g_object_set_data for storing
> some useful pointers.
Don't use global variables, they make the code hard to read and
difficult to understand the context of the variables.
>
> Good luck
>
> 2009/4/20 Jens Hansen <jensh604 gmail com>:
> > Hello All.
> >
> > I'm quite new to C, but have done some gtk programming in perl.
> > I've been looking for answers on the web, and in various tutorials, without
> > any luck.
> > My question is how to pass more widgets as a gpointer, to a callback
> > function. (in C )
> >
> > For instance if a "OK" button, has to read the state of three other
> > widgets...
> >
> > In perl I would make an array of the widgets, and then pass the ref as the
> > data argument to the callback. I cannot grasp how to do something like that
> > in C.
A typical approach to this is to create a FooContext structure that will
hold pointers to all the elements that you need to use in your callback.
You can instanciate it with g_new0() and later free it with g_free(). Be
careful to hold object references and release them when you don't need
them anymore.
You could also use an array for this, but I prefer the structure
approach, since you don't want to rely on the order you put the elements
in the array later when you use them, removing/adding more elements you
may need in the future can be a little cumbersome, etc.
Claudio
> >
> > An example snippet would be really helpfull.
> >
> > Thx
> >
> > Jens
> > _______________________________________________
> > gtk-app-devel-list mailing list
> > gtk-app-devel-list gnome org
> > http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
> >
> _______________________________________________
> gtk-app-devel-list mailing list
> gtk-app-devel-list gnome org
> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]