Class

GtkHeaderBar

[]

Description [src]

final class Gtk.HeaderBar : Gtk.Widget
  implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget {
  /* No available fields */
}

GtkHeaderBar is a widget for creating custom title bars for windows.

An example GtkHeaderBar

GtkHeaderBar is similar to a horizontal GtkCenterBox. It allows children to be placed at the start or the end. In addition, it allows the window title to be displayed. The title will be centered with respect to the width of the box, even if the children at either side take up different amounts of space.

GtkHeaderBar can add typical window frame controls, such as minimize, maximize and close buttons, or the window icon.

For these reasons, GtkHeaderBar is the natural choice for use as the custom titlebar widget of a GtkWindow (see gtk_window_set_titlebar()), as it gives features typical of titlebars while allowing the addition of child widgets.

GtkHeaderBar as GtkBuildable

The GtkHeaderBar implementation of the GtkBuildable interface supports adding children at the start or end sides by specifying “start” or “end” as the “type” attribute of a <child> element, or setting the title widget by specifying “title” value.

By default the GtkHeaderBar uses a GtkLabel displaying the title of the window it is contained in as the title widget, equivalent to the following UI definition:

<object class="GtkHeaderBar">
  <property name="title-widget">
    <object class="GtkLabel">
      <property name="label" translatable="yes">Label</property>
      <property name="single-line-mode">True</property>
      <property name="ellipsize">end</property>
      <property name="width-chars">5</property>
      <style>
        <class name="title"/>
      </style>
    </object>
  </property>
</object>

CSS nodes

headerbar
╰── windowhandle
    ╰── box
        ├── box.start
        │   ├── windowcontrols.start
        │   ╰── [other children]
        ├── [Title Widget]
        ╰── box.end
            ├── [other children]
            ╰── windowcontrols.end

A GtkHeaderBars CSS node is called headerbar. It contains a windowhandle subnode, which contains a box subnode, which contains two box subnodes at the start and end of the header bar, as well as a center node that represents the title.

Each of the boxes contains a windowcontrols subnode, see GtkWindowControls for details, as well as other children.

Accessibility

GtkHeaderBar uses the GTK_ACCESSIBLE_ROLE_GROUP role.

[]

Hierarchy

hierarchy this GtkHeaderBar implements_0 GtkAccessible this--implements_0 implements_1 GtkBuildable this--implements_1 implements_2 GtkConstraintTarget this--implements_2 ancestor_0 GtkWidget ancestor_0--this ancestor_1 GInitiallyUnowned ancestor_1--ancestor_0 ancestor_2 GObject ancestor_2--ancestor_1
[]

Constructors

gtk_header_bar_new

Creates a new GtkHeaderBar widget.

[]

Instance methods

gtk_header_bar_get_decoration_layout

Gets the decoration layout of the GtkHeaderBar.

gtk_header_bar_get_show_title_buttons

Returns whether this header bar shows the standard window title buttons.

gtk_header_bar_get_title_widget

Retrieves the title widget of the header.

gtk_header_bar_pack_end

Adds child to bar, packed with reference to the end of the bar.

gtk_header_bar_pack_start

Adds child to bar, packed with reference to the start of the bar.

gtk_header_bar_remove

Removes a child from the GtkHeaderBar.

gtk_header_bar_set_decoration_layout

Sets the decoration layout for this header bar.

gtk_header_bar_set_show_title_buttons

Sets whether this header bar shows the standard window title buttons.

gtk_header_bar_set_title_widget

Sets the title for the GtkHeaderBar.

Methods inherited from GtkWidget (162)
Methods inherited from GObject (43)
Methods inherited from GtkAccessible (19)
Methods inherited from GtkBuildable (1)
[]

Properties

Gtk.HeaderBar:decoration-layout

The decoration layout for buttons.

Gtk.HeaderBar:show-title-buttons

Whether to show title buttons like close, minimize, maximize.

Gtk.HeaderBar:title-widget

The title widget to display.

Properties inherited from GtkWidget (34)
Properties inherited from GtkAccessible (1)
[]

Signals

Signals inherited from GtkWidget (13)
Signals inherited from GObject (1)