toggle_button.rs

 1use gpui::{Component, Render};
 2use story::{StoryContainer, StoryItem, StorySection};
 3
 4use crate::{prelude::*, ToggleButton};
 5
 6pub struct ToggleButtonStory;
 7
 8impl Render for ToggleButtonStory {
 9    type Element = Component<StoryContainer>;
10
11    fn render(&mut self, _cx: &mut ViewContext<Self>) -> Self::Element {
12        StoryContainer::new(
13            "Toggle Button",
14            "crates/ui2/src/components/stories/toggle_button.rs",
15        )
16        .child(
17            StorySection::new().child(
18                StoryItem::new(
19                    "Default",
20                    ToggleButton::new("default_toggle_button", "Hello"),
21                )
22                .description("Displays a toggle button.")
23                .usage(""),
24            ),
25        )
26        .child(
27            StorySection::new().child(
28                StoryItem::new(
29                    "Toggle button group",
30                    h_stack()
31                        .child(
32                            ToggleButton::new(1, "Apple")
33                                .style(ButtonStyle::Filled)
34                                .first(),
35                        )
36                        .child(
37                            ToggleButton::new(2, "Banana")
38                                .style(ButtonStyle::Filled)
39                                .middle(),
40                        )
41                        .child(
42                            ToggleButton::new(3, "Cherry")
43                                .style(ButtonStyle::Filled)
44                                .middle(),
45                        )
46                        .child(
47                            ToggleButton::new(4, "Dragonfruit")
48                                .style(ButtonStyle::Filled)
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_stack()
61                        .child(
62                            ToggleButton::new(1, "Apple")
63                                .style(ButtonStyle::Filled)
64                                .first(),
65                        )
66                        .child(
67                            ToggleButton::new(2, "Banana")
68                                .style(ButtonStyle::Filled)
69                                .selected(true)
70                                .middle(),
71                        )
72                        .child(
73                            ToggleButton::new(3, "Cherry")
74                                .style(ButtonStyle::Filled)
75                                .middle(),
76                        )
77                        .child(
78                            ToggleButton::new(4, "Dragonfruit")
79                                .style(ButtonStyle::Filled)
80                                .last(),
81                        ),
82                )
83                .description("Displays a group of toggle buttons.")
84                .usage(""),
85            ),
86        )
87        .into_element()
88    }
89}