class Adw::ClampLayout

Overview

A layout manager constraining its children to a given size.

clamp-wide clamp-narrow

Adw::ClampLayout 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.

Adw::ClampLayout can scale with the text scale factor, use the ClampLayout::unit property to enable that behavior.

See also: #Clamp, #ClampScrollable.

Included Modules

Defined in:

lib/gi-crystal/src/auto/adw-1/clamp_layout.cr

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from module Gtk::Orientable

orientation : Gtk::Orientation orientation, orientation=(orientation : Gtk::Orientation) : Nil orientation=, to_unsafe to_unsafe

Constructor methods inherited from module Gtk::Orientable

cast(obj : GObject::Object) : self cast

Class methods inherited from module Gtk::Orientable

cast?(obj : GObject::Object) : self | Nil cast?, g_type : UInt64 g_type

Instance methods inherited from class Gtk::LayoutManager

==(other : self) ==, allocate(widget : Gtk::Widget, width : Int32, height : Int32, baseline : Int32) : Nil allocate, hash(hasher) hash, layout_changed : Nil layout_changed, layout_child(child : Gtk::Widget) : Gtk::LayoutChild layout_child, measure(widget : Gtk::Widget, orientation : Gtk::Orientation, for_size : Int32) : Nil measure, request_mode : Gtk::SizeRequestMode request_mode, widget : Gtk::Widget | Nil widget

Constructor methods inherited from class Gtk::LayoutManager

new new

Class methods inherited from class Gtk::LayoutManager

g_type : UInt64 g_type

Instance methods inherited from class GObject::Object

==(other : self) ==, bind_property(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags) : GObject::Binding bind_property, bind_property_full(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags, transform_to : GObject::Closure, transform_from : GObject::Closure) : GObject::Binding bind_property_full, data(key : String) : Pointer(Void) | Nil data, finalize finalize, freeze_notify : Nil freeze_notify, getv(names : Enumerable(String), values : Enumerable(_)) : Nil getv, hash(hasher) hash, notify(property_name : String) : Nil notify, notify_by_pspec(pspec : GObject::ParamSpec) : Nil notify_by_pspec, notify_signal notify_signal, property(property_name : String, value : _) : Nil property, qdata(quark : UInt32) : Pointer(Void) | Nil qdata, ref_count : UInt32 ref_count, run_dispose : Nil run_dispose, set_data(key : String, data : Pointer(Void) | Nil) : Nil set_data, set_property(property_name : String, value : _) : Nil set_property, steal_data(key : String) : Pointer(Void) | Nil steal_data, steal_qdata(quark : UInt32) : Pointer(Void) | Nil steal_qdata, thaw_notify : Nil thaw_notify, to_unsafe : Pointer(Void) to_unsafe, watch_closure(closure : GObject::Closure) : Nil watch_closure

Constructor methods inherited from class GObject::Object

cast(obj : GObject::Object) : self cast, new(pointer : Pointer(Void), transfer : GICrystal::Transfer)
new
new
, newv(object_type : UInt64, parameters : Enumerable(GObject::Parameter)) : self newv

Class methods inherited from class GObject::Object

cast?(obj : GObject::Object) : self | Nil cast?, compat_control(what : UInt64, data : Pointer(Void) | Nil) : UInt64 compat_control, g_type : UInt64 g_type, interface_find_property(g_iface : GObject::TypeInterface, property_name : String) : GObject::ParamSpec interface_find_property, interface_list_properties(g_iface : GObject::TypeInterface) : Enumerable(GObject::ParamSpec) interface_list_properties

Macros inherited from class GObject::Object

previous_vfunc(*args) previous_vfunc, previous_vfunc!(*args) previous_vfunc!, signal(signature) signal

Constructor Detail

def self.new : self #

Creates a new Adw::ClampLayout.


def self.new(*, maximum_size : Int32 | Nil = nil, orientation : Gtk::Orientation | Nil = nil, tightening_threshold : Int32 | Nil = nil, unit : Adw::LengthUnit | Nil = nil) #

Class Method Detail

def self.g_type : UInt64 #

Returns the type id (GType) registered in GLib type system.


Instance Method Detail

def ==(other : self) #
Description copied from class Reference

Returns true if this reference is the same as other. Invokes same?.


def hash(hasher) #
Description copied from class Reference

See Object#hash(hasher)


def maximum_size : Int32 #

Gets the maximum size allocated to the children.


def maximum_size=(maximum_size : Int32) : Nil #

Sets the maximum size allocated to the children.

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


def tightening_threshold : Int32 #

Gets the size above which the children are clamped.


def tightening_threshold=(tightening_threshold : Int32) : Nil #

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.


def unit : Adw::LengthUnit #

Gets the length unit for maximum size and tightening threshold.


def unit=(unit : Adw::LengthUnit) : Nil #

Sets the length unit for maximum size and tightening threshold.

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