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}