Files
Ely-GPUI-Components/examples/gallery/pages/layout/mod.rs
T

129 lines
4.1 KiB
Rust

mod basics;
mod regions;
mod scrolling;
mod shells;
mod systems;
use gpui::{AnyElement, App, IntoElement, ParentElement, Window, div};
use super::Page;
use crate::script::Step;
pub const PAGE: Page = Page {
number: 3,
slug: "layout",
title: "Layout",
summary: "Stacks, grids, splits, docks. Structure that stays out of the way.",
render,
script: SCRIPT,
};
const SCRIPT: &[Step] = &[
Step::Rest,
Step::Hover("scroll-area"),
Step::Wait(300),
Step::Shot("scroll-hover"),
Step::DownAt("scrollbar", 313.0, 12.0),
Step::DragTo("scrollbar", 313.0, 110.0),
Step::UpAt("scrollbar", 313.0, 110.0),
Step::Shot("scrollbar-drag"),
Step::DownAt("scrollbar", 313.0, 110.0),
Step::DragTo("scrollbar", 313.0, 12.0),
Step::UpAt("scrollbar", 313.0, 12.0),
Step::DownAt("sticky", 313.0, 12.0),
Step::DragTo("sticky", 313.0, 76.0),
Step::UpAt("sticky", 313.0, 76.0),
Step::Shot("sticky-pushed"),
Step::DownAt("sticky", 313.0, 76.0),
Step::DragTo("sticky", 313.0, 12.0),
Step::UpAt("sticky", 313.0, 12.0),
Step::Click("collapse-toggle"),
Step::Wait(400),
Step::Shot("collapsed"),
Step::Click("collapse-toggle"),
Step::Click("sidebar-toggle"),
Step::Wait(400),
Step::Shot("sidebar-collapsed"),
Step::Click("sidebar-toggle"),
Step::Rest,
Step::Click("sheet-open"),
Step::Wait(400),
Step::Shot("sheet"),
Step::Click("sheet-open"),
Step::Click("drawer-open"),
Step::Wait(400),
Step::Shot("drawer"),
Step::DownAt("drawer-body", 10.0, -28.0),
Step::DragTo("drawer-body", 10.0, 172.0),
Step::UpAt("drawer-body", 10.0, 172.0),
Step::Wait(400),
Step::Shot("drawer-pulled"),
Step::Click("floating-open"),
Step::Wait(300),
Step::Shot("floating"),
Step::Click("floating-open"),
Step::DownAt("dock", 300.0, 240.0),
Step::DragTo("dock", 380.0, 60.0),
Step::Wait(200),
Step::Shot("dock-zones"),
Step::UpAt("dock", 380.0, 60.0),
Step::Wait(200),
Step::Shot("dock-top"),
Step::DownAt("dock", 300.0, 20.0),
Step::DragTo("dock", 380.0, 330.0),
Step::UpAt("dock", 380.0, 330.0),
Step::Click("workspace-save"),
Step::DownAt("panes", 380.0, 150.0),
Step::DragTo("panes", 560.0, 150.0),
Step::UpAt("panes", 560.0, 150.0),
Step::Shot("panes-dragged"),
Step::Click("workspace-restore"),
Step::Wait(300),
Step::Shot("panes-restored"),
Step::Rest,
];
fn render(window: &mut Window, cx: &mut App) -> AnyElement {
div()
.child(basics::stacks(cx))
.child(basics::flex(cx))
.child(basics::grid(cx))
.child(basics::simple_grid(cx))
.child(basics::masonry(cx))
.child(basics::center(cx))
.child(basics::container(cx))
.child(basics::aspect_ratio(cx))
.child(basics::inset(cx))
.child(basics::wrap(cx))
.child(basics::absolute(cx))
.child(basics::z_stack(cx))
.child(scrolling::scroll_area(cx))
.child(scrolling::scrollbar(window, cx))
.child(scrolling::scroll_shadow(window, cx))
.child(scrolling::scroll_to_top(window, cx))
.child(scrolling::sticky_header(window, cx))
.child(regions::split_pane(cx))
.child(regions::resize_handles(cx))
.child(regions::collapsible(window, cx))
.child(regions::accordion(cx))
.child(regions::card(cx))
.child(regions::panel(cx))
.child(regions::section_demo(cx))
.child(regions::fieldset(cx))
.child(regions::frame_demo(cx))
.child(regions::well(cx))
.child(shells::sidebar(window, cx))
.child(shells::drawer(window, cx))
.child(shells::sheet(window, cx))
.child(shells::page(cx))
.child(shells::app_shell(cx))
.child(shells::master_detail(cx))
.child(systems::dock(window, cx))
.child(systems::dock_zones(cx))
.child(systems::floating(window, cx))
.child(systems::panes(window, cx))
.child(systems::workspace(window, cx))
.child(systems::viewport(cx))
.into_any_element()
}