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                                .size(ButtonSize::Large)
35                                .first(),
36                        )
37                        .child(
38                            ToggleButton::new(2, "Banana")
39                                .style(ButtonStyle::Filled)
40                                .size(ButtonSize::Large)
41                                .middle(),
42                        )
43                        .child(
44                            ToggleButton::new(3, "Cherry")
45                                .style(ButtonStyle::Filled)
46                                .size(ButtonSize::Large)
47                                .middle(),
48                        )
49                        .child(
50                            ToggleButton::new(4, "Dragonfruit")
51                                .style(ButtonStyle::Filled)
52                                .size(ButtonSize::Large)
53                                .last(),
54                        ),
55                )
56                .description("Displays a group of toggle buttons.")
57                .usage(""),
58            ),
59        )
60        .child(
61            StorySection::new().child(
62                StoryItem::new(
63                    "Toggle button group with selection",
64                    h_stack()
65                        .child(
66                            ToggleButton::new(1, "Apple")
67                                .style(ButtonStyle::Filled)
68                                .size(ButtonSize::Large)
69                                .first(),
70                        )
71                        .child(
72                            ToggleButton::new(2, "Banana")
73                                .style(ButtonStyle::Filled)
74                                .size(ButtonSize::Large)
75                                .selected(true)
76                                .middle(),
77                        )
78                        .child(
79                            ToggleButton::new(3, "Cherry")
80                                .style(ButtonStyle::Filled)
81                                .size(ButtonSize::Large)
82                                .middle(),
83                        )
84                        .child(
85                            ToggleButton::new(4, "Dragonfruit")
86                                .style(ButtonStyle::Filled)
87                                .size(ButtonSize::Large)
88                                .last(),
89                        ),
90                )
91                .description("Displays a group of toggle buttons.")
92                .usage(""),
93            ),
94        )
95        .into_element()
96    }
97}