summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pure/src/widget.rs15
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())
}