pub struct ComboBox { /* private fields */ }Expand description
Implementations§
Source§impl ComboBox
impl ComboBox
Sourcepub fn new(
options: Vec<impl Into<String>>,
selected: usize,
font: Arc<Font>,
) -> Self
pub fn new( options: Vec<impl Into<String>>, selected: usize, font: Arc<Font>, ) -> Self
Create a new ComboBox.
options is the full list of choices; selected is the initial index
(clamped to a valid range).
Sourcepub fn with_selected_cell(self, cell: Rc<Cell<usize>>) -> Self
pub fn with_selected_cell(self, cell: Rc<Cell<usize>>) -> Self
Bind this combo’s selection to an external Rc<Cell<usize>>.
layout() reads the cell each frame so a sibling combo (e.g. the
matching font picker in another window) sharing the same cell
stays in lock-step; user selections here write back. Mirrors the
Slider::with_value_cell / RadioGroup::with_selected_cell pattern.
pub fn with_font_size(self, size: f64) -> Self
pub fn with_margin(self, m: Insets) -> Self
pub fn with_h_anchor(self, h: HAnchor) -> Self
pub fn with_v_anchor(self, v: VAnchor) -> Self
pub fn with_min_size(self, s: Size) -> Self
pub fn with_max_size(self, s: Size) -> Self
Sourcepub fn on_change(self, cb: impl FnMut(usize) + 'static) -> Self
pub fn on_change(self, cb: impl FnMut(usize) + 'static) -> Self
Set the callback called when the user selects a new option.
Sourcepub fn with_item_fonts(self, fonts: Vec<Arc<Font>>) -> Self
pub fn with_item_fonts(self, fonts: Vec<Arc<Font>>) -> Self
Override the font used for EACH dropdown entry individually — one
font per option. Intended for font-preview UI (the System window’s
font picker renders each name in its own face). Each item label
is rebuilt with the matching Arc<Font> and marked to ignore the
system-wide font override (otherwise changing the global font
would overwrite all the per-entry faces).
Lengths must match: fonts.len() should equal the number of
options. Extra fonts are ignored; missing entries keep the
default self.font. The SELECTED label (shown when the dropdown
is closed) is also rebuilt with the currently-selected font so
the closed combo reflects the live face.
pub fn selected(&self) -> usize
pub fn set_selected(&mut self, idx: usize)
Trait Implementations§
Source§impl Widget for ComboBox
impl Widget for ComboBox
Source§fn type_name(&self) -> &'static str
fn type_name(&self) -> &'static str
Source§fn set_bounds(&mut self, b: Rect)
fn set_bounds(&mut self, b: Rect)
Source§fn children_mut(&mut self) -> &mut Vec<Box<dyn Widget>>
fn children_mut(&mut self) -> &mut Vec<Box<dyn Widget>>
Source§fn is_focusable(&self) -> bool
fn is_focusable(&self) -> bool
Source§fn h_anchor(&self) -> HAnchor
fn h_anchor(&self) -> HAnchor
HAnchor::FIT (take natural content width).Source§fn v_anchor(&self) -> VAnchor
fn v_anchor(&self) -> VAnchor
VAnchor::FIT (take natural content height).Source§fn layout(&mut self, available: Size) -> Size
fn layout(&mut self, available: Size) -> Size
Source§fn paint(&mut self, ctx: &mut dyn DrawCtx)
fn paint(&mut self, ctx: &mut dyn DrawCtx)
ctx. Read moreSource§fn on_event(&mut self, event: &Event) -> EventResult
fn on_event(&mut self, event: &Event) -> EventResult
EventResult::Consumed to stop bubbling.Source§fn properties(&self) -> Vec<(&'static str, String)>
fn properties(&self) -> Vec<(&'static str, String)>
Source§fn hit_test(&self, local_pos: Point) -> bool
fn hit_test(&self, local_pos: Point) -> bool
true if local_pos (in this widget’s local coordinates) falls
inside this widget’s interactive area. Default: axis-aligned rect test.Source§fn claims_pointer_exclusively(&self, _local_pos: Point) -> bool
fn claims_pointer_exclusively(&self, _local_pos: Point) -> bool
true, hit_test_subtree stops recursing into this widget’s
children and returns this widget as the hit target. Used for floating
overlays (e.g. a scrollbar painted above its content) that must claim
the pointer before children that happen to share the same pixels.
Default: false.Source§fn id(&self) -> Option<&str>
fn id(&self) -> Option<&str>
Source§fn is_visible(&self) -> bool
fn is_visible(&self) -> bool
false to suppress painting this widget and all its children.
The widget’s own paint() will not be called. Default: true.Source§fn has_backbuffer(&self) -> bool
fn has_backbuffer(&self) -> bool
Source§fn backbuffer_cache_mut(&mut self) -> Option<&mut BackbufferCache>
fn backbuffer_cache_mut(&mut self) -> Option<&mut BackbufferCache>
Source§fn backbuffer_mode(&self) -> BackbufferMode
fn backbuffer_mode(&self) -> BackbufferMode
backbuffer_cache_mut] returns Some. Default
BackbufferMode::Rgba — correct for any widget.
Opt into BackbufferMode::LcdCoverage only when the widget
paints opaque content covering its full bounds.Source§fn contributes_children_to_inspector(&self) -> bool
fn contributes_children_to_inspector(&self) -> bool
Source§fn show_in_inspector(&self) -> bool
fn show_in_inspector(&self) -> bool
false to hide this widget (and its subtree) from the inspector
node snapshot entirely. Intended for zero-size utility widgets such
as layout-time watchers / tickers / invisible composers — they bloat
the inspector tree without providing user-relevant information and,
at scale, can make the inspector’s per-frame tree rebuild expensive.Source§fn lcd_preference(&self) -> Option<bool>
fn lcd_preference(&self) -> Option<bool>
Source§fn paint_overlay(&mut self, _ctx: &mut dyn DrawCtx)
fn paint_overlay(&mut self, _ctx: &mut dyn DrawCtx)
Source§fn clip_children_rect(&self) -> Option<(f64, f64, f64, f64)>
fn clip_children_rect(&self) -> Option<(f64, f64, f64, f64)>
paint_subtree applies this clip before recursing into
children, then restores the previous clip state afterward. The clip does
not affect paint_overlay, which runs after the clip is removed. Read moreSource§fn enforce_integer_bounds(&self) -> bool
fn enforce_integer_bounds(&self) -> bool
paint_subtree should snap this widget’s incoming
translation to the physical pixel grid. Read moreSource§fn take_raise_request(&mut self) -> bool
fn take_raise_request(&mut self) -> bool
crate::widgets::Stack) call this on each
child at the start of layout(). A widget that returns true is
moved to the END of its parent’s child list — painted last, i.e.
raised to the top of the z-order. take_ semantics: the call is
also expected to clear the request so the child doesn’t keep
getting raised every frame. Read moreSource§fn needs_paint(&self) -> bool
fn needs_paint(&self) -> bool
true if this widget, or any visible descendant, has state
that requires a repaint (hover change, tween in flight, etc.). Read moreSource§fn next_paint_deadline(&self) -> Option<Instant>
fn next_paint_deadline(&self) -> Option<Instant>
None = no scheduled wake.
The host loop turns a Some(t) into ControlFlow::WaitUntil(t) so
e.g. a cursor blink fires without continuous polling. Read more