Files

131 lines
3.8 KiB
Rust

mod bars;
mod chrome;
mod columns;
mod status;
mod system;
mod windows;
use gpui::{AnyElement, App, IntoElement, ParentElement, Window, div};
use super::Page;
use crate::step::Step;
pub use windows::{open_about, open_managed};
pub const PAGE: Page = Page {
number: 4,
slug: "shell",
title: "Window & Shell",
summary: "Title bars, rails, tabs, and the windows around an app.",
render,
script: SCRIPT,
};
const SCRIPT: &[Step] = &[
Step::Rest,
Step::ClickEnd("tab-bar"),
Step::Wait(400),
Step::Shot("tab-added"),
Step::DownAt("activity", 24.0, 76.0),
Step::UpAt("activity", 24.0, 76.0),
Step::Wait(400),
Step::Shot("activity-search"),
Step::DownAt("activity", 24.0, 28.0),
Step::UpAt("activity", 24.0, 28.0),
Step::Click("offline-offline"),
Step::Wait(400),
Step::Shot("offline"),
Step::Click("offline-reconnecting"),
Step::Wait(400),
Step::Shot("reconnecting"),
Step::Click("offline-online"),
Step::Wait(400),
Step::Shot("back-online"),
Step::ClickEnd("zoom"),
Step::Wait(400),
Step::Shot("zoomed"),
Step::Click("zoom"),
Step::Wait(300),
Step::Click("about-open"),
Step::Wait(700),
Step::KeyWindow("about", "tab"),
Step::Wait(200),
Step::ShotWindow("about", "about-window"),
Step::CloseWindow("about"),
Step::Click("splash-open"),
Step::Wait(700),
Step::ShotWindow("splash", "splash-window"),
Step::CloseWindow("splash"),
Step::Click("update-open"),
Step::Wait(700),
Step::ShotWindow("update", "update-window"),
Step::CloseWindow("update"),
Step::Click("crash-open"),
Step::Wait(700),
Step::ShotWindow("crash", "crash-window"),
Step::CloseWindow("crash"),
Step::Click("managed-open"),
Step::Wait(700),
Step::ShotWindow("managed", "managed-window"),
Step::CloseNative("managed"),
Step::Wait(300),
Step::ShotWindow("managed", "managed-asked"),
Step::Click("switcher-open"),
Step::Wait(400),
Step::Key("tab"),
Step::Wait(200),
Step::Shot("switcher"),
Step::Key("escape"),
Step::Wait(300),
Step::CloseNative("managed"),
Step::Wait(400),
Step::ExpectClosed("managed"),
Step::Click("mini-open"),
Step::Wait(700),
Step::ShotWindow("mini", "mini-window"),
Step::CloseWindow("mini"),
Step::Click("pip-open"),
Step::Wait(700),
Step::ShotWindow("pip", "pip-window"),
Step::CloseWindow("pip"),
Step::Click("tray-show"),
Step::Wait(300),
Step::Click("tray-pick"),
Step::Wait(400),
Step::Shot("tray-picked"),
Step::Click("tray-show"),
Step::Click("badge-set"),
Step::Wait(300),
Step::Shot("badge"),
Step::Click("badge-clear"),
Step::Rest,
];
fn render(window: &mut Window, cx: &mut App) -> AnyElement {
div()
.child(chrome::title_bar(cx))
.child(columns::column_shell(cx))
.child(chrome::window_controls(cx))
.child(chrome::drag_area(window, cx))
.child(chrome::resize_border(cx))
.child(chrome::menus(cx))
.child(bars::toolbar(cx))
.child(bars::status_bar(cx))
.child(bars::activity_bar(window, cx))
.child(bars::tab_bar(window, cx))
.child(windows::splash_screen(cx))
.child(windows::about_dialog(cx))
.child(system::tray(window, cx))
.child(system::dock(cx))
.child(system::notification(cx))
.child(windows::window_manager(cx))
.child(windows::window_switcher(window, cx))
.child(windows::quick_launcher(cx))
.child(windows::mini_windows(cx))
.child(status::update_banner(cx))
.child(status::update_window(cx))
.child(status::crash_reporter(cx))
.child(status::offline(window, cx))
.child(status::zoom(cx))
.into_any_element()
}