HeaderBar#

class HeaderBar(**properties: Any)#

Superclasses: Widget, InitiallyUnowned, Object

Implemented Interfaces: Accessible, Buildable, ConstraintTarget

A title bar widget.

https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/header-bar.png

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

Dialog Integration#

When placed inside an Dialog, AdwHeaderBar will display the dialog title instead of window title. It will also adjust the decoration layout to ensure it always has a close button and nothing else. Set show_start_title_buttons and show_end_title_buttons to FALSE to remove it if it’s unwanted.

Split View Integration#

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

Bottom Sheet Integration#

When played inside BottomSheet, AdwHeaderBar will not show the title unless show_drag_handle is set to FALSE, regardless of show_title. This only applies to the default title, titles set with title_widget will still be shown.

Centering Policy#

centering_policy allows to enforce strict centering of the title widget. This can be useful for entries inside Clamp.

Title Buttons#

Unlike GtkHeaderBar, AdwHeaderBar allows to toggle title button visibility for each side individually, using the show_start_title_buttons and 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 subnodes 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 WindowControls for details, as well as other children.

When 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.

Constructors#

class HeaderBar
classmethod new() Widget#

Creates a new AdwHeaderBar.

Methods#

class HeaderBar
get_centering_policy() CenteringPolicy#

Gets the policy for aligning the center widget.

get_decoration_layout() str | None#

Gets the decoration layout for self.

get_show_back_button() bool#

Gets whether self can show the back button.

Added in version 1.4.

get_show_end_title_buttons() bool#

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

get_show_start_title_buttons() bool#

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

get_show_title() bool#

Gets whether the title widget should be shown.

Added in version 1.4.

get_title_widget() Widget | None#

Gets the title widget widget of self.

pack_end(child: Widget) None#

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

Parameters:

child – the widget to be added to self

pack_start(child: Widget) None#

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

Parameters:

child – the widget to be added to self

remove(child: Widget) None#

Removes a child from self.

The child must have been added with pack_start, pack_end or title_widget.

Parameters:

child – the child to remove

set_centering_policy(centering_policy: CenteringPolicy) None#

Sets the policy for aligning the center widget.

Parameters:

centering_policy – the centering policy

set_decoration_layout(layout: str | None = None) None#

Sets the decoration layout for self.

If this property is not set, the 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.

Parameters:

layout – a decoration layout

set_show_back_button(show_back_button: bool) None#

Sets whether self can show the back button.

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

Added in version 1.4.

Parameters:

show_back_button – whether to show the back button

set_show_end_title_buttons(setting: bool) None#

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

See show_start_title_buttons for the other side.

Which buttons are actually shown and where is determined by the 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).

Parameters:

settingTRUE to show standard title buttons

set_show_start_title_buttons(setting: bool) None#

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

See show_end_title_buttons for the other side.

Which buttons are actually shown and where is determined by the 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).

Parameters:

settingTRUE to show standard title buttons

set_show_title(show_title: bool) None#

Sets whether the title widget should be shown.

Added in version 1.4.

Parameters:

show_title – whether the title widget is visible

set_title_widget(title_widget: Widget | None = None) None#

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 WindowTitle:

<object class="AdwHeaderBar">
  <property name="title-widget">
    <object class="AdwWindowTitle">
      <property name="title" translatable="yes">Title</property>
    </object>
  </property>
</object>
Parameters:

title_widget – a widget to use for a title

Properties#

class HeaderBar
props.centering_policy: CenteringPolicy#

The type of the None singleton.

props.decoration_layout: str#

The type of the None singleton.

props.show_back_button: bool#

The type of the None singleton.

Added in version 1.4.

props.show_end_title_buttons: bool#

The type of the None singleton.

props.show_start_title_buttons: bool#

The type of the None singleton.

props.show_title: bool#

The type of the None singleton.

Added in version 1.4.

props.title_widget: Widget#

The type of the None singleton.