title_bar.rs

 1use gpui::{NoAction, Render};
 2use story::{StoryContainer, StoryItem, StorySection};
 3
 4use crate::{prelude::*, PlatformStyle, TitleBar};
 5
 6pub struct TitleBarStory;
 7
 8impl Render for TitleBarStory {
 9    fn render(&mut self, _cx: &mut ViewContext<Self>) -> impl IntoElement {
10        fn add_sample_children(titlebar: TitleBar) -> TitleBar {
11            titlebar
12                .child(div().size_2().bg(gpui::red()))
13                .child(div().size_2().bg(gpui::blue()))
14                .child(div().size_2().bg(gpui::green()))
15        }
16
17        StoryContainer::new("TitleBar", "crates/ui/src/components/stories/title_bar.rs")
18            .child(
19                StorySection::new().child(
20                    StoryItem::new(
21                        "Default (macOS)",
22                        TitleBar::new("macos", Box::new(NoAction))
23                            .platform_style(PlatformStyle::Mac)
24                            .map(add_sample_children),
25                    )
26                    .description("")
27                    .usage(""),
28                ),
29            )
30            .child(
31                StorySection::new().child(
32                    StoryItem::new(
33                        "Default (Linux)",
34                        TitleBar::new("linux", Box::new(NoAction))
35                            .platform_style(PlatformStyle::Linux)
36                            .map(add_sample_children),
37                    )
38                    .description("")
39                    .usage(""),
40                ),
41            )
42            .child(
43                StorySection::new().child(
44                    StoryItem::new(
45                        "Default (Windows)",
46                        TitleBar::new("windows", Box::new(NoAction))
47                            .platform_style(PlatformStyle::Windows)
48                            .map(add_sample_children),
49                    )
50                    .description("")
51                    .usage(""),
52                ),
53            )
54            .into_element()
55    }
56}