Container Objects
Glade UI
Containers
How to add support for hierarchic widget relationships
Defining Containers in the Catalog
GtkContainer objects which parent GtkWidget objects have built-in detection in the
glade core; but other container relationships may be constructed; if for example you
wished to treat a GtkMenuBar --> GtkMenuItem relationship specially in the plugin;
Any GObject can parent any GObject. The default GtkContainer --> GtkWidget relationship
can also be modified for a GtkContainer derived object.
Child support definitions are identified by the GType of supported child class and
are embedded into a glade-widget-class block like so:
Bar
... 'Foo --> Bar' container relationship parameters go here
... packing property definition for this container relationship
... more child definitions here ...
]]>
Note that you can access and modify and even add virtual packing properties in
exactly the same way as previously described with normal object properties.
Container Relationship Parameter Tag Definitions
add-child-function
A #GladeAddChildFunc used to add child objects from parent objects.
remove-child-function
A #GladeRemoveChildFunc used to remove child objects from parent objects.
replace-child-function
A #GladeReplaceChildFunc Used to swap placholders with project widgets.
get-children-function
A #GladeGetChildrenFunc to return a list of children for this container. If you
have any anarchist internal children; they should be listed here along with
normal children.
child-set-property-function
A #GladeChildSetPropertyFunc to set a packing property on this child.
child-get-property-function
A #GladeChildGetPropertyFunc to get a packing property on this child.
special-child-type
A special type identifier that will indicate whether this is an alternate
child type; such as a notebook tab label or a frame label. The value of
special-child-type is the name of the added packing property for this child type;
you must then use the type to add children to the "correct port" at load time.
Currently this isnt very neatly done; you must do:
g_object_set_data (child, "special-child-type", type);
when creating special child types and handle it on replace-child; look at glade-gtk.c for
examples.