storybook3.rs

 1use anyhow::Result;
 2use gpui::AssetSource;
 3use gpui::{
 4    div, px, size, AnyView, Bounds, Div, Render, ViewContext, VisualContext, WindowBounds,
 5    WindowOptions,
 6};
 7use settings::{default_settings, Settings, SettingsStore};
 8use std::borrow::Cow;
 9use std::sync::Arc;
10use theme::ThemeSettings;
11use ui::{prelude::*, ContextMenuStory};
12
13struct Assets;
14
15impl AssetSource for Assets {
16    fn load(&self, _path: &str) -> Result<Cow<[u8]>> {
17        todo!();
18    }
19
20    fn list(&self, _path: &str) -> Result<Vec<SharedString>> {
21        Ok(vec![])
22    }
23}
24
25fn main() {
26    let asset_source = Arc::new(Assets);
27    gpui::App::production(asset_source).run(move |cx| {
28        let mut store = SettingsStore::default();
29        store
30            .set_default_settings(default_settings().as_ref(), cx)
31            .unwrap();
32        cx.set_global(store);
33        ui::settings::init(cx);
34        theme::init(theme::LoadThemes::JustBase, cx);
35
36        cx.open_window(
37            WindowOptions {
38                bounds: WindowBounds::Fixed(Bounds {
39                    origin: Default::default(),
40                    size: size(px(1500.), px(780.)).into(),
41                }),
42                ..Default::default()
43            },
44            move |cx| {
45                let ui_font_size = ThemeSettings::get_global(cx).ui_font_size;
46                cx.set_rem_size(ui_font_size);
47
48                cx.build_view(|cx| TestView {
49                    story: cx.build_view(|_| ContextMenuStory).into(),
50                })
51            },
52        );
53
54        cx.activate(true);
55    })
56}
57
58struct TestView {
59    story: AnyView,
60}
61
62impl Render for TestView {
63    type Element = Div<Self>;
64
65    fn render(&mut self, _cx: &mut ViewContext<Self>) -> Self::Element {
66        div()
67            .flex()
68            .flex_col()
69            .size_full()
70            .font("Helvetica")
71            .child(self.story.clone())
72    }
73}