Expand description
Terminal-dependent layout, viewport management, drawing, and hit testing.
Renderer stores widget outputs in key order. During Renderer::render
it reads the current terminal size, wraps or truncates every logical content
row, allocates vertical viewports, scrolls each keyed viewport just enough to
include its cursor, and delegates the resulting visible rows to the terminal.
Empty items and items with max_height == Some(0) do not occupy space.
Remaining items are allocated in key order while reserving at least one row
for every later non-empty item. A terminal that cannot provide one row per
non-empty item produces an error.
A successful render saves a layout snapshot. Renderer::hit_test and
Renderer::screen_position always use that snapshot, so event handling maps
positions against what was actually drawn rather than against newer,
not-yet-rendered content.
Structs§
- Prepared
Layout - A renderer frame after wrapping, viewport allocation, and clipping.
- Renderer
- Renderer stores widget content, lays it out, and draws it to a terminal.
- Renderer
Layout - Terminal-size-dependent renderer layout without terminal I/O.
Type Aliases§
- Shared
Renderer - SharedRenderer is a type alias for an Arc-wrapped Renderer, allowing for shared ownership and concurrency.