Skip to main content

Module grid

Module grid 

Source
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
GridState plus 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 the crate::grid::GridState.
widget
The SqllyDataTable GPUI widget and its builder. Owns one Entity<GridState> and wires GPUI’s mouse / keyboard / scroll events to its methods. A bunch of state.clone() clones exist because each closure needs its own owned reference to the GPUI entity handle.