diff options
-rw-r--r-- | pure/src/widget.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/pure/src/widget.rs b/pure/src/widget.rs index 6dda653d..62f9d95b 100644 --- a/pure/src/widget.rs +++ b/pure/src/widget.rs @@ -40,6 +40,8 @@ use iced_native::overlay; use iced_native::renderer; use iced_native::{Clipboard, Hasher, Length, Point, Rectangle, Shell}; +use std::borrow::Cow; + pub trait Widget<Message, Renderer> { fn width(&self) -> Length; @@ -210,6 +212,19 @@ where Slider::new(range, value, on_change) } +pub fn pick_list<'a, Message, Renderer, T>( + options: impl Into<Cow<'a, [T]>>, + selected: Option<T>, + on_selected: impl Fn(T) -> Message + 'a, +) -> PickList<'a, T, Message, Renderer> +where + T: ToString + Eq + 'static, + [T]: ToOwned<Owned = Vec<T>>, + Renderer: iced_native::text::Renderer, +{ + PickList::new(options, selected, on_selected) +} + pub fn image<Handle>(handle: impl Into<Handle>) -> Image<Handle> { Image::new(handle.into()) } |