### Class

# AdwHeaderBar

#### Description [src]

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

A title bar widget.

`AdwHeaderBar` is similar to `GtkHeaderBar`, but provides additional features compared to it. Refer to `GtkHeaderBar` for details. It is typically used as a top bar within `AdwToolbarView`.

## Navigation View Integration

When placed inside an `AdwNavigationPage`, `AdwHeaderBar` will display the page title instead of window title.

When used together with `AdwNavigationView` or `AdwNavigationSplitView`, it will also display a back button that can be used to go back to the previous page. The button also has a context menu, allowing to pop multiple pages at once, potentially across multiple navigation views. In rare scenarios, set `AdwHeaderBar:show-back-button` to `FALSE` to disable the back button if it’s unwanted (e.g. in an extra header bar on the same page).

## Split View Integration

When placed inside `AdwNavigationSplitView` or `AdwOverlaySplitView`, `AdwHeaderBar` will automatically hide the title buttons other than at the edges of the window.

## Centering Policy

`AdwHeaderBar:centering-policy` allows to enforce strict centering of the title widget. This can be useful for entries inside `AdwClamp`.

## Title Buttons

Unlike `GtkHeaderBar`, `AdwHeaderBar` allows to toggle title button visibility for each side individually, using the `AdwHeaderBar:show-start-title-buttons` and `AdwHeaderBar:show-end-title-buttons` properties.

## CSS nodes

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

`AdwHeaderBar`‘s CSS node is called `headerbar`. It contains a `windowhandle` subnode, which contains a `box` subnode, which contains three `widget` subnodes at the start, center and end of the header bar. The start and end subnotes contain a `box` subnode with the `.start` and `.end` style classes respectively, and the center node contains a node that represents the title.

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

When `AdwHeaderBar:show-back-button` is `TRUE`, the start box also contains a node with the name `widget` that contains a node with the name `button` and `.back` style class.

## Accessibility

`AdwHeaderBar` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role.

#### Hierarchy

#### Ancestors

- GtkWidget
- GInitiallyUnowned
- GObject

#### Implements

- GtkAccessible
- GtkBuildable
- GtkConstraintTarget

#### Constructors

###### adw_header_bar_new

Creates a new `AdwHeaderBar`.

#### Instance methods

###### adw_header_bar_get_centering_policy

Gets the policy for aligning the center widget.

###### adw_header_bar_get_decoration_layout

Gets the decoration layout for `self`.

###### adw_header_bar_get_show_back_button

Gets whether `self` can show the back button.

since: 1.4

###### adw_header_bar_get_show_end_title_buttons

Gets whether to show title buttons at the end of `self`.

###### adw_header_bar_get_show_start_title_buttons

Gets whether to show title buttons at the start of `self`.

###### adw_header_bar_get_show_title

Gets whether the title widget should be shown.

since: 1.4

###### adw_header_bar_get_title_widget

Gets the title widget widget of `self`.

###### adw_header_bar_pack_end

Adds `child` to `self`, packed with reference to the end of `self`.

###### adw_header_bar_pack_start

Adds `child` to `self`, packed with reference to the start of the `self`.

###### adw_header_bar_remove

Removes a child from `self`.

###### adw_header_bar_set_centering_policy

Sets the policy for aligning the center widget.

###### adw_header_bar_set_decoration_layout

Sets the decoration layout for `self`.

###### adw_header_bar_set_show_back_button

Sets whether `self` can show the back button.

since: 1.4

###### adw_header_bar_set_show_end_title_buttons

Sets whether to show title buttons at the end of `self`.

###### adw_header_bar_set_show_start_title_buttons

Sets whether to show title buttons at the start of `self`.

###### adw_header_bar_set_show_title

Sets whether the title widget should be shown.

since: 1.4

###### adw_header_bar_set_title_widget

Sets the title widget for `self`.

##### Methods inherited from GtkWidget (162)

Please see GtkWidget for a full list of methods.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

##### Methods inherited from GtkAccessible (18)

###### gtk_accessible_get_accessible_parent

Retrieves the accessible parent for an accessible object.

###### gtk_accessible_get_accessible_role

Retrieves the accessible role of an accessible object.

###### gtk_accessible_get_at_context

Retrieves the accessible implementation for the given `GtkAccessible`.

###### gtk_accessible_get_bounds

Queries the coordinates and dimensions of this accessible.

###### gtk_accessible_get_first_accessible_child

Retrieves the first accessible child of an accessible object.

###### gtk_accessible_get_next_accessible_sibling

Retrieves the next accessible sibling of an accessible object.

###### gtk_accessible_get_platform_state

Query a platform state, such as focus.

###### gtk_accessible_reset_property

Resets the accessible `property` to its default value.

###### gtk_accessible_reset_relation

Resets the accessible `relation` to its default value.

###### gtk_accessible_reset_state

Resets the accessible `state` to its default value.

###### gtk_accessible_set_accessible_parent

Sets the parent and sibling of an accessible object.

###### gtk_accessible_update_next_accessible_sibling

Updates the next accessible sibling of `self`.

###### gtk_accessible_update_property

Updates a list of accessible properties.

###### gtk_accessible_update_property_value

Updates an array of accessible properties.

###### gtk_accessible_update_relation

Updates a list of accessible relations.

###### gtk_accessible_update_relation_value

Updates an array of accessible relations.

###### gtk_accessible_update_state

Updates a list of accessible states. See the `GtkAccessibleState` documentation for the value types of accessible states.

###### gtk_accessible_update_state_value

Updates an array of accessible states.

##### Methods inherited from GtkBuildable (1)

###### gtk_buildable_get_buildable_id

Gets the ID of the `buildable` object.

#### Properties

###### Adw.HeaderBar:centering-policy

The policy for aligning the center widget.

###### Adw.HeaderBar:decoration-layout

The decoration layout for buttons.

###### Adw.HeaderBar:show-back-button

Whether the header bar can show the back button.

since: 1.4

###### Adw.HeaderBar:show-end-title-buttons

Whether to show title buttons at the end of the header bar.

###### Adw.HeaderBar:show-start-title-buttons

Whether to show title buttons at the start of the header bar.

###### Adw.HeaderBar:show-title

Whether the title widget should be shown.

since: 1.4

###### Adw.HeaderBar:title-widget

The title widget to display.

##### Properties inherited from GtkWidget (34)

###### Gtk.Widget:can-focus

Whether the widget or any of its descendents can accept the input focus.

###### Gtk.Widget:can-target

Whether the widget can receive pointer events.

###### Gtk.Widget:css-classes

A list of css classes applied to this widget.

###### Gtk.Widget:css-name

The name of this widget in the CSS tree.

###### Gtk.Widget:cursor

The cursor used by `widget`.

###### Gtk.Widget:focus-on-click

Whether the widget should grab focus when it is clicked with the mouse.

###### Gtk.Widget:focusable

Whether this widget itself will accept the input focus.

###### Gtk.Widget:halign

How to distribute horizontal space if widget gets extra space.

###### Gtk.Widget:has-default

Whether the widget is the default widget.

###### Gtk.Widget:has-focus

Whether the widget has the input focus.

###### Gtk.Widget:has-tooltip

Enables or disables the emission of the ::query-tooltip signal on `widget`.

###### Gtk.Widget:height-request

Override for height request of the widget.

###### Gtk.Widget:hexpand

Whether to expand horizontally.

###### Gtk.Widget:hexpand-set

Whether to use the `hexpand` property.

###### Gtk.Widget:layout-manager

The `GtkLayoutManager` instance to use to compute the preferred size of the widget, and allocate its children.

###### Gtk.Widget:margin-bottom

Margin on bottom side of widget.

###### Gtk.Widget:margin-end

Margin on end of widget, horizontally.

###### Gtk.Widget:margin-start

Margin on start of widget, horizontally.

###### Gtk.Widget:margin-top

Margin on top side of widget.

###### Gtk.Widget:name

The name of the widget.

###### Gtk.Widget:opacity

The requested opacity of the widget.

###### Gtk.Widget:overflow

How content outside the widget’s content area is treated.

###### Gtk.Widget:parent

The parent widget of this widget.

###### Gtk.Widget:receives-default

Whether the widget will receive the default action when it is focused.

###### Gtk.Widget:root

The `GtkRoot` widget of the widget tree containing this widget.

###### Gtk.Widget:scale-factor

The scale factor of the widget.

###### Gtk.Widget:sensitive

Whether the widget responds to input.

###### Gtk.Widget:tooltip-markup

Sets the text of tooltip to be the given string, which is marked up with Pango markup.

###### Gtk.Widget:tooltip-text

Sets the text of tooltip to be the given string.

###### Gtk.Widget:valign

How to distribute vertical space if widget gets extra space.

###### Gtk.Widget:vexpand

Whether to expand vertically.

###### Gtk.Widget:vexpand-set

Whether to use the `vexpand` property.

###### Gtk.Widget:visible

Whether the widget is visible.

###### Gtk.Widget:width-request

Override for width request of the widget.

##### Properties inherited from GtkAccessible (1)

###### Gtk.Accessible:accessible-role

The accessible role of the given `GtkAccessible` implementation.

#### Signals

##### Signals inherited from GtkWidget (13)

###### GtkWidget::destroy

Signals that all holders of a reference to the widget should release the reference that they hold.

###### GtkWidget::direction-changed

Emitted when the text direction of a widget changes.

###### GtkWidget::hide

Emitted when `widget` is hidden.

###### GtkWidget::keynav-failed

Emitted if keyboard navigation fails.

###### GtkWidget::map

Emitted when `widget` is going to be mapped.

###### GtkWidget::mnemonic-activate

Emitted when a widget is activated via a mnemonic.

###### GtkWidget::move-focus

Emitted when the focus is moved.

###### GtkWidget::query-tooltip

Emitted when the widget’s tooltip is about to be shown.

###### GtkWidget::realize

Emitted when `widget` is associated with a `GdkSurface`.

###### GtkWidget::show

Emitted when `widget` is shown.

###### GtkWidget::state-flags-changed

Emitted when the widget state changes.

###### GtkWidget::unmap

Emitted when `widget` is going to be unmapped.

###### GtkWidget::unrealize

Emitted when the `GdkSurface` associated with `widget` is destroyed.

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct AdwHeaderBarClass {
      GtkWidgetClass parent_class;

    }

No description available.

###### Class members

`parent_class: GtkWidgetClass`

  No description available.