### Class

# Adw WrapBox

since: 1.7

#### Description [src]

    final class Adw.WrapBox : Gtk.Widget
      implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Orientable {
      /* No available fields */
    }

A box-like widget that can wrap into multiple lines.

`AdwWrapBox` is similar to `GtkBox`, but can wrap lines when the widgets cannot fit otherwise. Unlike `GtkFlowBox`, the children aren’t arranged into a grid and behave more like words in a wrapping label.

Like `GtkBox`, `AdwWrapBox` is orientable and has spacing:

- `AdwWrapBox:child-spacing` between children in the same line;
- `AdwWrapBox:line-spacing` between lines.

Note

Unlike `GtkBox`, `AdwWrapBox` cannot follow the CSS `border-spacing` property.

Use the `AdwWrapBox:natural-line-length` property to determine the layout’s natural size, e.g. when using it in a `GtkPopover`.

Normally, a horizontal `AdwWrapBox` wraps left to right and top to bottom for left-to-right languages. Both of these directions can be reversed, using the `AdwWrapBox:pack-direction` and `AdwWrapBox:wrap-reverse` properties. Additionally, the alignment of each line can be controlled with the `AdwWrapBox:align` property.

Lines can be justified using the `AdwWrapBox:justify` property, filling the entire line by either increasing child size or spacing depending on the value. Set `AdwWrapBox:justify-last-line` to justify the last line as well.

By default, `AdwWrapBox` wraps as soon as the previous line cannot fit any more children without shrinking them past their natural size. Set `AdwWrapBox:wrap-policy` to `ADW_WRAP_MINIMUM` to only wrap once all the children in the previous line have been shrunk to their minimum size.

To make each line take the same amount of space, set `AdwWrapBox:line-homogeneous` to `TRUE`.

Spacing and natural line length can scale with the text scale factor, use the `AdwWrapBox:child-spacing-unit`, `AdwWrapBox:line-spacing-unit` and/or `AdwWrapBox:natural-line-length-unit` properties to enable that behavior.

See `AdwWrapLayout`.

## CSS nodes

`AdwWrapBox` uses a single CSS node with name `wrap-box`.

## Accessibility

`AdwWrapBox` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role.

Available since: 1.7

#### Hierarchy

#### Ancestors

- GtkWidget
- GInitiallyUnowned
- GObject

#### Implements

- GtkAccessible
- GtkBuildable
- GtkConstraintTarget
- GtkOrientable

#### Constructors

###### adw_wrap_box_new

Creates a new `AdwWrapBox`.

since: 1.7

#### Instance methods

###### adw_wrap_box_append

Adds `child` as the last child to `self`.

since: 1.7

###### adw_wrap_box_get_align

Gets the alignment of the children within each line.

since: 1.7

###### adw_wrap_box_get_child_spacing

Gets spacing between widgets on the same line.

since: 1.7

###### adw_wrap_box_get_child_spacing_unit

Gets the length unit for child spacing.

since: 1.7

###### adw_wrap_box_get_justify

Gets whether and how each complete line is stretched to fill the entire widget.

since: 1.7

###### adw_wrap_box_get_justify_last_line

Gets whether the last line should be stretched to fill the entire widget.

since: 1.7

###### adw_wrap_box_get_line_homogeneous

Gets whether all lines should take the same amount of space.

since: 1.7

###### adw_wrap_box_get_line_spacing

Gets the spacing between lines.

since: 1.7

###### adw_wrap_box_get_line_spacing_unit

Gets the length unit for line spacing.

since: 1.7

###### adw_wrap_box_get_natural_line_length

Gets the natural size for each line.

since: 1.7

###### adw_wrap_box_get_natural_line_length_unit

Gets the length unit for line spacing.

since: 1.7

###### adw_wrap_box_get_pack_direction

Gets the direction children are packed in each line.

since: 1.7

###### adw_wrap_box_get_wrap_policy

Gets the policy for line wrapping.

since: 1.7

###### adw_wrap_box_get_wrap_reverse

Gets whether wrap direction is reversed.

since: 1.7

###### adw_wrap_box_insert_child_after

Inserts `child` in the position after `sibling` in the list of `self` children.

since: 1.7

###### adw_wrap_box_prepend

Adds `child` as the first child to `self`.

since: 1.7

###### adw_wrap_box_remove

Removes a child widget from `self`.

since: 1.7

###### adw_wrap_box_remove_all

Removes all children from `self`.

since: 1.8

###### adw_wrap_box_reorder_child_after

Moves `child` to the position after `sibling` in the list of `self` children.

since: 1.7

###### adw_wrap_box_set_align

Sets the alignment of the children within each line.

since: 1.7

###### adw_wrap_box_set_child_spacing

Sets the spacing between widgets on the same line.

since: 1.7

###### adw_wrap_box_set_child_spacing_unit

Sets the length unit for child spacing.

since: 1.7

###### adw_wrap_box_set_justify

Determines whether and how each complete line should be stretched to fill the entire widget.

since: 1.7

###### adw_wrap_box_set_justify_last_line

Sets whether the last line should be stretched to fill the entire widget.

since: 1.7

###### adw_wrap_box_set_line_homogeneous

Sets whether all lines should take the same amount of space.

since: 1.7

###### adw_wrap_box_set_line_spacing

Sets the spacing between lines.

since: 1.7

###### adw_wrap_box_set_line_spacing_unit

Sets the length unit for line spacing.

since: 1.7

###### adw_wrap_box_set_natural_line_length

Sets the natural size for each line.

since: 1.7

###### adw_wrap_box_set_natural_line_length_unit

Sets the length unit for natural line length.

since: 1.7

###### adw_wrap_box_set_pack_direction

Sets the direction children are packed in each line.

since: 1.7

###### adw_wrap_box_set_wrap_policy

Sets the policy for line wrapping.

since: 1.7

###### adw_wrap_box_set_wrap_reverse

Sets whether wrap direction should be reversed.

since: 1.7

##### Methods inherited from GtkWidget (164)

Please see GtkWidget for a full list of methods.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

##### Methods inherited from GtkAccessible (20)

###### gtk_accessible_announce

Requests the user’s screen reader to announce the given message.

###### gtk_accessible_get_accessible_parent

Retrieves the accessible parent for an accessible object.

###### gtk_accessible_get_accessible_role

Retrieves the accessible role of an accessible object.

###### gtk_accessible_get_at_context

Retrieves the implementation for the given accessible object.

###### gtk_accessible_get_bounds

Queries the coordinates and dimensions of this accessible.

###### gtk_accessible_get_first_accessible_child

Retrieves the first accessible child of an accessible object.

###### gtk_accessible_get_next_accessible_sibling

Retrieves the next accessible sibling of an accessible object.

###### gtk_accessible_get_platform_state

Queries a platform state, such as focus.

###### gtk_accessible_reset_property

Resets the accessible property to its default value.

###### gtk_accessible_reset_relation

Resets the accessible relation to its default value.

###### gtk_accessible_reset_state

Resets the accessible state to its default value.

###### gtk_accessible_set_accessible_parent

Sets the parent and sibling of an accessible object.

###### gtk_accessible_update_next_accessible_sibling

Updates the next accessible sibling.

###### gtk_accessible_update_platform_state

Informs ATs that the platform state has changed.

###### gtk_accessible_update_property

Updates a list of accessible properties.

###### gtk_accessible_update_property_value

Updates an array of accessible properties.

###### gtk_accessible_update_relation

Updates a list of accessible relations.

###### gtk_accessible_update_relation_value

Updates an array of accessible relations.

###### gtk_accessible_update_state

Updates a list of accessible states.

###### gtk_accessible_update_state_value

Updates an array of accessible states.

##### Methods inherited from GtkBuildable (1)

###### gtk_buildable_get_buildable_id

Gets the ID of the `buildable` object.

##### Methods inherited from GtkOrientable (2)

###### gtk_orientable_get_orientation

Retrieves the orientation of the `orientable`.

###### gtk_orientable_set_orientation

Sets the orientation of the `orientable`.

#### Properties

###### Adw.WrapBox:align

The alignment of the children within each line.

since: 1.7

###### Adw.WrapBox:child-spacing

The spacing between widgets on the same line.

since: 1.7

###### Adw.WrapBox:child-spacing-unit

The length unit for child spacing.

since: 1.7

###### Adw.WrapBox:justify

Determines whether and how each complete line should be stretched to fill the entire widget.

since: 1.7

###### Adw.WrapBox:justify-last-line

Whether the last line should be stretched to fill the entire widget.

since: 1.7

###### Adw.WrapBox:line-homogeneous

Whether all lines should take the same amount of space.

since: 1.7

###### Adw.WrapBox:line-spacing

The spacing between lines.

since: 1.7

###### Adw.WrapBox:line-spacing-unit

The length unit for line spacing.

since: 1.7

###### Adw.WrapBox:natural-line-length

Determines the natural size for each line.

since: 1.7

###### Adw.WrapBox:natural-line-length-unit

The length unit for natural line length.

since: 1.7

###### Adw.WrapBox:pack-direction

The direction children are packed in each line.

since: 1.7

###### Adw.WrapBox:wrap-policy

The policy for line wrapping.

since: 1.7

###### Adw.WrapBox:wrap-reverse

Whether wrap direction should be reversed.

since: 1.7

##### Properties inherited from GtkWidget (35)

###### Gtk.Widget:can-focus

Whether the widget or any of its descendents can accept the input focus.

###### Gtk.Widget:can-target

Whether the widget can receive pointer events.

###### Gtk.Widget:css-classes

A list of css classes applied to this widget.

###### Gtk.Widget:css-name

The name of this widget in the CSS tree.

###### Gtk.Widget:cursor

The cursor used by `widget`.

###### Gtk.Widget:focus-on-click

Whether the widget should grab focus when it is clicked with the mouse.

###### Gtk.Widget:focusable

Whether this widget itself will accept the input focus.

###### Gtk.Widget:halign

How to distribute horizontal space if widget gets extra space.

###### Gtk.Widget:has-default

Whether the widget is the default widget.

###### Gtk.Widget:has-focus

Whether the widget has the input focus.

###### Gtk.Widget:has-tooltip

Enables or disables the emission of the `GtkWidget::query-tooltip` signal on `widget`.

###### Gtk.Widget:height-request

Overrides for height request of the widget.

###### Gtk.Widget:hexpand

Whether to expand horizontally.

###### Gtk.Widget:hexpand-set

Whether to use the `hexpand` property.

###### Gtk.Widget:layout-manager

The `GtkLayoutManager` instance to use to compute the preferred size of the widget, and allocate its children.

###### Gtk.Widget:limit-events

Makes this widget act like a modal dialog, with respect to event delivery.

###### Gtk.Widget:margin-bottom

Margin on bottom side of widget.

###### Gtk.Widget:margin-end

Margin on end of widget, horizontally.

###### Gtk.Widget:margin-start

Margin on start of widget, horizontally.

###### Gtk.Widget:margin-top

Margin on top side of widget.

###### Gtk.Widget:name

The name of the widget.

###### Gtk.Widget:opacity

The requested opacity of the widget.

###### Gtk.Widget:overflow

How content outside the widget’s content area is treated.

###### Gtk.Widget:parent

The parent widget of this widget.

###### Gtk.Widget:receives-default

Whether the widget will receive the default action when it is focused.

###### Gtk.Widget:root

The `GtkRoot` widget of the widget tree containing this widget.

###### Gtk.Widget:scale-factor

The scale factor of the widget.

###### Gtk.Widget:sensitive

Whether the widget responds to input.

###### Gtk.Widget:tooltip-markup

Sets the text of tooltip to be the given string, which is marked up with Pango markup.

###### Gtk.Widget:tooltip-text

Sets the text of tooltip to be the given string.

###### Gtk.Widget:valign

How to distribute vertical space if widget gets extra space.

###### Gtk.Widget:vexpand

Whether to expand vertically.

###### Gtk.Widget:vexpand-set

Whether to use the `vexpand` property.

###### Gtk.Widget:visible

Whether the widget is visible.

###### Gtk.Widget:width-request

Overrides for width request of the widget.

##### Properties inherited from GtkAccessible (1)

###### Gtk.Accessible:accessible-role

The accessible role of the given `GtkAccessible` implementation.

##### Properties inherited from GtkOrientable (1)

###### Gtk.Orientable:orientation

The orientation of the orientable.

#### Signals

##### Signals inherited from GtkWidget (13)

###### GtkWidget::destroy

Signals that all holders of a reference to the widget should release the reference that they hold.

###### GtkWidget::direction-changed

Emitted when the text direction of a widget changes.

###### GtkWidget::hide

Emitted when `widget` is hidden.

###### GtkWidget::keynav-failed

Emitted if keyboard navigation fails.

###### GtkWidget::map

Emitted when `widget` is going to be mapped.

###### GtkWidget::mnemonic-activate

Emitted when a widget is activated via a mnemonic.

###### GtkWidget::move-focus

Emitted when the focus is moved.

###### GtkWidget::query-tooltip

Emitted when the widget’s tooltip is about to be shown.

###### GtkWidget::realize

Emitted when `widget` is associated with a `GdkSurface`.

###### GtkWidget::show

Emitted when `widget` is shown.

###### GtkWidget::state-flags-changed

Emitted when the widget state changes.

###### GtkWidget::unmap

Emitted when `widget` is going to be unmapped.

###### GtkWidget::unrealize

Emitted when the `GdkSurface` associated with `widget` is destroyed.

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct AdwWrapBoxClass {
      GtkWidgetClass parent_class;

    }

No description available.

###### Class members

`parent_class: GtkWidgetClass`

  No description available.