Klasse HeaderBar

Alle implementierten Schnittstellen:
PointerInterface

public class HeaderBar extends Widget
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 instead 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], `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: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.

## Bottom Sheet Integration

When played inside [class@BottomSheet], `AdwHeaderBar` will not show the title
unless [property@BottomSheet:show-drag-handle] is set to `FALSE`, regardless
of [property@HeaderBar:show-title]. This only applies to the default title,
titles set with [property@HeaderBar:title-widget] will still be shown.

## 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 `GtkHeaderBar`, `AdwHeaderBar` 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
```

`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
[class@Gtk.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

`AdwHeaderBar` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role.

https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.HeaderBar.html

  • Konstruktordetails

    • HeaderBar

      public HeaderBar(PointerContainer pointer)
    • HeaderBar

      public HeaderBar()
      Creates a new `AdwHeaderBar`.
  • Methodendetails

    • getClassHandler

      public static ClassHandler getClassHandler()
    • getCenteringPolicy

      public int getCenteringPolicy()
      Gets the policy for aligning the center widget.
      Gibt zurück:
      the centering policy
    • getDecorationLayout

      public Str getDecorationLayout()
      Gets the decoration layout for @self.
      Gibt zurück:
      the decoration layout
    • getShowBackButton

      public boolean getShowBackButton()
      Gets whether @self can show the back button.
      Gibt zurück:
      whether to show the back button
    • getShowEndTitleButtons

      public boolean getShowEndTitleButtons()
      Gets whether to show title buttons at the end of @self.
      Gibt zurück:
      `TRUE` if title buttons at the end are shown
    • getShowStartTitleButtons

      public boolean getShowStartTitleButtons()
      Gets whether to show title buttons at the start of @self.
      Gibt zurück:
      `TRUE` if title buttons at the start are shown
    • getShowTitle

      public boolean getShowTitle()
      Gets whether the title widget should be shown.
      Gibt zurück:
      whether the title widget should be shown.
    • getTitleWidget

      public Widget getTitleWidget()
      Gets the title widget widget of @self.
      Gibt zurück:
      the title widget
    • packEnd

      public void packEnd(@Nonnull Widget child)
      Adds @child to @self, packed with reference to the end of @self.
      Parameter:
      child - the widget to be added to @self
    • packStart

      public void packStart(@Nonnull Widget child)
      Adds @child to @self, packed with reference to the start of the @self.
      Parameter:
      child - the widget to be added to @self
    • remove

      public void remove(@Nonnull Widget child)
      Removes a child from @self.

      The child must have been added with [method@HeaderBar.pack_start],
      [method@HeaderBar.pack_end] or [property@HeaderBar:title-widget].
      Parameter:
      child - the child to remove
    • setCenteringPolicy

      public void setCenteringPolicy(int centering_policy)
      Sets the policy for aligning the center widget.
      Parameter:
      centering_policy - the centering policy
    • setDecorationLayout

      public void setDecorationLayout(@Nullable Str 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.
      Parameter:
      layout - a decoration layout
    • setDecorationLayout

      public void setDecorationLayout(String 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.
      Parameter:
      layout - a decoration layout
    • setShowBackButton

      public void setShowBackButton(boolean show_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`.
      Parameter:
      show_back_button - whether to show the back button
    • setShowEndTitleButtons

      public void setShowEndTitleButtons(boolean setting)
      Sets whether to show title buttons at the end of @self.

      See [property@HeaderBar:show-start-title-buttons] for the other side.

      Which buttons are actually shown and where is determined by the
      [property@HeaderBar: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).
      Parameter:
      setting - `TRUE` to show standard title buttons
    • setShowStartTitleButtons

      public void setShowStartTitleButtons(boolean setting)
      Sets whether to show title buttons at the start of @self.

      See [property@HeaderBar:show-end-title-buttons] for the other side.

      Which buttons are actually shown and where is determined by the
      [property@HeaderBar: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).
      Parameter:
      setting - `TRUE` to show standard title buttons
    • setShowTitle

      public void setShowTitle(boolean show_title)
      Sets whether the title widget should be shown.
      Parameter:
      show_title - whether the title widget is visible
    • setTitleWidget

      public void setTitleWidget(@Nullable Widget title_widget)
      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
      <object class="AdwHeaderBar">
      <property name="title-widget">
      <object class="AdwWindowTitle">
      <property name="title" translatable="yes">Title</property>
      </object>
      </property>
      </object>
      ```
      Parameter:
      title_widget - a widget to use for a title
    • asAccessible

      public Accessible asAccessible()
      Implements interface Accessible. Call this to get access to interface functions.
      Setzt außer Kraft:
      asAccessible in Klasse Widget
      Gibt zurück:
      Accessible
    • asBuildable

      public Buildable asBuildable()
      Implements interface Buildable. Call this to get access to interface functions.
      Setzt außer Kraft:
      asBuildable in Klasse Widget
      Gibt zurück:
      Buildable
    • asConstraintTarget

      public ConstraintTarget asConstraintTarget()
      Implements interface ConstraintTarget. Call this to get access to interface functions.
      Setzt außer Kraft:
      asConstraintTarget in Klasse Widget
      Gibt zurück:
      ConstraintTarget
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()