summaryrefslogtreecommitdiffstats
path: root/pure
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-02-16 17:15:43 +0700
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-02-16 17:15:43 +0700
commit6e242fe0e506f8086371a24f03e7fbe3a10ca2ae (patch)
treeb480ea3d6c8e63567a191d0dfb79bec522178832 /pure
parent019af8ddbf96680ffcee2b3407819e90575760cb (diff)
downloadiced-6e242fe0e506f8086371a24f03e7fbe3a10ca2ae.tar.gz
iced-6e242fe0e506f8086371a24f03e7fbe3a10ca2ae.tar.bz2
iced-6e242fe0e506f8086371a24f03e7fbe3a10ca2ae.zip
Add `pick_list` function helper in `iced_pure::widget`
Diffstat (limited to 'pure')
-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())
}