pub struct Combobox<T: PartialEq + 'static> { /* private fields */ }Expand description
Combobox contains a list of values of which one can be selected The selected value can be changed by using the Left and Right buttons Focus highlights the Combobox’s text
Design (Border is part of the component):
┌─┬─────────────┬─┐
│<│ Text [2/28] │>│
└─┴─────────────┴─┘Implementations§
Source§impl<T: PartialEq> Combobox<T>
impl<T: PartialEq> Combobox<T>
pub const INDICATOR_LEFT: Grapheme = ScrollViewer::ARROW_LEFT
pub const INDICATOR_RIGHT: Grapheme = ScrollViewer::ARROW_RIGHT
pub const DEFAULT_BORDER: BorderKind = BorderKind::Solid
pub fn default_callback(_: &mut Self)
pub fn default_key_handler(&mut self, event: &mut WindowEvent)
pub fn set_key_handler(&mut self, f: ComboboxKeyHandler<T>)
Sourcepub fn set_selection_changed_callback<F: Fn(&mut Self) + 'static>(
&mut self,
callback: F,
)
pub fn set_selection_changed_callback<F: Fn(&mut Self) + 'static>( &mut self, callback: F, )
Examples found in repository?
examples/stackpanel.rs (lines 74-77)
52 fn default() -> Self {
53 let label = WindowFactory::create::<Label>();
54 label
55 .borrow_mut()
56 .set_text("Please enter a valid number (x ∈ ℕ):");
57 let button = WindowFactory::create::<Button>();
58 button.borrow_mut().set_text("Press to increment:");
59 button.borrow_mut().set_border(BorderKind::Solid.into());
60 let mut cb: Combobox<u8> = Combobox::default();
61 for v in [1, 2, 4] {
62 cb.add_item(DisplayValue::new(v, format!("Increment by {}", v)));
63 }
64 let cb = Rc::new(RefCell::new(cb));
65 let combobox = cb.clone();
66 let numeric = WindowFactory::create::<Numeric>();
67 numeric.borrow_mut().set_base(Radix::Hexadecimal);
68 numeric.borrow_mut().set_min_range(8);
69 numeric.borrow_mut().set_max_range(64);
70 numeric.borrow_mut().set_focus_color(Some(Color::Cyan));
71 let nc = numeric.clone();
72 combobox
73 .borrow_mut()
74 .set_selection_changed_callback(move |cb| {
75 let mut brw = nc.borrow_mut();
76 brw.set_stepcount(*cb.get_value().unwrap().value())
77 });
78
79 let stackpanel = WindowFactory::create::<Stackpanel>();
80 stackpanel.borrow_mut().set_border(BorderKind::Solid.into());
81 stackpanel.borrow_mut().add_item(label);
82 stackpanel.borrow_mut().add_item(numeric);
83 stackpanel.borrow_mut().add_item(cb);
84
85 Self {
86 uid: WindowUID::new(),
87 stackpanel,
88 running: true,
89 }
90 }Sourcepub fn get_value(&self) -> Option<&DisplayValue<T>>
pub fn get_value(&self) -> Option<&DisplayValue<T>>
Examples found in repository?
examples/stackpanel.rs (line 76)
52 fn default() -> Self {
53 let label = WindowFactory::create::<Label>();
54 label
55 .borrow_mut()
56 .set_text("Please enter a valid number (x ∈ ℕ):");
57 let button = WindowFactory::create::<Button>();
58 button.borrow_mut().set_text("Press to increment:");
59 button.borrow_mut().set_border(BorderKind::Solid.into());
60 let mut cb: Combobox<u8> = Combobox::default();
61 for v in [1, 2, 4] {
62 cb.add_item(DisplayValue::new(v, format!("Increment by {}", v)));
63 }
64 let cb = Rc::new(RefCell::new(cb));
65 let combobox = cb.clone();
66 let numeric = WindowFactory::create::<Numeric>();
67 numeric.borrow_mut().set_base(Radix::Hexadecimal);
68 numeric.borrow_mut().set_min_range(8);
69 numeric.borrow_mut().set_max_range(64);
70 numeric.borrow_mut().set_focus_color(Some(Color::Cyan));
71 let nc = numeric.clone();
72 combobox
73 .borrow_mut()
74 .set_selection_changed_callback(move |cb| {
75 let mut brw = nc.borrow_mut();
76 brw.set_stepcount(*cb.get_value().unwrap().value())
77 });
78
79 let stackpanel = WindowFactory::create::<Stackpanel>();
80 stackpanel.borrow_mut().set_border(BorderKind::Solid.into());
81 stackpanel.borrow_mut().add_item(label);
82 stackpanel.borrow_mut().add_item(numeric);
83 stackpanel.borrow_mut().add_item(cb);
84
85 Self {
86 uid: WindowUID::new(),
87 stackpanel,
88 running: true,
89 }
90 }pub fn set_border_fg(&mut self, color: Option<Color>)
pub fn set_border_bg(&mut self, color: Option<Color>)
Sourcepub fn select_next(&mut self)
pub fn select_next(&mut self)
Selects the next possible element
Sourcepub fn select_previous(&mut self)
pub fn select_previous(&mut self)
Selects the previous possible element
Trait Implementations§
Source§impl<T: PartialEq + 'static> HasWindowUID for Combobox<T>
impl<T: PartialEq + 'static> HasWindowUID for Combobox<T>
Source§impl<T: PartialEq> ItemCollection<DisplayValue<T>> for Combobox<T>
impl<T: PartialEq> ItemCollection<DisplayValue<T>> for Combobox<T>
Source§fn add_item(&mut self, item: DisplayValue<T>)
fn add_item(&mut self, item: DisplayValue<T>)
Adds an item to the underlying collection
Source§fn remove_item(&mut self, item: &DisplayValue<T>)
fn remove_item(&mut self, item: &DisplayValue<T>)
Removes an item from the underlying collection
Source§fn remove_at(&mut self, index: Self::Index) -> DisplayValue<T>
fn remove_at(&mut self, index: Self::Index) -> DisplayValue<T>
Removes an item at the given index from the underlying collection
Might panic if index is invalid
Source§fn get_item(&mut self, index: Self::Index) -> Option<&DisplayValue<T>>
fn get_item(&mut self, index: Self::Index) -> Option<&DisplayValue<T>>
Returns an item from the collection by its index
Source§fn clear_items(&mut self)
fn clear_items(&mut self)
Clears all items in the underlying collection
Source§impl<T: PartialEq> Widget for Combobox<T>
impl<T: PartialEq> Widget for Combobox<T>
Source§fn set_border(&mut self, border: BorderStyle)
fn set_border(&mut self, border: BorderStyle)
This is ignored
fn set_visibility(&mut self, visibility: bool)
fn set_width(&mut self, width: Size)
fn set_height(&mut self, height: Size)
fn set_margin(&mut self, margin: Thickness)
fn set_alignment( &mut self, horizontal: HorizontalAlignment, vertical: VerticalAlignment, )
Source§fn set_enabled_state(&mut self, is_enabled: bool)
fn set_enabled_state(&mut self, is_enabled: bool)
Changing the IsEnabled state usually changes the highlight color
fn set_width_constraint(&mut self, width: SizeConstraint)
fn set_height_constraint(&mut self, height: SizeConstraint)
Source§impl<T: PartialEq> WidgetColors for Combobox<T>
impl<T: PartialEq> WidgetColors for Combobox<T>
fn set_disabled_color(&mut self, color: Option<Color>)
fn set_base_fg_color(&mut self, color: Option<Color>)
fn set_base_bg_color(&mut self, color: Option<Color>)
Source§impl<T: PartialEq> Window for Combobox<T>
impl<T: PartialEq> Window for Combobox<T>
Source§fn handle_event(&mut self, event: &mut WindowEvent)
fn handle_event(&mut self, event: &mut WindowEvent)
Source§fn is_enabled(&self) -> bool
fn is_enabled(&self) -> bool
Source§fn children(&mut self, builder: SubWindowBuilder) -> SubWindows
fn children(&mut self, builder: SubWindowBuilder) -> SubWindows
Returns all children windows (and layouting Rects)
Note: When changing the children make sure to also adjust the focus
Source§impl<T: PartialEq> WindowLayout for Combobox<T>
impl<T: PartialEq> WindowLayout for Combobox<T>
Source§fn desired_size(&self, available_size: TPoint) -> TPoint
fn desired_size(&self, available_size: TPoint) -> TPoint
Parents call this to get the desired size of the child
This must not exceed
available_size on any axis
When the result’s product is equal to 0, this window wont be drawnfn border(&self) -> BorderStyle
Source§fn alignment(&self) -> (HorizontalAlignment, VerticalAlignment)
fn alignment(&self) -> (HorizontalAlignment, VerticalAlignment)
fn is_visible(&self) -> bool
fn margin(&self) -> Thickness
Source§fn desired_size_pre_hook(&mut self, available_size: TPoint)
fn desired_size_pre_hook(&mut self, available_size: TPoint)
This is similar to desired_size but will not return anything and can mutably change self
This is executed before WindowLayout::desired_size
Only implement if actually necessary
Auto Trait Implementations§
impl<T> !Freeze for Combobox<T>
impl<T> !RefUnwindSafe for Combobox<T>
impl<T> !Send for Combobox<T>
impl<T> !Sync for Combobox<T>
impl<T> !UnwindSafe for Combobox<T>
impl<T> Unpin for Combobox<T>where
T: Unpin,
impl<T> UnsafeUnpin for Combobox<T>
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
Source§impl<T> Downcast for T
impl<T> Downcast for T
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> WindowHelper for Twhere
T: Window,
impl<T> WindowHelper for Twhere
T: Window,
Source§fn provoke_changed_property(&self, property: WindowProperty)
fn provoke_changed_property(&self, property: WindowProperty)
Helper method for WindowEventQueue::provoke_changed_property