Namespace Serenity.Shared.Layout
Classes
DiagramColumnLayout
Pure arithmetic for laying out one column of a two-kind card diagram, extracted from
Serenity.EventDispatcher.Infrastructure.Editor.SerenitySignalFlowBrowserWindow: which candidate
cards become visible slots once a column is truncated to its maximum card count, where the trailing
"show N more…" pseudo-card goes, and how far a column's second card kind gets pushed down to leave
room for a section header. Card measurement (width/height in screen units) deliberately stays with
the caller, since it depends on GUIStyle text metrics this type knows nothing about.
ListRowLayout
Solves the horizontal layout of one list row: a leading marker, a title, a run of at-a-glance badges, and a control strip pinned to the right edge.
ListRowLayout.Metrics
How a row is proportioned.
ListRowLayout.Solution
The slices one row was divided into.
TableColumnLayout
Pure arithmetic for a resizable-column table: each column's initial width honoring a minimum, and how a
drag on the handle between two adjacent columns redistributes their combined width. Extracted so an IMGUI
wrapper (SerenityTableGui) only has to feed and read floats, and the invariant that no drag can push
a neighbor thinner than its minimum, or change the pair's combined width, is assertable without any
editor state.
Structs
ColumnSpec
One table column's sizing rule: either a fixed initial width, or a flex weight sharing whatever width the fixed columns leave behind. Either way the column never shrinks below MinimumWidth.
DiagramColumnSlot
One candidate card for a diagram column: its kind tag plus the title/sub/tooltip text it would show.
DiagramColumnTruncation
Result of truncating one diagram column to a maximum visible card count.
RowSpan
A horizontal slice of a row: where it starts and how wide it is.