gpui_base/grid_layout/
mod.rs1mod grid_layout;
10mod layout;
11mod state;
12
13pub use grid_layout::{GridItem, GridLayout, grid_drag_handle};
14pub use layout::GridArea;
15pub use state::{GridLayoutEvent, GridLayoutState};
16
17use gpui::{App, KeyBinding, actions};
18
19use crate::actions::Cancel;
20
21pub(super) const CONTEXT: &str = "GridLayout";
22
23actions!(
24 grid_layout,
25 [
26 MoveLeft,
28 MoveRight,
30 MoveUp,
32 MoveDown,
34 ShrinkWidth,
36 GrowWidth,
38 ShrinkHeight,
40 GrowHeight,
42 SelectNextItem,
44 SelectPreviousItem,
46 ]
47);
48
49pub(crate) fn init(cx: &mut App) {
50 cx.bind_keys([
51 KeyBinding::new("left", MoveLeft, Some(CONTEXT)),
52 KeyBinding::new("right", MoveRight, Some(CONTEXT)),
53 KeyBinding::new("up", MoveUp, Some(CONTEXT)),
54 KeyBinding::new("down", MoveDown, Some(CONTEXT)),
55 KeyBinding::new("shift-left", ShrinkWidth, Some(CONTEXT)),
56 KeyBinding::new("shift-right", GrowWidth, Some(CONTEXT)),
57 KeyBinding::new("shift-up", ShrinkHeight, Some(CONTEXT)),
58 KeyBinding::new("shift-down", GrowHeight, Some(CONTEXT)),
59 KeyBinding::new("tab", SelectNextItem, Some(CONTEXT)),
60 KeyBinding::new("shift-tab", SelectPreviousItem, Some(CONTEXT)),
61 KeyBinding::new("escape", Cancel, Some(CONTEXT)),
62 ]);
63}