Interface
GtkBuildable
Description [src]
interface Gtk.Buildable : GObject.ObjectGtkBuildable allows objects to extend and customize their deserialization
from ui files.
The interface includes methods for setting names and properties of objects, parsing custom tags and constructing child objects.
The GtkBuildable interface is implemented by all widgets and
many of the non-widget objects that are provided by GTK. The
main user of this interface is GtkBuilder. There should be
very little need for applications to call any of these functions directly.
An object only needs to implement this interface if it needs to extend the
GtkBuilder XML format or run any extra routines at deserialization time.
Prerequisite
In order to implement Buildable, your type must inherit fromGObject.
Implementations
- GtkAboutDialog
- GtkActionBar
- GtkAnyFilter
- GtkAppChooserButton
- GtkAppChooserDialog
- GtkAppChooserWidget
- GtkApplicationWindow
- GtkAspectFrame
- GtkAssistant
- GtkBox
- GtkButton
- GtkCalendar
- GtkCellArea
- GtkCellAreaBox
- GtkCellView
- GtkCenterBox
- GtkCheckButton
- GtkColorButton
- GtkColorChooserDialog
- GtkColorChooserWidget
- GtkColorDialogButton
- GtkColumnView
- GtkComboBox
- GtkComboBoxText
- GtkConstraintLayout
- GtkDialog
- GtkDragIcon
- GtkDrawingArea
- GtkDropDown
- GtkEditableLabel
- GtkEmojiChooser
- GtkEntry
- GtkEntryCompletion
- GtkEveryFilter
- GtkExpander
- GtkFileChooserDialog
- GtkFileChooserWidget
- GtkFileFilter
- GtkFixed
- GtkFlowBox
- GtkFlowBoxChild
- GtkFontButton
- GtkFontChooserDialog
- GtkFontChooserWidget
- GtkFontDialogButton
- GtkFrame
- GtkGLArea
- GtkGraphicsOffload
- GtkGrid
- GtkGridView
- GtkHeaderBar
- GtkIconView
- GtkImage
- GtkInfoBar
- GtkInscription
- GtkLabel
- GtkLevelBar
- GtkLinkButton
- GtkListBase
- GtkListBox
- GtkListBoxRow
- GtkListStore
- GtkListView
- GtkLockButton
- GtkMediaControls
- GtkMenuButton
- GtkMessageDialog
- GtkMultiFilter
- GtkMultiSorter
- GtkNotebook
- GtkOverlay
- GtkPageSetupUnixDialog
- GtkPaned
- GtkPasswordEntry
- GtkPicture
- GtkPopover
- GtkPopoverMenu
- GtkPopoverMenuBar
- GtkPrintUnixDialog
- GtkProgressBar
- GtkRange
- GtkRevealer
- GtkScale
- GtkScaleButton
- GtkScrollbar
- GtkScrolledWindow
- GtkSearchBar
- GtkSearchEntry
- GtkSeparator
- GtkShortcutController
- GtkShortcutLabel
- GtkShortcutsGroup
- GtkShortcutsSection
- GtkShortcutsShortcut
- GtkShortcutsWindow
- GtkSizeGroup
- GtkSpinButton
- GtkSpinner
- GtkStack
- GtkStackSidebar
- GtkStackSwitcher
- GtkStatusbar
- GtkStringList
- GtkSwitch
- GtkText
- GtkTextTagTable
- GtkTextView
- GtkToggleButton
- GtkTreeExpander
- GtkTreeStore
- GtkTreeView
- GtkTreeViewColumn
- GtkVideo
- GtkViewport
- GtkVolumeButton
- GtkWidget
- GtkWindow
- GtkWindowControls
- GtkWindowHandle
Interface structure
struct GtkBuildableIface {
  GTypeInterface g_iface;
  void (* set_id) (
    GtkBuildable* buildable,
    const char* id
  );
  const char* (* get_id) (
    GtkBuildable* buildable
  );
  void (* add_child) (
    GtkBuildable* buildable,
    GtkBuilder* builder,
    GObject* child,
    const char* type
  );
  void (* set_buildable_property) (
    GtkBuildable* buildable,
    GtkBuilder* builder,
    const char* name,
    const GValue* value
  );
  GObject* (* construct_child) (
    GtkBuildable* buildable,
    GtkBuilder* builder,
    const char* name
  );
  gboolean (* custom_tag_start) (
    GtkBuildable* buildable,
    GtkBuilder* builder,
    GObject* child,
    const char* tagname,
    GtkBuildableParser* parser,
    gpointer* data
  );
  void (* custom_tag_end) (
    GtkBuildable* buildable,
    GtkBuilder* builder,
    GObject* child,
    const char* tagname,
    gpointer data
  );
  void (* custom_finished) (
    GtkBuildable* buildable,
    GtkBuilder* builder,
    GObject* child,
    const char* tagname,
    gpointer data
  );
  void (* parser_finished) (
    GtkBuildable* buildable,
    GtkBuilder* builder
  );
  GObject* (* get_internal_child) (
    GtkBuildable* buildable,
    GtkBuilder* builder,
    const char* childname
  );
  
}The GtkBuildableIface interface contains methods that are
necessary to allow GtkBuilder to construct an object from
a GtkBuilder UI definition.
Interface members
| g_iface |  | 
| The parent class. | |
| set_id |  | 
| Stores the id attribute given in the  | |
| get_id |  | 
| The getter corresponding to  | |
| add_child |  | 
| Adds a child. The  | |
| set_buildable_property |  | 
| Sets a property of a buildable object.
 It is normally not necessary to implement this,  | |
| construct_child |  | 
| Constructs a child of a buildable that has been
 specified as “constructor” in the UI definition. This can be used to
 reference a widget created in a  | |
| custom_tag_start |  | 
| Implement this if the buildable needs to parse
 content below  | |
| custom_tag_end |  | 
| Called for the end tag of each custom element that is
 handled by the buildable (see  | |
| custom_finished |  | 
| Called for each custom tag handled by the buildable
 when the builder finishes parsing (see  | |
| parser_finished |  | 
| Called when a builder finishes the parsing
 of a UI definition. It is normally not necessary to implement this,
 unless you need to perform special cleanup actions.  | |
| get_internal_child |  | 
| Returns an internal child of a buildable.
  | 
Virtual methods
Gtk.Buildable.add_child
Adds a child to buildable. type is an optional string
describing how the child should be added.
Gtk.Buildable.construct_child
Constructs a child of a buildable that has been
 specified as “constructor” in the UI definition. This can be used to
 reference a widget created in a <ui> tag which is outside
 of the normal GtkBuilder UI definition hierarchy.  A reference to the
 constructed object is returned and becomes owned by the caller.
Gtk.Buildable.custom_finished
Similar to gtk_buildable_parser_finished() but is
called once for each custom tag handled by the buildable.
Gtk.Buildable.get_internal_child
Retrieves the internal child called childname of the buildable object.
Gtk.Buildable.parser_finished
Called when a builder finishes the parsing
 of a UI definition. It is normally not necessary to implement this,
 unless you need to perform special cleanup actions. GtkWindow sets
 the GtkWidget:visible property here.
Gtk.Buildable.set_buildable_property
Sets a property of a buildable object.
 It is normally not necessary to implement this, g_object_set_property()
 is used by default. GtkWindow implements this to delay showing itself
 (i.e. setting the GtkWidget:visible property) until the whole
 interface is created.
Gtk.Buildable.set_id
Stores the id attribute given in the GtkBuilder UI definition.
  GtkWidget stores the name as object data. Implement this method if your
  object has some notion of “ID” and it makes sense to map the XML id
  attribute to it.