Expand description
Layout utilities
For documentation of layout resolution, see the Layout trait.
Size units are physical (real) pixels. This applies to most of KAS.
§Data types
SizeRules is the “heart” of widget layout, used to specify a widget’s
size requirements. It provides various methods to compute derived rules
and SizeRules::solve_seq, the “muscle” of the layout engine.
AxisInfo, Margins and Stretch are auxilliary data types.
§Solvers
The RulesSolver and RulesSetter traits define interfaces for
layout engines:
SingleSolverandSingleSetterare trivial implementations for single-child parentsRowSolverandRowSetterset out a row or column of children. These are parametrised overS: RowStorageallowing both efficient operation on a small fixed number of children withFixedRowStorageand operation on a over aVecwithDynRowStorage.GridSolverandGridSetterset out children assigned to grid cells with optional cell-spans. This is the most powerful and flexible layout engine.
RowPositionSolver may be used with widgets set out by RowSetter
to quickly locate children from a coord or rect.
Structs§
- Align
Hints - Partial alignment information provided by the parent
- Align
Pair - Provides alignment information on both axes along with ideal size
- Axis
Info - Information on which axis is being resized
- DynGrid
Storage - Variable-length grid storage
- DynRow
Storage - Variable-length row storage
- Fixed
Grid Storage - Fixed-length grid storage
- Fixed
RowStorage - Fixed-length row storage
- Frame
Rules - Frame size rules
- Frame
Storage - Layout storage for frame
- Grid
Cell Info - Grid cell index and span information
- Grid
Dimensions - Grid dimensions
- Grid
Setter - A
RulesSetterfor grids supporting cell-spans - Grid
Solver - A
RulesSolverfor grids supporting cell-spans - Logical
Size - Logical (pre-scaling) pixel size
- Margins
- Margin sizes
- Pack
Storage - Layout storage for pack
- Pixmap
Scaling - Control over scaling
- RowPosition
Solver - Allows efficient implementations of
draw/ event handlers based on the layout representation. - RowSetter
- A
RulesSetterfor rows (and, without loss of generality, for columns). - RowSolver
- A
RulesSolverfor rows (and, without loss of generality, for columns). - Single
Setter RulesSetterimplementation for a fixed single-child layout- Single
Solver RulesSolverimplementation for a fixed single-child layout- Size
Rules - Widget sizing information
- Solve
Cache - Size solver
Enums§
Traits§
- Default
With Len - Bound on
GridSolvertype parameters - Grid
Storage - Requirements of grid solver storage type
- RowStorage
- Requirements of row solver storage type
- RowTemp
- Temporary storage type.
- Rules
Setter - Resolves a
RulesSolversolution for each child - Rules
Solver - A
SizeRulessolver for layouts
Functions§
- solve_
size_ rules - Solve size rules for a widget