pub struct ComboBox { /* private fields */ }Expand description
A drop-down selection menu with a descriptive label.
let before = selected;
egui::ComboBox::from_label("Select one!")
.selected_text(format!("{:?}", selected))
.show_ui(ui, |ui| {
ui.selectable_value(&mut selected, Enum::First, "First");
ui.selectable_value(&mut selected, Enum::Second, "Second");
ui.selectable_value(&mut selected, Enum::Third, "Third");
}
);
if selected != before {
// Handle selection change
}Implementations§
Source§impl ComboBox
impl ComboBox
Sourcepub fn new(id_salt: impl Hash, label: impl Into<WidgetText>) -> Self
pub fn new(id_salt: impl Hash, label: impl Into<WidgetText>) -> Self
Create new ComboBox with id and label
Sourcepub fn from_label(label: impl Into<WidgetText>) -> Self
pub fn from_label(label: impl Into<WidgetText>) -> Self
Label shown next to the combo box
Sourcepub fn from_id_salt(id_salt: impl Hash) -> Self
pub fn from_id_salt(id_salt: impl Hash) -> Self
Without label.
Sourcepub fn from_id_source(id_salt: impl Hash) -> Self
👎Deprecated: Renamed from_id_salt
pub fn from_id_source(id_salt: impl Hash) -> Self
Renamed from_id_salt
Without label.
Sourcepub fn width(self, width: f32) -> Self
pub fn width(self, width: f32) -> Self
Set the outer width of the button and menu.
Default is Spacing::combo_width.
Sourcepub fn height(self, height: f32) -> Self
pub fn height(self, height: f32) -> Self
Set the maximum outer height of the menu.
Default is Spacing::combo_height.
Sourcepub fn selected_text(self, selected_text: impl Into<WidgetText>) -> Self
pub fn selected_text(self, selected_text: impl Into<WidgetText>) -> Self
What we show as the currently selected value
Sourcepub fn icon(
self,
icon_fn: impl FnOnce(&Ui, Rect, &WidgetVisuals, bool) + 'static,
) -> Self
pub fn icon( self, icon_fn: impl FnOnce(&Ui, Rect, &WidgetVisuals, bool) + 'static, ) -> Self
Use the provided function to render a different ComboBox icon.
Defaults to a triangle that expands when the cursor is hovering over the ComboBox.
For example:
pub fn filled_triangle(
ui: &egui::Ui,
rect: egui::Rect,
visuals: &egui::style::WidgetVisuals,
_is_open: bool,
) {
let rect = egui::Rect::from_center_size(
rect.center(),
egui::vec2(rect.width() * 0.6, rect.height() * 0.4),
);
ui.painter().add(egui::Shape::convex_polygon(
vec![rect.left_top(), rect.right_top(), rect.center_bottom()],
visuals.fg_stroke.color,
visuals.fg_stroke,
));
}
egui::ComboBox::from_id_salt("my-combobox")
.selected_text(text)
.icon(filled_triangle)
.show_ui(ui, |_ui| {});Sourcepub fn wrap_mode(self, wrap_mode: TextWrapMode) -> Self
pub fn wrap_mode(self, wrap_mode: TextWrapMode) -> Self
Controls the wrap mode used for the selected text.
By default, Ui::wrap_mode will be used, which can be overridden with crate::Style::wrap_mode.
Note that any \n in the text will always produce a new line.
Sourcepub fn wrap(self) -> Self
pub fn wrap(self) -> Self
Set Self::wrap_mode to TextWrapMode::Wrap.
Sourcepub fn close_behavior(self, close_behavior: PopupCloseBehavior) -> Self
pub fn close_behavior(self, close_behavior: PopupCloseBehavior) -> Self
Controls the close behavior for the popup.
By default, PopupCloseBehavior::CloseOnClick will be used.
Sourcepub fn popup_style(self, popup_style: StyleModifier) -> Self
pub fn popup_style(self, popup_style: StyleModifier) -> Self
Set the style of the popup menu.
Could for example be used with crate::containers::menu::menu_style to get the frame-less
menu button style.
Sourcepub fn show_ui<R>(
self,
ui: &mut Ui,
menu_contents: impl FnOnce(&mut Ui) -> R,
) -> InnerResponse<Option<R>>
pub fn show_ui<R>( self, ui: &mut Ui, menu_contents: impl FnOnce(&mut Ui) -> R, ) -> InnerResponse<Option<R>>
Show the combo box, with the given ui code for the menu contents.
Returns InnerResponse { inner: None } if the combo box is closed.
Sourcepub fn show_index<Text: Into<WidgetText>>(
self,
ui: &mut Ui,
selected: &mut usize,
len: usize,
get: impl Fn(usize) -> Text,
) -> Response
pub fn show_index<Text: Into<WidgetText>>( self, ui: &mut Ui, selected: &mut usize, len: usize, get: impl Fn(usize) -> Text, ) -> Response
Show a list of items with the given selected index.
let alternatives = ["a", "b", "c", "d"];
let mut selected = 2;
egui::ComboBox::from_label("Select one!").show_index(
ui,
&mut selected,
alternatives.len(),
|i| alternatives[i]
);Auto Trait Implementations§
impl Freeze for ComboBox
impl !RefUnwindSafe for ComboBox
impl !Send for ComboBox
impl !Sync for ComboBox
impl Unpin for ComboBox
impl UnsafeUnpin for ComboBox
impl !UnwindSafe for ComboBox
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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more