david-swift 4937c36b3b Improve updating performance
And update docs reflecting the changes in the latest commits
2024-01-27 08:07:05 +01:00

7.7 KiB

STRUCT

ToolbarView

A widget containing a page, as well as top and/or bottom bars.

toolbar-view

AdwToolbarView has a single content widget and one or multiple top and bottom bars, shown at the top and bottom sides respectively.

Example of an AdwToolbarView UI definition:

<object class="AdwToolbarView"><child type="top"><object class="AdwHeaderBar"/></child><property name="content"><object class="AdwPreferencesPage"><!-- ... --></object></property></object>

The following kinds of top and bottom bars are supported:

By default, top and bottom bars are flat and scrolling content has a subtle undershoot shadow, same as when using the .undershoot-top and .undershoot-bottom style classes. This works well in most cases, e.g. with [class@StatusPage] or [class@PreferencesPage], where the background at the top and bottom parts of the page is uniform. Additionally, windows with sidebars should always use this style.

[property@ToolbarView:top-bar-style] and [property@ToolbarView:bottom-bar-style] properties can be used add an opaque background and a persistent shadow to top and bottom bars, this can be useful for content such as utility panes, where some elements are adjacent to the top/bottom bars, or [class@TabView], where each page can have a different background.

toolbar-view-flat-1toolbar-view-flat-2toolbar-view-raised

AdwToolbarView ensures the top and bottom bars have consistent backdrop styles and vertical spacing. For comparison:

toolbar-view-spacingtoolbar-view-spacing-box

Any top and bottom bars can also be dragged to move the window, equivalent to putting them into a [class@Gtk.WindowHandle].

Content is typically place between top and bottom bars, but can also extend behind them. This is controlled with the [property@ToolbarView:extend-content-to-top-edge] and [property@ToolbarView:extend-content-to-bottom-edge] properties.

Top and bottom bars can be hidden and revealed with an animation using the [property@ToolbarView:reveal-top-bars] and [property@ToolbarView:reveal-bottom-bars] properties.

AdwToolbarView as GtkBuildable

The AdwToolbarView implementation of the [iface@Gtk.Buildable] interface supports adding a top bar by specifying “top” as the “type” attribute of a <child> element, or adding a bottom bar by specifying “bottom”.

Accessibility

AdwToolbarView uses the GTK_ACCESSIBLE_ROLE_GROUP role.

Properties

updateFunctions

Additional update functions for type extensions.

appearFunctions

Additional appear functions for type extensions.

bottomBarHeight

The current bottom bar height.

Bottom bar height does change depending on [property@ToolbarView:reveal-bottom-bars], including during the transition.

See [property@ToolbarView:top-bar-height].

content

The content widget.

extendContentToBottomEdge

Whether the content widget can extend behind bottom bars.

This can be used in combination with [property@ToolbarView:reveal-bottom-bars] to show and hide toolbars in fullscreen.

See [property@ToolbarView:extend-content-to-top-edge].

extendContentToTopEdge

Whether the content widget can extend behind top bars.

This can be used in combination with [property@ToolbarView:reveal-top-bars] to show and hide toolbars in fullscreen.

See [property@ToolbarView:extend-content-to-bottom-edge].

revealBottomBars

Whether bottom bars are visible.

The transition will be animated.

This can be used in combination with [property@ToolbarView:extend-content-to-bottom-edge] to show and hide toolbars in fullscreen.

See [property@ToolbarView:reveal-top-bars].

revealTopBars

Whether top bars are revealed.

The transition will be animated.

This can be used in combination with [property@ToolbarView:extend-content-to-top-edge] to show and hide toolbars in fullscreen.

See [property@ToolbarView:reveal-bottom-bars].

topBarHeight

The current top bar height.

Top bar height does change depending [property@ToolbarView:reveal-top-bars], including during the transition.

See [property@ToolbarView:bottom-bar-height].

bottom

The body for the widget "bottom".

top

The body for the widget "top".

app

The application.

window

The window.

Methods

init()

Initialize ToolbarView.

container(modifiers:)

Get the widget's view storage.

  • Parameter modifiers: The view modifiers.
  • Returns: The view storage.

update(_:modifiers:updateProperties:)

Update the widget's view storage.

  • Parameters:
    • storage: The view storage.
    • modifiers: The view modifiers.
    • updateProperties: Whether to update the view's properties.

bottomBarHeight(_:)

The current bottom bar height.

Bottom bar height does change depending on [property@ToolbarView:reveal-bottom-bars], including during the transition.

See [property@ToolbarView:top-bar-height].

content(_:)

The content widget.

extendContentToBottomEdge(_:)

Whether the content widget can extend behind bottom bars.

This can be used in combination with [property@ToolbarView:reveal-bottom-bars] to show and hide toolbars in fullscreen.

See [property@ToolbarView:extend-content-to-top-edge].

extendContentToTopEdge(_:)

Whether the content widget can extend behind top bars.

This can be used in combination with [property@ToolbarView:reveal-top-bars] to show and hide toolbars in fullscreen.

See [property@ToolbarView:extend-content-to-bottom-edge].

revealBottomBars(_:)

Whether bottom bars are visible.

The transition will be animated.

This can be used in combination with [property@ToolbarView:extend-content-to-bottom-edge] to show and hide toolbars in fullscreen.

See [property@ToolbarView:reveal-top-bars].

revealTopBars(_:)

Whether top bars are revealed.

The transition will be animated.

This can be used in combination with [property@ToolbarView:extend-content-to-top-edge] to show and hide toolbars in fullscreen.

See [property@ToolbarView:reveal-bottom-bars].

topBarHeight(_:)

The current top bar height.

Top bar height does change depending [property@ToolbarView:reveal-top-bars], including during the transition.

See [property@ToolbarView:bottom-bar-height].

bottom(_:)

Set the body for "bottom".

  • Parameter body: The body.
  • Returns: The widget.

top(_:)

Set the body for "top".

  • Parameter body: The body.
  • Returns: The widget.