pub mod context_menu;
pub mod menu;
pub(crate) mod motion;
pub mod paint;
pub mod selection;
pub mod state;
pub mod theme;
pub mod widget;
pub use context_menu::{
ColumnContext, ContextMenuItem, ContextMenuProvider, ContextMenuRequest, ContextMenuSelection,
ContextMenuTarget, SelectedCellContext, SelectedRowContext,
};
pub use menu::{ContextMenu, MenuAction, MenuItem};
pub use selection::{HitResult, ScrollbarAxis, Selection, SortDirection};
pub use state::{
BusyState, FilterInput, FilterPanel, FilterValueRow, GridState, RowGroup, RowWindow,
};
pub use theme::{GridTheme, GridThemePair};
pub use widget::{GridTab, PivotSidebarPosition, SqllyDataTable, SqllyDataTableBuilder};
pub use state::SCROLLBAR_SIZE;
use gpui::{div, prelude::*, px, Div, FontWeight};
use gpui_component::{Icon, IconName};
pub(crate) fn checkbox(checked: bool, theme: &GridTheme) -> Div {
let mut b = div()
.w(px(14.0))
.h(px(14.0))
.flex_none()
.rounded(px(3.0))
.border_1()
.border_color(if checked {
theme.sort_indicator
} else {
theme.grid_line
})
.bg(if checked {
theme.sort_indicator
} else {
theme.menu_bg
})
.flex()
.items_center()
.justify_center()
.text_size(px(11.0))
.font_weight(FontWeight::SEMIBOLD)
.text_color(theme.bg);
if checked {
b = b.child(Icon::new(IconName::Check));
}
b
}