pub struct ComboBox<'a, T, Message, Theme = Theme, Renderer = Renderer>{ /* private fields */ }Expand description
A widget for searching and selecting a single value from a list of options.
§Example
use iced::widget::combo_box;
struct State {
fruits: combo_box::State<Fruit>,
favorite: Option<Fruit>,
}
#[derive(Debug, Clone)]
enum Fruit {
Apple,
Orange,
Strawberry,
Tomato,
}
#[derive(Debug, Clone)]
enum Message {
FruitSelected(Fruit),
}
fn view(state: &State) -> Element<'_, Message> {
combo_box(
&state.fruits,
"Select your favorite fruit...",
state.favorite.as_ref(),
Message::FruitSelected
)
.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, Message, Theme, Renderer> ComboBox<'a, T, Message, Theme, Renderer>
impl<'a, T, Message, Theme, Renderer> ComboBox<'a, T, Message, Theme, Renderer>
Sourcepub fn new(
state: &'a State<T>,
placeholder: &str,
selection: Option<&T>,
on_selected: impl Fn(T) -> Message + 'a,
) -> Self
pub fn new( state: &'a State<T>, placeholder: &str, selection: Option<&T>, on_selected: impl Fn(T) -> Message + 'a, ) -> Self
Creates a new ComboBox with the given list of options, a placeholder,
the current selected value, and the message to produce when an option is
selected.
Sourcepub fn on_option_hovered(
self,
on_option_hovered: impl Fn(T) -> Message + 'a,
) -> Self
pub fn on_option_hovered( self, on_option_hovered: impl Fn(T) -> Message + 'a, ) -> Self
Sets the message that will be produced when an option of the
ComboBox is hovered using the arrow keys.
Sourcepub fn on_open(self, message: Message) -> Self
pub fn on_open(self, message: Message) -> Self
Sets the message that will be produced when the ComboBox is
opened.
Sourcepub fn on_close(self, message: Message) -> Self
pub fn on_close(self, message: Message) -> Self
Sets the message that will be produced when the outside area
of the ComboBox is pressed.
Sourcepub fn font(self, font: Renderer::Font) -> Self
pub fn font(self, font: Renderer::Font) -> Self
Sets the Renderer::Font of the ComboBox.
Sourcepub fn icon(self, icon: Icon<Renderer::Font>) -> Self
pub fn icon(self, icon: Icon<Renderer::Font>) -> Self
Sets the text_input::Icon of the ComboBox.
Sourcepub fn line_height(self, line_height: impl Into<LineHeight>) -> Self
pub fn line_height(self, line_height: impl Into<LineHeight>) -> Self
Sets the LineHeight of the ComboBox.
Sets the height of the menu of the ComboBox.
Sourcepub fn shaping(self, shaping: Shaping) -> Self
pub fn shaping(self, shaping: Shaping) -> Self
Sets the text::Shaping strategy of the ComboBox.
Sourcepub fn ellipsis(self, ellipsis: Ellipsis) -> Self
pub fn ellipsis(self, ellipsis: Ellipsis) -> Self
Sets the text::Ellipsis strategy of the ComboBox.
Sourcepub fn input_style(self, style: impl Fn(&Theme, Status) -> Style + 'a) -> Self
pub fn input_style(self, style: impl Fn(&Theme, Status) -> Style + 'a) -> Self
Sets the style of the input of the ComboBox.
Sets the style of the menu of the ComboBox.
Sourcepub fn input_class(
self,
class: impl Into<<Theme as Catalog>::Class<'a>>,
) -> Self
Available on crate feature advanced only.
pub fn input_class( self, class: impl Into<<Theme as Catalog>::Class<'a>>, ) -> Self
advanced only.Sets the style class of the input of the ComboBox.
Available on crate feature advanced only.
advanced only.Sets the style class of the menu of the ComboBox.
Trait Implementations§
Source§impl<'a, T, Message, Theme, Renderer> From<ComboBox<'a, T, Message, Theme, Renderer>> for Element<'a, Message, Theme, Renderer>
impl<'a, T, Message, Theme, Renderer> From<ComboBox<'a, T, Message, Theme, Renderer>> for Element<'a, Message, Theme, Renderer>
Source§impl<T, Message, Theme, Renderer> Widget<Message, Theme, Renderer> for ComboBox<'_, T, Message, Theme, Renderer>
impl<T, Message, Theme, Renderer> Widget<Message, Theme, Renderer> for ComboBox<'_, T, 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, )
Widget using the associated Renderer.