Expand description
Per-column header cells.
HeaderCell lays out as
Padding → HStack { TextWidget(label), Spacer, SortIndicator? } and
handles click-to-sort plus drag-to-resize on the grip that straddles
either of the two column dividers it touches (see the type’s docs).
TableHeader lays the cells out
horizontally using the same shared column_widths handle that body rows
consume — so a resize commits in one place and reflows everywhere — and
paints the column separators that make those grips findable.
Supports sort, resize, reuse across pinned panes, per-column filter popovers, and the start of a column-reorder drag (the strip is its drop target).
§Touch and pen
A header cell paints three things inside one node and tells them apart by coordinate: the label (whose press cycles the sort or starts the column reorder), the filter-popover trigger, and the resize band on its trailing edge.
The label and filter zones come from
partition_targets, which gives
the filter zone the density’s target floor by clamp-and-redistribute — the glyph
and its padding are below the conformance floor at every density — answers in
reading order so nothing mirrors for RTL, and splits evenly when the two floors
cannot both be met. The same function answers
[teksilo_core::widget::Widget::target_regions], so the
geometry an audit measures is the geometry the press test uses.
The plain press stays Ignored so a finger can pan the table from its header
strip, and a coarse pointer’s column reorder waits for a hold.
Constants§
- HEADER_
PART_ FILTER partdiscriminator: the filter-popover trigger zone.- HEADER_
PART_ LABEL partdiscriminator: the sort / reorder zone carrying the column label.- HEADER_
PART_ RESIZE partdiscriminator: the column-resize band on the cell’s trailing edge.