adw.header_bar

Module for [HeaderBar] class

Types 3

A title bar widget.

header-bar

[adw.header_bar.HeaderBar] is similar to [gtk.header_bar.HeaderBar], but provides additional features compared to it. Refer to [gtk.header_bar.HeaderBar] for details. It is typically used as a top bar within class@ToolbarView.

Dialog Integration

When placed inside an class@Dialog, [adw.header_bar.HeaderBar] 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:show-start-title-buttons and property@HeaderBar:show-end-title-buttons to FALSE to remove it if it's unwanted.

Navigation View Integration

When placed inside an class@NavigationPage, [adw.header_bar.HeaderBar] 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: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, [adw.header_bar.HeaderBar] will automatically hide the title buttons other than at the edges of the window.

Centering Policy

property@HeaderBar:centering-policy allows to enforce strict centering of the title widget. This can be useful for entries inside class@Clamp.

Title Buttons

Unlike [gtk.header_bar.HeaderBar], [adw.header_bar.HeaderBar] allows to toggle title button visibility for each side individually, using the property@HeaderBar:show-start-title-buttons and property@HeaderBar: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

[adw.header_bar.HeaderBar]'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 [gtk.window_controls.WindowControls] for details, as well as other children.

When property@HeaderBar: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

[adw.header_bar.HeaderBar] uses the [gtk.types.AccessibleRole.Group] role.

Methods
GType _gType() @property
HeaderBar self()Returns `this`, for use in `with` statements.
HeaderBarGidBuilder builder()Get builder for [adw.header_bar.HeaderBar] Returns: New builder object
adw.types.CenteringPolicy centeringPolicy() @propertyGet `centeringPolicy` property. Returns: The policy for aligning the center widget.
void centeringPolicy(adw.types.CenteringPolicy propval) @propertySet `centeringPolicy` property. Params: propval = The policy for aligning the center widget.
string decorationLayout() @propertyGet `decorationLayout` property. Returns: The decoration layout for buttons.
void decorationLayout(string propval) @propertySet `decorationLayout` property. Params: propval = The decoration layout for buttons.
bool showBackButton() @propertyGet `showBackButton` property. Returns: Whether the header bar can show the back button.
void showBackButton(bool propval) @propertySet `showBackButton` property. Params: propval = Whether the header bar can show the back button.
bool showEndTitleButtons() @propertyGet `showEndTitleButtons` property. Returns: Whether to show title buttons at the end of the header bar.
void showEndTitleButtons(bool propval) @propertySet `showEndTitleButtons` property. Params: propval = Whether to show title buttons at the end of the header bar.
bool showStartTitleButtons() @propertyGet `showStartTitleButtons` property. Returns: Whether to show title buttons at the start of the header bar.
void showStartTitleButtons(bool propval) @propertySet `showStartTitleButtons` property. Params: propval = Whether to show title buttons at the start of the header bar.
bool showTitle() @propertyGet `showTitle` property. Returns: Whether the title widget should be shown.
void showTitle(bool propval) @propertySet `showTitle` property. Params: propval = Whether the title widget should be shown.
gtk.widget.Widget titleWidget() @propertyGet `titleWidget` property. Returns: The title widget to display.
void titleWidget(gtk.widget.Widget propval) @propertySet `titleWidget` property. Params: propval = The title widget to display.
adw.types.CenteringPolicy getCenteringPolicy()Gets the policy for aligning the center widget. Returns: the centering policy
string getDecorationLayout()Gets the decoration layout for self. Returns: the decoration layout
bool getShowBackButton()Gets whether self can show the back button. Returns: whether to show the back button
bool getShowEndTitleButtons()Gets whether to show title buttons at the end of self. Returns: `TRUE` if title buttons at the end are shown
bool getShowStartTitleButtons()Gets whether to show title buttons at the start of self. Returns: `TRUE` if title buttons at the start are shown
bool getShowTitle()Gets whether the title widget should be shown. Returns: whether the title widget should be shown.
gtk.widget.Widget getTitleWidget()Gets the title widget widget of self. Returns: the title widget
void packEnd(gtk.widget.Widget child)Adds child to self, packed with reference to the end of self.
void packStart(gtk.widget.Widget child)Adds child to self, packed with reference to the start of the self.
void remove(gtk.widget.Widget child)Removes a child from self.
void setCenteringPolicy(adw.types.CenteringPolicy centeringPolicy)Sets the policy for aligning the center widget.
void setDecorationLayout(string layout = null)Sets the decoration layout for self.
void setShowBackButton(bool showBackButton)Sets whether self can show the back button.
void setShowEndTitleButtons(bool setting)Sets whether to show title buttons at the end of self.
void setShowStartTitleButtons(bool setting)Sets whether to show title buttons at the start of self.
void setShowTitle(bool showTitle)Sets whether the title widget should be shown.
void setTitleWidget(gtk.widget.Widget titleWidget = null)Sets the title widget for self.
Constructors
this(void * ptr, Flag!"Take" take)
this()Creates a new [adw.headerbar.HeaderBar]. Returns: the newly created [adw.headerbar.HeaderBar].
Methods
T centeringPolicy(adw.types.CenteringPolicy propval)Set `centeringPolicy` property. Params: propval = The policy for aligning the center widget. Returns: Builder instance for fluent chaining
T decorationLayout(string propval)Set `decorationLayout` property. Params: propval = The decoration layout for buttons.
T showBackButton(bool propval)Set `showBackButton` property. Params: propval = Whether the header bar can show the back button.
T showEndTitleButtons(bool propval)Set `showEndTitleButtons` property. Params: propval = Whether to show title buttons at the end of the header bar.
T showStartTitleButtons(bool propval)Set `showStartTitleButtons` property. Params: propval = Whether to show title buttons at the start of the header bar.
T showTitle(bool propval)Set `showTitle` property. Params: propval = Whether the title widget should be shown. Returns: Builder instance for fluent chaining
T titleWidget(gtk.widget.Widget propval)Set `titleWidget` property. Params: propval = The title widget to display.

Fluent builder for [adw.header_bar.HeaderBar]

Methods