tek/layout
2025-01-05 16:41:29 +01:00
..
src cleanup + update tests; add 'just test' 2025-01-05 16:41:29 +01:00
Cargo.lock cleanup + update tests; add 'just test' 2025-01-05 16:41:29 +01:00
Cargo.toml cleanup + update tests; add 'just test' 2025-01-05 16:41:29 +01:00
README.md layout docs: try something 2025-01-03 23:24:45 +01:00

tek_layout

this crate exposes several layout operators which work entirely in unsigned coordinates and are generic over tek_engine::Engine and tek_engine::Content. chiefly, they are not dependent on rendering framework.

operator description
When(x, a) render a only when x == true
Either(x, a, b) render a when x == true, otherwise render b
Map(get_iterator, callback) transform items in uniform way
Bsp concatenative layout
... ...
Align pin content along axis
... ...
Fill make content's dimension equal to container's:
Fill::x(a) use container's width for content
Fill::y(a) use container's height for content
Fill::xy(a) use container's width and height for content
Fixed assign fixed dimension to content:
Fixed::x(w, a) use width w for content
Fixed::y(w, a) use height w for content
Fixed::xy(w, h, a) use width w and height h for content
Expand/Shrink change dimension of content:
Expand::x(n, a)/Shrink::x(n, a) increment/decrement width of content area by n
Expand::y(n, a)/Shrink::y(n, a) increment/decrement height of content area by m
Expand::xy(n, m, a)/Shrink::xy(n, m, a) increment/decrement width of content area by n, height by m
Min/Max constrain dimension of content:
Min::x(w, a)/Max::x(w, a) enforce minimum/maximum width w for content
Min::y(h, a)/Max::y(h, a) enforce minimum/maximum height h for content
Min::xy(w, h, a)/Max::xy(w, h, a) enforce minimum/maximum width w and height h for content
Push/Pull move content along axis:
Push::x(n, a)/Pull::x(n, a) increment/decrement x of content area
Push::y(n, a)/Pull::y(n, a) increment/decrement y of content area
Push::xy(n, m, a)/Pull::xy(n, m, a) increment/decrement x and y of content area

todo:

  • sensible Margin/Padding
  • Reduce