README.md
llimphi-widget-detail-table
The details view of a file manager.
A read-only grid of columns (name · size · date · type…) with clickable
headers that sort: clicking a column emits on_sort(col); the active column
shows a ▲/▼ arrow. Every row is clickable (selection) and can optionally
carry an accent tint (for labels and colours).
Like the rest of the Llimphi widgets it is render-only and stateless: sort,
filter and selection live in the caller's Model (typically a
nahual_source_core::Navigator); the widget receives the rows already sorted
and already filtered (just as widget-list receives only the visible window)
and merely paints and notifies.
Columns declare their width as ColWidth::Flex (distributes the leftover
proportionally — for the name column) or ColWidth::Fixed (constant px — for
size/date/type). Header and rows use the SAME distribution, so the columns stay
aligned.
detail_table_view(
DetailSpec {
columns: &[Column::flex("Name", 1.0), Column::fixed("Size", 90.0).right(),
Column::fixed("Modified", 150.0), Column::fixed("Type", 80.0)],
rows, // already sorted/filtered by the caller
sort: Some((1, SortDir::Desc)),
row_height: 22.0,
caption: Some("42 entries".into()),
palette: DetailPalette::from_theme(&theme),
},
Msg::SortBy, // Fn(usize) -> Msg
)
Part of llimphi — see llimphi.