Class method


Declaration [src]

gtk_widget_class_bind_template_child_full (
  GtkWidgetClass* widget_class,
  const char* name,
  gboolean internal_child,
  gssize struct_offset

Description [src]

Automatically assign an object declared in the class template XML to be set to a location on a freshly built instance’s private data, or alternatively accessible via gtk_widget_get_template_child().

The struct can point either into the public instance, then you should use G_STRUCT_OFFSET(WidgetType, member) for struct_offset, or in the private struct, then you should use G_PRIVATE_OFFSET(WidgetType, member).

An explicit strong reference will be held automatically for the duration of your instance’s life cycle, it will be released automatically when GObjectClass.dispose() runs on your instance and if a struct_offset that is != 0 is specified, then the automatic location in your instance public or private data will be set to NULL. You can however access an automated child pointer the first time your classes GObjectClass.dispose() runs, or alternatively in GtkWidget::destroy.

If internal_child is specified, Gtk.BuildableIface.get_internal_child will be automatically implemented by the GtkWidget class so there is no need to implement it manually.

The wrapper macros gtk_widget_class_bind_template_child(), gtk_widget_class_bind_template_child_internal(), gtk_widget_class_bind_template_child_private() and gtk_widget_class_bind_template_child_internal_private() might be more convenient to use.

Note that this must be called from a composite widget classes class initializer after calling gtk_widget_class_set_template().



Type: const char*

The “id” of the child defined in the template XML.

The data is owned by the caller of the method.
The value is a NUL terminated UTF-8 string.

Type: gboolean

Whether the child should be accessible as an “internal-child” when this class is used in GtkBuilder XML.


Type: gssize

The structure offset into the composite widget’s instance public or private structure where the automated child pointer should be set, or 0 to not assign the pointer.