pub struct PickList<'a, T, L, V, Message, Theme = Theme, Renderer = Renderer>where
T: PartialEq + Clone,
L: Borrow<[T]> + 'a,
V: Borrow<T> + 'a,
Theme: Catalog,
Renderer: Renderer,{ /* private fields */ }Expand description
A widget for selecting a single value from a list of options.
§Example
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(
state.favorite,
fruits,
Fruit::to_string,
)
.on_select(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",
})
}
}Implementations§
Source§impl<'a, T, L, V, Message, Theme, Renderer> PickList<'a, T, L, V, Message, Theme, Renderer>
impl<'a, T, L, V, Message, Theme, Renderer> PickList<'a, T, L, V, Message, Theme, Renderer>
Sourcepub fn new(
selected: Option<V>,
options: L,
to_string: impl Fn(&T) -> String + 'a,
) -> Self
pub fn new( selected: Option<V>, options: L, to_string: impl Fn(&T) -> String + 'a, ) -> Self
Creates a new PickList with the given list of options, the current
selected value, and the message to produce when an option is selected.
Sourcepub fn placeholder(self, placeholder: impl Into<String>) -> Self
pub fn placeholder(self, placeholder: impl Into<String>) -> Self
Sets the placeholder of the PickList.
Sets the height of the Menu.
Sourcepub fn line_height(self, line_height: impl Into<LineHeight>) -> Self
pub fn line_height(self, line_height: impl Into<LineHeight>) -> Self
Sets the text text::LineHeight of the PickList.
Sourcepub fn shaping(self, shaping: Shaping) -> Self
pub fn shaping(self, shaping: Shaping) -> Self
Sets the text::Shaping strategy of the PickList.
Sourcepub fn ellipsis(self, ellipsis: Ellipsis) -> Self
pub fn ellipsis(self, ellipsis: Ellipsis) -> Self
Sets the text::Ellipsis strategy of the PickList.
Sourcepub fn on_select(self, on_select: impl Fn(T) -> Message + 'a) -> Self
pub fn on_select(self, on_select: impl Fn(T) -> Message + 'a) -> Self
Sets the message that will be produced when the PickList selected value changes.
Sourcepub fn on_open(self, on_open: Message) -> Self
pub fn on_open(self, on_open: Message) -> Self
Sets the message that will be produced when the PickList is opened.
Sourcepub fn on_close(self, on_close: Message) -> Self
pub fn on_close(self, on_close: Message) -> Self
Sets the message that will be produced when the PickList is closed.
Sourcepub fn style(self, style: impl Fn(&Theme, Status) -> Style + 'a) -> Self
pub fn style(self, style: impl Fn(&Theme, Status) -> Style + 'a) -> Self
Sets the style of the PickList.
Sets the style of the Menu.
Sourcepub fn class(self, class: impl Into<<Theme as Catalog>::Class<'a>>) -> Self
Available on crate feature advanced only.
pub fn class(self, class: impl Into<<Theme as Catalog>::Class<'a>>) -> Self
advanced only.Sets the style class of the PickList.
Available on crate feature advanced only.
advanced only.Sets the style class of the Menu.
Trait Implementations§
Source§impl<'a, T, L, V, Message, Theme, Renderer> From<PickList<'a, T, L, V, Message, Theme, Renderer>> for Element<'a, Message, Theme, Renderer>
impl<'a, T, L, V, Message, Theme, Renderer> From<PickList<'a, T, L, V, Message, Theme, Renderer>> for Element<'a, Message, Theme, Renderer>
Source§impl<'a, T, L, V, Message, Theme, Renderer> Widget<Message, Theme, Renderer> for PickList<'a, T, L, V, Message, Theme, Renderer>
impl<'a, T, L, V, Message, Theme, Renderer> Widget<Message, Theme, Renderer> for PickList<'a, T, L, V, Message, Theme, Renderer>
Source§fn operate(
&mut self,
tree: &mut Tree,
layout: Layout<'_>,
_renderer: &Renderer,
operation: &mut dyn Operation,
)
fn operate( &mut self, tree: &mut Tree, layout: Layout<'_>, _renderer: &Renderer, operation: &mut dyn Operation, )
Source§fn update(
&mut self,
tree: &mut Tree,
event: &Event,
layout: Layout<'_>,
cursor: Cursor,
_renderer: &Renderer,
shell: &mut Shell<'_, Message>,
_viewport: &Rectangle,
)
fn update( &mut self, tree: &mut Tree, event: &Event, layout: Layout<'_>, cursor: Cursor, _renderer: &Renderer, shell: &mut Shell<'_, Message>, _viewport: &Rectangle, )
Source§fn mouse_interaction(
&self,
_tree: &Tree,
layout: Layout<'_>,
cursor: Cursor,
_viewport: &Rectangle,
_renderer: &Renderer,
) -> Interaction
fn mouse_interaction( &self, _tree: &Tree, layout: Layout<'_>, cursor: Cursor, _viewport: &Rectangle, _renderer: &Renderer, ) -> Interaction
Source§fn draw(
&self,
tree: &Tree,
renderer: &mut Renderer,
theme: &Theme,
_style: &Style,
layout: Layout<'_>,
_cursor: Cursor,
viewport: &Rectangle,
)
fn draw( &self, tree: &Tree, renderer: &mut Renderer, theme: &Theme, _style: &Style, layout: Layout<'_>, _cursor: Cursor, viewport: &Rectangle, )
Draws the
Widget using the associated Renderer.Auto Trait Implementations§
impl<'a, T, L, V, Message, Theme, Renderer> Freeze for PickList<'a, T, L, V, Message, Theme, Renderer>
impl<'a, T, L, V, Message, Theme = Theme, Renderer = Renderer> !RefUnwindSafe for PickList<'a, T, L, V, Message, Theme, Renderer>
impl<'a, T, L, V, Message, Theme = Theme, Renderer = Renderer> !Send for PickList<'a, T, L, V, Message, Theme, Renderer>
impl<'a, T, L, V, Message, Theme = Theme, Renderer = Renderer> !Sync for PickList<'a, T, L, V, Message, Theme, Renderer>
impl<'a, T, L, V, Message, Theme, Renderer> Unpin for PickList<'a, T, L, V, Message, Theme, Renderer>
impl<'a, T, L, V, Message, Theme, Renderer> UnsafeUnpin for PickList<'a, T, L, V, Message, Theme, Renderer>where
L: UnsafeUnpin,
<Theme as Catalog>::Class<'a>: UnsafeUnpin,
<Theme as Catalog>::Class<'a>: UnsafeUnpin,
Message: UnsafeUnpin,
V: UnsafeUnpin,
<Renderer as Renderer>::Font: UnsafeUnpin,
impl<'a, T, L, V, Message, Theme = Theme, Renderer = Renderer> !UnwindSafe for PickList<'a, T, L, V, Message, Theme, Renderer>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more