mod grid_layout;
mod layout;
mod state;
pub use grid_layout::{GridItem, GridLayout, grid_drag_handle};
pub use layout::GridArea;
pub use state::{GridLayoutEvent, GridLayoutState};
use gpui::{App, KeyBinding, actions};
use crate::actions::Cancel;
pub(super) const CONTEXT: &str = "GridLayout";
actions!(
grid_layout,
[
MoveLeft,
MoveRight,
MoveUp,
MoveDown,
ShrinkWidth,
GrowWidth,
ShrinkHeight,
GrowHeight,
SelectNextItem,
SelectPreviousItem,
]
);
pub(crate) fn init(cx: &mut App) {
cx.bind_keys([
KeyBinding::new("left", MoveLeft, Some(CONTEXT)),
KeyBinding::new("right", MoveRight, Some(CONTEXT)),
KeyBinding::new("up", MoveUp, Some(CONTEXT)),
KeyBinding::new("down", MoveDown, Some(CONTEXT)),
KeyBinding::new("shift-left", ShrinkWidth, Some(CONTEXT)),
KeyBinding::new("shift-right", GrowWidth, Some(CONTEXT)),
KeyBinding::new("shift-up", ShrinkHeight, Some(CONTEXT)),
KeyBinding::new("shift-down", GrowHeight, Some(CONTEXT)),
KeyBinding::new("tab", SelectNextItem, Some(CONTEXT)),
KeyBinding::new("shift-tab", SelectPreviousItem, Some(CONTEXT)),
KeyBinding::new("escape", Cancel, Some(CONTEXT)),
]);
}