ClampLayout

class ClampLayout(**properties: Any)

Superclasses: LayoutManager, Object

Implemented Interfaces: Orientable

A layout manager constraining its children to a given size.

https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/clamp-wide.png https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/clamp-narrow.png

AdwClampLayout constraints the size of the widgets it contains to a given maximum size. It will constrain the width if it is horizontal, or the height if it is vertical. The expansion of the children from their minimum to their maximum size is eased out for a smooth transition.

If a child requires more than the requested maximum size, it will be allocated the minimum size it can fit in instead.

AdwClampLayout can scale with the text scale factor, use the unit property to enable that behavior.

Constructors

class ClampLayout
classmethod new() LayoutManager

Creates a new AdwClampLayout.

Methods

class ClampLayout
get_maximum_size() int

Gets the maximum size allocated to the children.

get_tightening_threshold() int

Gets the size above which the children are clamped.

get_unit() LengthUnit

Gets the length unit for maximum size and tightening threshold.

Added in version 1.4.

set_maximum_size(maximum_size: int) None

Sets the maximum size allocated to the children.

It is the width if the layout is horizontal, or the height if it is vertical.

Parameters:

maximum_size – the maximum size

set_tightening_threshold(tightening_threshold: int) None

Sets the size above which the children are clamped.

Starting from this size, the layout will tighten its grip on the children, slowly allocating less and less of the available size up to the maximum allocated size. Below that threshold and below the maximum size, the children will be allocated all the available size.

If the threshold is greater than the maximum size to allocate to the children, they will be allocated the whole size up to the maximum. If the threshold is lower than the minimum size to allocate to the children, that size will be used as the tightening threshold.

Effectively, tightening the grip on a child before it reaches its maximum size makes transitions to and from the maximum size smoother when resizing.

Parameters:

tightening_threshold – the tightening threshold

set_unit(unit: LengthUnit) None

Sets the length unit for maximum size and tightening threshold.

Allows the sizes to vary depending on the text scale factor.

Added in version 1.4.

Parameters:

unit – the length unit

Properties

class ClampLayout
props.maximum_size: int

The maximum size to allocate to the children.

It is the width if the layout is horizontal, or the height if it is vertical.

props.tightening_threshold: int

The size above which the children are clamped.

Starting from this size, the layout will tighten its grip on the children, slowly allocating less and less of the available size up to the maximum allocated size. Below that threshold and below the maximum size, the children will be allocated all the available size.

If the threshold is greater than the maximum size to allocate to the children, they will be allocated the whole size up to the maximum. If the threshold is lower than the minimum size to allocate to the children, that size will be used as the tightening threshold.

Effectively, tightening the grip on a child before it reaches its maximum size makes transitions to and from the maximum size smoother when resizing.

props.unit: LengthUnit

The length unit for maximum size and tightening threshold.

Allows the sizes to vary depending on the text scale factor.

Added in version 1.4.