summaryrefslogtreecommitdiffstats
path: root/widget/src/helpers.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-09-19 04:45:15 +0200
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-09-19 04:45:15 +0200
commit7b22b7e87699e22f3e16869093e8a01a91d2e93c (patch)
treeb66482a80b2cae2d4a22cd2517fe760b0d449263 /widget/src/helpers.rs
parentb78243d86f4e35aac7b2e126877909411404e97a (diff)
downloadiced-7b22b7e87699e22f3e16869093e8a01a91d2e93c.tar.gz
iced-7b22b7e87699e22f3e16869093e8a01a91d2e93c.tar.bz2
iced-7b22b7e87699e22f3e16869093e8a01a91d2e93c.zip
Show `pick_list` doc example in multiple places
Diffstat (limited to 'widget/src/helpers.rs')
-rw-r--r--widget/src/helpers.rs63
1 files changed, 62 insertions, 1 deletions
diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs
index ea632ecc..72d5d7fe 100644
--- a/widget/src/helpers.rs
+++ b/widget/src/helpers.rs
@@ -924,7 +924,68 @@ where
/// Creates a new [`PickList`].
///
-/// [`PickList`]: crate::PickList
+/// Pick lists display a dropdown list of selectable options.
+///
+/// # Example
+/// ```no_run
+/// # mod iced { pub mod widget { pub use iced_widget::*; } pub use iced_widget::Renderer; pub use iced_widget::core::*; }
+/// # pub type Element<'a, Message> = iced_widget::core::Element<'a, Message, iced_widget::Theme, iced_widget::Renderer>;
+/// #
+/// use iced::widget::pick_list;
+///
+/// struct State {
+/// favorite: Option<Fruit>,
+/// }
+///
+/// #[derive(Debug, Clone, Copy, PartialEq, Eq)]
+/// enum Fruit {
+/// Apple,
+/// Orange,
+/// Strawberry,
+/// Tomato,
+/// }
+///
+/// #[derive(Debug, Clone)]
+/// enum Message {
+/// FruitSelected(Fruit),
+/// }
+///
+/// fn view(state: &State) -> Element<'_, Message> {
+/// let fruits = [
+/// Fruit::Apple,
+/// Fruit::Orange,
+/// Fruit::Strawberry,
+/// Fruit::Tomato,
+/// ];
+///
+/// pick_list(
+/// fruits,
+/// state.favorite,
+/// Message::FruitSelected,
+/// )
+/// .placeholder("Select your favorite fruit...")
+/// .into()
+/// }
+///
+/// fn update(state: &mut State, message: Message) {
+/// match message {
+/// Message::FruitSelected(fruit) => {
+/// state.favorite = Some(fruit);
+/// }
+/// }
+/// }
+///
+/// impl std::fmt::Display for Fruit {
+/// fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+/// f.write_str(match self {
+/// Self::Apple => "Apple",
+/// Self::Orange => "Orange",
+/// Self::Strawberry => "Strawberry",
+/// Self::Tomato => "Tomato",
+/// })
+/// }
+/// }
+/// ```
pub fn pick_list<'a, T, L, V, Message, Theme, Renderer>(
options: L,
selected: Option<V>,