Expose additional helpers in iced::pure

This commit is contained in:
Héctor Ramón Jiménez 2022-02-13 19:23:51 +07:00
parent 98750782f3
commit e50e639b0e
No known key found for this signature in database
GPG key ID: 140CC052C94F138E
2 changed files with 30 additions and 5 deletions

View file

@ -141,6 +141,17 @@ where
Checkbox::new(is_checked, label, f) Checkbox::new(is_checked, label, f)
} }
pub fn toggler<'a, Message, Renderer>(
label: impl Into<Option<String>>,
is_checked: bool,
f: impl Fn(bool) -> Message + 'a,
) -> Toggler<'a, Message, Renderer>
where
Renderer: iced_native::text::Renderer,
{
Toggler::new(is_checked, label, f)
}
pub fn text_input<'a, Message, Renderer>( pub fn text_input<'a, Message, Renderer>(
placeholder: &str, placeholder: &str,
value: &str, value: &str,
@ -153,19 +164,18 @@ where
TextInput::new(placeholder, value, on_change) TextInput::new(placeholder, value, on_change)
} }
pub fn slider<'a, Message, Renderer, T>( pub fn slider<'a, Message, T>(
range: std::ops::RangeInclusive<T>, range: std::ops::RangeInclusive<T>,
value: T, value: T,
on_change: impl Fn(T) -> Message + 'a, on_change: impl Fn(T) -> Message + 'a,
) -> Slider<'a, T, Message> ) -> Slider<'a, T, Message>
where where
Message: Clone, Message: Clone,
Renderer: iced_native::Renderer,
T: Copy + From<u8> + std::cmp::PartialOrd, T: Copy + From<u8> + std::cmp::PartialOrd,
{ {
Slider::new(range, value, on_change) Slider::new(range, value, on_change)
} }
pub fn image<Handle>(handle: Handle) -> Image<Handle> { pub fn image<Handle>(handle: impl Into<Handle>) -> Image<Handle> {
Image::new(handle) Image::new(handle.into())
} }

View file

@ -17,12 +17,27 @@
//! [the original widgets]: crate::widget //! [the original widgets]: crate::widget
//! [`button::State`]: crate::widget::button::State //! [`button::State`]: crate::widget::button::State
//! [impure `Application`]: crate::Application //! [impure `Application`]: crate::Application
pub use iced_pure::{Element as _, Image as _, Text as _, *}; pub use iced_pure::{
Button as _, Column as _, Element as _, Image as _, Row as _, Text as _, *,
};
/// A generic, pure [`Widget`]. /// A generic, pure [`Widget`].
pub type Element<'a, Message> = pub type Element<'a, Message> =
iced_pure::Element<'a, Message, crate::Renderer>; iced_pure::Element<'a, Message, crate::Renderer>;
/// A pure container widget.
pub type Container<'a, Message> =
iced_pure::Container<'a, Message, crate::Renderer>;
/// A pure column widget.
pub type Column<'a, Message> = iced_pure::Column<'a, Message, crate::Renderer>;
/// A pure row widget.
pub type Row<'a, Message> = iced_pure::Row<'a, Message, crate::Renderer>;
/// A pure button widget.
pub type Button<'a, Message> = iced_pure::Button<'a, Message, crate::Renderer>;
/// A pure text widget. /// A pure text widget.
pub type Text = iced_pure::Text<crate::Renderer>; pub type Text = iced_pure::Text<crate::Renderer>;