Adw.HeaderBar

g Adw.HeaderBar Adw.HeaderBar GObject.GInterface GObject.GInterface Gtk.Accessible Gtk.Accessible GObject.GInterface->Gtk.Accessible Gtk.Buildable Gtk.Buildable GObject.GInterface->Gtk.Buildable Gtk.ConstraintTarget Gtk.ConstraintTarget GObject.GInterface->Gtk.ConstraintTarget GObject.InitiallyUnowned GObject.InitiallyUnowned Gtk.Widget Gtk.Widget GObject.InitiallyUnowned->Gtk.Widget GObject.Object GObject.Object GObject.Object->GObject.InitiallyUnowned Gtk.Accessible->Gtk.Widget Gtk.Buildable->Gtk.Widget Gtk.ConstraintTarget->Gtk.Widget Gtk.Widget->Adw.HeaderBar

Subclasses:

None

Methods

Inherited:

Gtk.Widget (181), GObject.Object (37), Gtk.Accessible (15), Gtk.Buildable (1)

Structs:

Gtk.WidgetClass (18), GObject.ObjectClass (5)

class

new ()

get_centering_policy ()

get_decoration_layout ()

get_show_back_button ()

get_show_end_title_buttons ()

get_show_start_title_buttons ()

get_show_title ()

get_title_widget ()

pack_end (child)

pack_start (child)

remove (child)

set_centering_policy (centering_policy)

set_decoration_layout (layout)

set_show_back_button (show_back_button)

set_show_end_title_buttons (setting)

set_show_start_title_buttons (setting)

set_show_title (show_title)

set_title_widget (title_widget)

Virtual Methods

Inherited:

Gtk.Widget (25), GObject.Object (7), Gtk.Accessible (6), Gtk.Buildable (9)

Properties

Inherited:

Gtk.Widget (34), Gtk.Accessible (1)

Name

Type

Flags

Short Description

centering-policy

Adw.CenteringPolicy

r/w/en

decoration-layout

str

r/w/en

show-back-button

bool

r/w/en

show-end-title-buttons

bool

r/w/en

show-start-title-buttons

bool

r/w/en

show-title

bool

r/w/en

title-widget

Gtk.Widget

r/w/en

Signals

Inherited:

Gtk.Widget (13), GObject.Object (1)

Fields

Inherited:

Gtk.Widget (13), GObject.Object (1)

Class Details

class Adw.HeaderBar(**kwargs)
Bases:

Gtk.Widget

Abstract:

No

Structure:

Adw.HeaderBarClass

A title bar widget.

<picture> <source srcset=”header-bar-dark.png” media=”(prefers-color-scheme: dark)”> <img src=”header-bar.png” alt=”header-bar”> </picture>

AdwHeaderBar is similar to [class`Gtk`.HeaderBar], but provides additional features compared to it. Refer to GtkHeaderBar for details. It is typically used as a top bar within [class`ToolbarView`].

Dialog Integration

When placed inside an [class`Dialog`], AdwHeaderBar will display the dialog title intead of window title. It will also adjust the decoration layout to ensure it always has a close button and nothing else. Set [property`HeaderBar`:py:data::show-start-title-buttons<Adw.HeaderBar.props.show_start_title_buttons>] and [property`HeaderBar`:py:data::show-end-title-buttons<Adw.HeaderBar.props.show_end_title_buttons>] to FALSE to remove it if it’s unwanted.

Navigation View Integration

When placed inside an [class`NavigationPage`], AdwHeaderBar will display the page title instead of window title.

When used together with [class`NavigationView`] or [class`NavigationSplitView`], 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.

Set [property`HeaderBar`:py:data::show-back-button<Adw.HeaderBar.props.show_back_button>] to FALSE to disable this behavior in rare scenarios where it’s unwanted.

Split View Integration

When placed inside [class`NavigationSplitView`] or [class`OverlaySplitView`], AdwHeaderBar will automatically hide the title buttons other than at the edges of the window.

Centering Policy

[property`HeaderBar`:py:data::centering-policy<Adw.HeaderBar.props.centering_policy>] allows to enforce strict centering of the title widget. This can be useful for entries inside [class`Clamp`].

Title Buttons

Unlike GtkHeaderBar, AdwHeaderBar allows to toggle title button visibility for each side individually, using the [property`HeaderBar`:py:data::show-start-title-buttons<Adw.HeaderBar.props.show_start_title_buttons>] and [property`HeaderBar`:py:data::show-end-title-buttons<Adw.HeaderBar.props.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 [class`Gtk`.WindowControls] for details, as well as other children.

When [property`HeaderBar`:py:data::show-back-button<Adw.HeaderBar.props.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.

classmethod new()
Returns:

the newly created AdwHeaderBar.

Return type:

Gtk.Widget

Creates a new AdwHeaderBar.

get_centering_policy()
Returns:

the centering policy

Return type:

Adw.CenteringPolicy

Gets the policy for aligning the center widget.

get_decoration_layout()
Returns:

the decoration layout

Return type:

str or None

Gets the decoration layout for self.

get_show_back_button()
Returns:

whether to show the back button

Return type:

bool

Gets whether self can show the back button.

New in version 1.4.

get_show_end_title_buttons()
Returns:

TRUE if title buttons at the end are shown

Return type:

bool

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

get_show_start_title_buttons()
Returns:

TRUE if title buttons at the start are shown

Return type:

bool

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

get_show_title()
Returns:

whether the title widget should be shown.

Return type:

bool

Gets whether the title widget should be shown.

New in version 1.4.

get_title_widget()
Returns:

the title widget

Return type:

Gtk.Widget or None

Gets the title widget widget of self.

pack_end(child)
Parameters:

child (Gtk.Widget) – the widget to be added to self

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

pack_start(child)
Parameters:

child (Gtk.Widget) – the widget to be added to self

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

remove(child)
Parameters:

child (Gtk.Widget) – the child to remove

Removes a child from self.

The child must have been added with [method`HeaderBar`.pack_start], [method`HeaderBar`.pack_end] or [property`HeaderBar`:py:data::title-widget<Adw.HeaderBar.props.title_widget>].

set_centering_policy(centering_policy)
Parameters:

centering_policy (Adw.CenteringPolicy) – the centering policy

Sets the policy for aligning the center widget.

set_decoration_layout(layout)
Parameters:

layout (str or None) – a decoration layout

Sets the decoration layout for self.

If this property is not set, the [property`Gtk`.Settings:gtk-decoration-layout] setting is used.

The format of the string is button names, separated by commas. A colon separates the buttons that should appear at the start from those at the end. Recognized button names are minimize, maximize, close and icon (the window icon).

For example, “icon:minimize,maximize,close” specifies an icon at the start, and minimize, maximize and close buttons at the end.

set_show_back_button(show_back_button)
Parameters:

show_back_button (bool) – whether to show the back button

Sets whether self can show the back button.

The back button will never be shown unless the header bar is placed inside an [class`NavigationView`]. Usually, there is no reason to set it to FALSE.

New in version 1.4.

set_show_end_title_buttons(setting)
Parameters:

setting (bool) – TRUE to show standard title buttons

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

See [property`HeaderBar`:py:data::show-start-title-buttons<Adw.HeaderBar.props.show_start_title_buttons>] for the other side.

Which buttons are actually shown and where is determined by the [property`HeaderBar`:py:data::decoration-layout<Adw.HeaderBar.props.decoration_layout>] property, and by the state of the window (e.g. a close button will not be shown if the window can’t be closed).

set_show_start_title_buttons(setting)
Parameters:

setting (bool) – TRUE to show standard title buttons

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

See [property`HeaderBar`:py:data::show-end-title-buttons<Adw.HeaderBar.props.show_end_title_buttons>] for the other side.

Which buttons are actually shown and where is determined by the [property`HeaderBar`:py:data::decoration-layout<Adw.HeaderBar.props.decoration_layout>] property, and by the state of the window (e.g. a close button will not be shown if the window can’t be closed).

set_show_title(show_title)
Parameters:

show_title (bool) – whether the title widget is visible

Sets whether the title widget should be shown.

New in version 1.4.

set_title_widget(title_widget)
Parameters:

title_widget (Gtk.Widget or None) – a widget to use for a title

Sets the title widget for self.

When set to NULL, the header bar will display the title of the window it is contained in.

To use a different title, use [class`WindowTitle`]:

```xml

Title </object>

/object ```

Property Details

Adw.HeaderBar.props.centering_policy
Name:

centering-policy

Type:

Adw.CenteringPolicy

Default Value:

Adw.CenteringPolicy.LOOSE

Flags:

READABLE, WRITABLE, EXPLICIT_NOTIFY

The policy for aligning the center widget.

Adw.HeaderBar.props.decoration_layout
Name:

decoration-layout

Type:

str

Default Value:

None

Flags:

READABLE, WRITABLE, EXPLICIT_NOTIFY

The decoration layout for buttons.

If this property is not set, the [property`Gtk`.Settings:gtk-decoration-layout] setting is used.

The format of the string is button names, separated by commas. A colon separates the buttons that should appear at the start from those at the end. Recognized button names are minimize, maximize, close and icon (the window icon).

For example, “icon:minimize,maximize,close” specifies an icon at the start, and minimize, maximize and close buttons at the end.

Adw.HeaderBar.props.show_back_button
Name:

show-back-button

Type:

bool

Default Value:

True

Flags:

READABLE, WRITABLE, EXPLICIT_NOTIFY

Whether the header bar can show the back button.

The back button will never be shown unless the header bar is placed inside an [class`NavigationView`]. Usually, there is no reason to set this to FALSE.

New in version 1.4.

Adw.HeaderBar.props.show_end_title_buttons
Name:

show-end-title-buttons

Type:

bool

Default Value:

True

Flags:

READABLE, WRITABLE, EXPLICIT_NOTIFY

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

See [property`HeaderBar`:py:data::show-start-title-buttons<Adw.HeaderBar.props.show_start_title_buttons>] for the other side.

Which buttons are actually shown and where is determined by the [property`HeaderBar`:py:data::decoration-layout<Adw.HeaderBar.props.decoration_layout>] property, and by the state of the window (e.g. a close button will not be shown if the window can’t be closed).

Adw.HeaderBar.props.show_start_title_buttons
Name:

show-start-title-buttons

Type:

bool

Default Value:

True

Flags:

READABLE, WRITABLE, EXPLICIT_NOTIFY

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

See [property`HeaderBar`:py:data::show-end-title-buttons<Adw.HeaderBar.props.show_end_title_buttons>] for the other side.

Which buttons are actually shown and where is determined by the [property`HeaderBar`:py:data::decoration-layout<Adw.HeaderBar.props.decoration_layout>] property, and by the state of the window (e.g. a close button will not be shown if the window can’t be closed).

Adw.HeaderBar.props.show_title
Name:

show-title

Type:

bool

Default Value:

True

Flags:

READABLE, WRITABLE, EXPLICIT_NOTIFY

Whether the title widget should be shown.

New in version 1.4.

Adw.HeaderBar.props.title_widget
Name:

title-widget

Type:

Gtk.Widget

Default Value:

None

Flags:

READABLE, WRITABLE, EXPLICIT_NOTIFY

The title widget to display.

When set to NULL, the header bar will display the title of the window it is contained in.

To use a different title, use [class`WindowTitle`]:

```xml

Title </object>

/object ```