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 adw.toolbar_view.ToolbarView.

Dialog Integration

When placed inside an adw.dialog.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 adw.header_bar.HeaderBar.showStartTitleButtons and adw.header_bar.HeaderBar.showEndTitleButtons to FALSE to remove it if it's unwanted.

Navigation View Integration

When placed inside an adw.navigation_page.NavigationPage, adw.header_bar.HeaderBar will display the page title instead of window title.

When used together with adw.navigation_view.NavigationView or adw.navigation_split_view.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 adw.header_bar.HeaderBar.showBackButton to FALSE to disable this behavior in rare scenarios where it's unwanted.

Split View Integration

When placed inside adw.navigation_split_view.NavigationSplitView or adw.overlay_split_view.OverlaySplitView, adw.header_bar.HeaderBar will automatically hide the title buttons other than at the edges of the window.

Centering Policy

adw.header_bar.HeaderBar.centeringPolicy allows to enforce strict centering of the title widget. This can be useful for entries inside adw.clamp.Clamp.

Title Buttons

Unlike gtk.header_bar.HeaderBar, adw.header_bar.HeaderBar allows to toggle title button visibility for each side individually, using the adw.header_bar.HeaderBar.showStartTitleButtons and adw.header_bar.HeaderBar.showEndTitleButtons 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 adw.header_bar.HeaderBar.showBackButton 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 _getGType() static nothrow
GType _gType() @property nothrow
HeaderBar self() nothrowReturns `this`, for use in `with` statements.
HeaderBarGidBuilder builder() static nothrowGet builder for [adw.header_bar.HeaderBar] Returns: New builder object
adw.types.CenteringPolicy centeringPolicy() @property nothrowGet `centeringPolicy` property. Returns: The policy for aligning the center widget.
void centeringPolicy(adw.types.CenteringPolicy propval) @property nothrowSet `centeringPolicy` property. Params: propval = The policy for aligning the center widget.
string decorationLayout() @property nothrowGet `decorationLayout` property. Returns: The decoration layout for buttons.
void decorationLayout(string propval) @property nothrowSet `decorationLayout` property. Params: propval = The decoration layout for buttons.
bool showBackButton() @property nothrowGet `showBackButton` property. Returns: Whether the header bar can show the back button.
void showBackButton(bool propval) @property nothrowSet `showBackButton` property. Params: propval = Whether the header bar can show the back button.
bool showEndTitleButtons() @property nothrowGet `showEndTitleButtons` property. Returns: Whether to show title buttons at the end of the header bar.
void showEndTitleButtons(bool propval) @property nothrowSet `showEndTitleButtons` property. Params: propval = Whether to show title buttons at the end of the header bar.
bool showStartTitleButtons() @property nothrowGet `showStartTitleButtons` property. Returns: Whether to show title buttons at the start of the header bar.
void showStartTitleButtons(bool propval) @property nothrowSet `showStartTitleButtons` property. Params: propval = Whether to show title buttons at the start of the header bar.
bool showTitle() @property nothrowGet `showTitle` property. Returns: Whether the title widget should be shown.
void showTitle(bool propval) @property nothrowSet `showTitle` property. Params: propval = Whether the title widget should be shown.
gtk.widget.Widget titleWidget() @property nothrowGet `titleWidget` property. Returns: The title widget to display.
void titleWidget(gtk.widget.Widget propval) @property nothrowSet `titleWidget` property. Params: propval = The title widget to display.
adw.types.CenteringPolicy getCenteringPolicy() nothrowGets the policy for aligning the center widget. Returns: the centering policy
string getDecorationLayout() nothrowGets the decoration layout for self. Returns: the decoration layout
bool getShowBackButton() nothrowGets whether self can show the back button. Returns: whether to show the back button
bool getShowEndTitleButtons() nothrowGets whether to show title buttons at the end of self. Returns: `TRUE` if title buttons at the end are shown
bool getShowStartTitleButtons() nothrowGets whether to show title buttons at the start of self. Returns: `TRUE` if title buttons at the start are shown
bool getShowTitle() nothrowGets whether the title widget should be shown. Returns: whether the title widget should be shown.
gtk.widget.Widget getTitleWidget() nothrowGets the title widget widget of self. Returns: the title widget
void packEnd(gtk.widget.Widget child) nothrowAdds child to self, packed with reference to the end of self.
void packStart(gtk.widget.Widget child) nothrowAdds child to self, packed with reference to the start of the self.
void remove(gtk.widget.Widget child) nothrowRemoves a child from self.
void setCenteringPolicy(adw.types.CenteringPolicy centeringPolicy) nothrowSets the policy for aligning the center widget.
void setDecorationLayout(string layout = null) nothrowSets the decoration layout for self.
void setShowBackButton(bool showBackButton) nothrowSets whether self can show the back button.
void setShowEndTitleButtons(bool setting) nothrowSets whether to show title buttons at the end of self.
void setShowStartTitleButtons(bool setting) nothrowSets whether to show title buttons at the start of self.
void setShowTitle(bool showTitle) nothrowSets whether the title widget should be shown.
void setTitleWidget(gtk.widget.Widget titleWidget = null) nothrowSets the title widget for self.
Constructors
this(void * ptr, Flag!"Take" take)
this()Creates a new [adw.header_bar.HeaderBar]. Returns: the newly created [adw.header_bar.HeaderBar].

Fluent builder implementation template for adw.header_bar.HeaderBar

Methods
T centeringPolicy(adw.types.CenteringPolicy propval) nothrowSet `centeringPolicy` property. Params: propval = The policy for aligning the center widget. Returns: Builder instance for fluent chaining
T decorationLayout(string propval) nothrowSet `decorationLayout` property. Params: propval = The decoration layout for buttons.
T showBackButton(bool propval) nothrowSet `showBackButton` property. Params: propval = Whether the header bar can show the back button.
T showEndTitleButtons(bool propval) nothrowSet `showEndTitleButtons` property. Params: propval = Whether to show title buttons at the end of the header bar.
T showStartTitleButtons(bool propval) nothrowSet `showStartTitleButtons` property. Params: propval = Whether to show title buttons at the start of the header bar.
T showTitle(bool propval) nothrowSet `showTitle` property. Params: propval = Whether the title widget should be shown. Returns: Builder instance for fluent chaining
T titleWidget(gtk.widget.Widget propval) nothrowSet `titleWidget` property. Params: propval = The title widget to display.

Fluent builder for adw.header_bar.HeaderBar

Methods
HeaderBar build() nothrowCreate object from builder. Returns: New object