Expand description
GridState plus the GPUI widget, paint functions, and helpers that swing
between them. The flat public re-exports below keep existing consumers of
the 0.1.x API working; new code should prefer importing from the canonical
crate::grid::* paths.
Re-exports§
pub use context_menu::ContextMenuItem;pub use context_menu::ContextMenuProvider;pub use context_menu::ContextMenuRequest;pub use context_menu::ContextMenuSelection;pub use context_menu::ContextMenuTarget;pub use context_menu::SelectedCellContext;pub use context_menu::SelectedRowContext;pub use menu::ContextMenu;pub use menu::MenuAction;pub use menu::MenuItem;pub use selection::HitResult;pub use selection::ScrollbarAxis;pub use selection::Selection;pub use selection::SortDirection;pub use state::BusyState;pub use state::FilterInput;pub use state::FilterPanel;pub use state::FilterValueRow;pub use state::GridState;pub use theme::GridTheme;pub use widget::SqllyDataTable;pub use widget::SqllyDataTableBuilder;pub use state::SCROLLBAR_SIZE;
Modules§
- context_
menu - Public context-menu extensibility types.
- menu
- Context menu — column-header right-click interaction. Layout, hover resolution, and action labels live here so paint code only consumes the menu snapshot.
- paint
- Canvas paint functions and the lightweight snapshot that GPUI’s
canvas(...)closure hands to the painter. - selection
- Pure selection / hit-testing types and helpers. Kept separate from the stateful widget so paint, input, and copy code can all use the same predicates without circular dependencies.
- state
GridStateplus all non-paint behaviour: input, scrollbars, drag, sort/filter, scrolling, hit-testing, edge-scroll coordination, filter-prompt cursor handling.- theme
GridTheme— typed color set used by the widget. Default is monochrome on white; downstream code that wants a dark mode or accent palette can construct a custom theme and pass it on thecrate::grid::GridState.- widget
- The
SqllyDataTableGPUI widget and its builder. Owns oneEntity<GridState>and wires GPUI’s mouse / keyboard / scroll events to its methods. A bunch ofstate.clone()clones exist because each closure needs its own owned reference to the GPUI entity handle.