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}