gpui_kit/layout/mod.rs
1//! Frames that decide where other components sit.
2//!
3//! None of these owns the arrangement. A split reports the ratio a drag asked
4//! for, a scroll area reports how far it is scrolled and how much more there
5//! is, and a toolbar reports which of its actions did not fit — each renders
6//! exactly what the caller says is true, so a host that refuses a change keeps
7//! showing the layout that still holds.
8//!
9//! The application shell is built from the same rule at a larger scale:
10//! [`SplitTree`] draws a whole [`SplitLayout`] the caller owns, [`Dock`]
11//! arranges panels in regions over that tree, and [`StatusBar`] states what the
12//! host says is true along the bottom.
13
14pub mod aspect_ratio;
15pub mod dock;
16pub(crate) mod measure;
17pub mod scroll;
18pub mod scroll_fade;
19pub mod split;
20pub mod status_bar;
21pub mod toolbar;
22pub mod tree;
23
24pub use aspect_ratio::{AspectFit, AspectRatio};
25pub use dock::{Dock, DockEvent, DockPanel, DockRegion};
26pub use scroll::{ScrollArea, ScrollAxis, scroll_offset, scroll_to};
27pub use scroll_fade::{FadeEdges, ScrollFade};
28pub use split::{SplitAxis, SplitPane, SplitSide};
29pub use status_bar::{StatusBar, StatusGroup, StatusItem};
30pub use toolbar::{Toolbar, ToolbarItem};
31pub use tree::{
32 SplitChange, SplitKind, SplitLayout, SplitPaneSpec, SplitRecord, SplitRecordError, SplitTree,
33};