On Wed, 2007-06-13 at 00:46 +0200, Steve Frécinaux wrote: > Also, maybe an helper > function to do that would be sufficient instead of a full-blown class, > so that it can just be called in my_dialog_init to add the child widget > and update its properties according to what's specified in the glade > file.
Let me explain a bit more: With such a function: void gtk_builder_build_object (GObject *object, const gchar *file, const gchar *name) { GtkBuilder *builder; GObject *child; g_return_if_fail (GTK_IS_CONTAINER (object) && <typeof object inherits typeof widget(name)>); buider = gtk_builder_new (); gtk_builder_add_from_file (builder, file); child = gtk_builder_get_object (builder, <widget(name).child>); g_return_if_fail (child != NULL); gtk_container_add (GTK_CONTAINER (object), child); gtk_builder_update_object_properties (builder, object, name); } it would probably be as simple as overwriting the constructor of the custom container type, this way: static void my_dialog_constructor (GObject *object, ...) { G_OBJECT_CLASS (parent_class)->construct (object, ...); gtk_builder_build_object (object, "my-dialog"); /* connect signals here */ } the default destroy handler would take care of throwing away the built objects. This kind of API would look nice and simple, wouldn't it ? _______________________________________________ gtk-devel-list mailing list gtk-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-devel-list