iced_widget_kit/
helpers.rs1#[cfg(feature = "expander")]
2use {crate::expander::Expander, iced_core::Element};
3
4#[cfg(feature = "ribbon")]
5use {
6 crate::ribbon::{self, Group, Ribbon},
7 iced_widget::{button, svg, text},
8};
9
10#[cfg(feature = "selector_bar")]
11use crate::selector_bar::{
12 self, SelectorBar,
13 item::{self, Item as SelectorBarItem},
14};
15
16#[cfg(feature = "ribbon")]
18#[must_use]
19pub fn ribbon<'a, Id, Message, Theme, Renderer>(
20 groups: impl IntoIterator<Item = Group<'a, Id, Message, Theme, Renderer>>,
21) -> Ribbon<'a, Id, Message, Theme, Renderer>
22where
23 Id: Clone + Eq,
24 Message: 'a + Clone,
25 Theme: 'a + ribbon::Catalog + button::Catalog + svg::Catalog + text::Catalog,
26 <Theme as text::Catalog>::Class<'a>: From<text::StyleFn<'a, Theme>>,
27 Renderer: 'a + iced_core::Renderer + iced_core::svg::Renderer + iced_core::text::Renderer,
28 <Renderer as iced_core::text::Renderer>::Font: From<iced_core::Font>,
29 <Renderer as iced_core::text::Renderer>::Paragraph: Clone,
30{
31 Ribbon::new(groups)
32}
33
34#[cfg(feature = "selector_bar")]
49#[must_use]
50pub fn selector_bar<'a, Id, Message, Theme, Renderer>(
51 items: impl IntoIterator<Item = SelectorBarItem<'a, Id, Message, Theme, Renderer>>,
52 selected_id: Id,
53 on_select: impl Fn(Id) -> Message + 'a,
54) -> SelectorBar<'a, Id, Message, Theme, Renderer>
55where
56 Id: Eq,
57 Theme: selector_bar::Catalog + item::Catalog,
58{
59 SelectorBar::new(items, selected_id, on_select)
60}
61
62#[cfg(feature = "expander")]
77#[must_use]
78pub fn expander<'a, H, C, Message, Theme, Renderer>(
79 header: H,
80 content: C,
81 is_expanded: bool,
82) -> Expander<'a, Message, Theme, Renderer>
83where
84 H: Into<Element<'a, Message, Theme, Renderer>>,
85 C: Into<Element<'a, Message, Theme, Renderer>>,
86{
87 Expander::new(header, content, is_expanded)
88}