Hey,

On Mon, 31 Jan 2011 13:14:30 +0000
James Morris <jwm.art....@gmail.com> wrote:

> Hi,
> 
> I'm trying to modify some existing code which uses gobject so that the
> function to create a new object can take a parameter. The existing
> code is quite simple, and my modifications simplify it further so I
> don't want to spend a great deal of time messing about with Gobject
> things.
> 
> Can anyone point me in the direction of code examples where the
> construction of the g object requires a parameter so I can see how to
> do it please? - I can't make sense of the documentation.

I usually do this by adding a construct or construct-only property to
the object class and creating a my_object_new() function that takes a
parameter for this property that I can then pass to g_object_new().

Here's a simple example from Xfce's XDG menu library garcon: GarconMenu
is the object and it needs a menu file (a GFile object) to be
constructed properly. So what we did is to to install a construct-only
property like this:

  http://git.xfce.org/libs/garcon/tree/garcon/garcon-menu.c#n246

and write a _new() function that takes a GFile for this property and
passes it to g_object_new():

  http://git.xfce.org/libs/garcon/tree/garcon/garcon-menu.c#n459

This property will not be available in the init function (e.g.
garcon_menu_init) but if you want to do something with it before the
object can be used by the outside world, you can do that by overriding
the GObject constructed function like you do with finalize or
get_property. In constructed, the construct and construct-only
properties will be set and you can do something with them.

  - Jannis
_______________________________________________
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