Skip to main content

Module header

Module header 

Source
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
part discriminator: the filter-popover trigger zone.
HEADER_PART_LABEL
part discriminator: the sort / reorder zone carrying the column label.
HEADER_PART_RESIZE
part discriminator: the column-resize band on the cell’s trailing edge.