toggle_button.rs
1use gpui::Render;
2use story::{Story, StoryItem, StorySection};
3
4use crate::{ToggleButton, prelude::*};
5
6pub struct ToggleButtonStory;
7
8impl Render for ToggleButtonStory {
9 fn render(&mut self, _window: &mut Window, cx: &mut Context<Self>) -> impl IntoElement {
10 Story::container(cx)
11 .child(Story::title_for::<ToggleButton>(cx))
12 .child(
13 StorySection::new().child(
14 StoryItem::new(
15 "Default",
16 ToggleButton::new("default_toggle_button", "Hello"),
17 )
18 .description("Displays a toggle button.")
19 .usage(""),
20 ),
21 )
22 .child(
23 StorySection::new().child(
24 StoryItem::new(
25 "Toggle button group",
26 h_flex()
27 .child(
28 ToggleButton::new(1, "Apple")
29 .style(ButtonStyle::Filled)
30 .size(ButtonSize::Large)
31 .first(),
32 )
33 .child(
34 ToggleButton::new(2, "Banana")
35 .style(ButtonStyle::Filled)
36 .size(ButtonSize::Large)
37 .middle(),
38 )
39 .child(
40 ToggleButton::new(3, "Cherry")
41 .style(ButtonStyle::Filled)
42 .size(ButtonSize::Large)
43 .middle(),
44 )
45 .child(
46 ToggleButton::new(4, "Dragonfruit")
47 .style(ButtonStyle::Filled)
48 .size(ButtonSize::Large)
49 .last(),
50 ),
51 )
52 .description("Displays a group of toggle buttons.")
53 .usage(""),
54 ),
55 )
56 .child(
57 StorySection::new().child(
58 StoryItem::new(
59 "Toggle button group with selection",
60 h_flex()
61 .child(
62 ToggleButton::new(1, "Apple")
63 .style(ButtonStyle::Filled)
64 .size(ButtonSize::Large)
65 .first(),
66 )
67 .child(
68 ToggleButton::new(2, "Banana")
69 .style(ButtonStyle::Filled)
70 .size(ButtonSize::Large)
71 .toggle_state(true)
72 .middle(),
73 )
74 .child(
75 ToggleButton::new(3, "Cherry")
76 .style(ButtonStyle::Filled)
77 .size(ButtonSize::Large)
78 .middle(),
79 )
80 .child(
81 ToggleButton::new(4, "Dragonfruit")
82 .style(ButtonStyle::Filled)
83 .size(ButtonSize::Large)
84 .last(),
85 ),
86 )
87 .description("Displays a group of toggle buttons.")
88 .usage(""),
89 ),
90 )
91 .into_element()
92 }
93}