pub struct ComboBox<T: Clone + PartialEq + 'static> { /* private fields */ }Expand description
A dropdown selection widget.
// Simple: list of strings.
let selected = ctx.signal(None::<String>);
ComboBox::new(["Apple", "Banana", "Cherry"], selected)
.placeholder(lit!("Select a fruit..."))
// Typed items: any T: Clone + PartialEq, plus a label extractor.
#[derive(Clone, PartialEq)] struct Fruit { name: String, emoji: &'static str }
let selected = ctx.signal(None::<Fruit>);
ComboBox::from_items(fruits, selected)
.item_label(|f: &Fruit| lit!(format!("{} {}", f.emoji, f.name)))
// Model-backed: reactive.
let model = ListModel::from_vec(fruits);
ComboBox::from_model(model, selected)
.item_label(|f: &Fruit| lit!(f.name.clone()))
.max_visible_items(6)Implementations§
Source§impl ComboBox<String>
impl ComboBox<String>
Sourcepub fn new(
items: impl IntoIterator<Item = impl Into<String>>,
selected: Signal<Option<String>>,
) -> Self
pub fn new( items: impl IntoIterator<Item = impl Into<String>>, selected: Signal<Option<String>>, ) -> Self
Create a ComboBox from a list of strings.
Accepts any impl Into<String> — string literals (&str),
owned Strings, resolved LocalizedStrings, etc. For
translated items, resolve translations before passing in,
e.g. vec![tr!(apple()).resolve_now(), ...].
Source§impl<T: Clone + PartialEq + 'static> ComboBox<T>
impl<T: Clone + PartialEq + 'static> ComboBox<T>
Sourcepub fn from_items<F>(
items: impl IntoIterator<Item = T>,
selected: Signal<Option<T>>,
item_label: F,
) -> Self
pub fn from_items<F>( items: impl IntoIterator<Item = T>, selected: Signal<Option<T>>, item_label: F, ) -> Self
Static list of typed items. item_label is the display extractor —
it’s required at construction so the compiler enforces it rather
than a runtime check. For T = String, use ComboBox::new which
defaults to the identity label.
Sourcepub fn from_model<F>(
model: ListModel<T>,
selected: Signal<Option<T>>,
item_label: F,
) -> Self
pub fn from_model<F>( model: ListModel<T>, selected: Signal<Option<T>>, item_label: F, ) -> Self
Backed by a reactive ListModel<T>. Inserts, removes, and reorders
propagate into the dropdown automatically. If the currently-selected
value disappears from the model, selected becomes None.
Sourcepub fn from_source<S, F>(
source: S,
selected: Signal<Option<T>>,
item_label: F,
) -> Self
pub fn from_source<S, F>( source: S, selected: Signal<Option<T>>, item_label: F, ) -> Self
Backed by a custom ListDataSource — for external or paged data.
Sourcepub fn item_label(self, f: impl Fn(&T) -> LocalizedString + 'static) -> Self
pub fn item_label(self, f: impl Fn(&T) -> LocalizedString + 'static) -> Self
Override the display-label extractor. Rarely needed — prefer passing
item_label to the constructor. Useful for the ComboBox<String>
path when you want a non-identity projection.
Sourcepub fn render_item(
self,
f: impl Fn(&T, bool) -> Box<dyn Widget> + 'static,
) -> Self
pub fn render_item( self, f: impl Fn(&T, bool) -> Box<dyn Widget> + 'static, ) -> Self
Custom cell rendering. The closure receives the item and a flag indicating whether it is the currently-selected value.
The framework wraps the returned widget with the correct
Role::ListBoxOption accessibility and tap handler, so callers
do not need to manage a11y or selection dispatch themselves.
Reactivity. The bool argument is a snapshot at build time.
If the selection flips after the dropdown is open, the user’s
subtree is not automatically re-rendered; the framework-managed
highlight background (behind the custom widget) does update, and
closing and re-opening the dropdown picks up the new state. If
you need a reactive appearance that tracks selection, close over
a Signal<Option<T>> in your closure and compare against the
item value inside a .map() / bind_* on primitives.
Accessibility. The wrapper’s set_name(label) (from
item_label) is what screen readers announce. If the returned
widget includes its own text nodes (e.g. a bare TextWidget), the
label may be announced twice — one from the wrapper, one from the
inner text. Wrap primary text nodes in .a11y_hidden() to avoid
duplication, and reserve visible widgets for presentation only.
Sourcepub fn render_selected(
self,
f: impl Fn(&T) -> Box<dyn Widget> + 'static,
) -> Self
pub fn render_selected( self, f: impl Fn(&T) -> Box<dyn Widget> + 'static, ) -> Self
Custom renderer for the trigger’s selected value — the widget shown
when the combo is closed. The parallel of render_item
for the trigger rather than the dropdown rows.
When set, the closed combo shows f(&value) for the current
selection instead of the plain text label (item_label). The
canonical use is a FontPicker rendering the selected family name in
its own typeface. The subtree is rebuilt whenever the selection
changes and whenever the locale changes (so a None-state
placeholder re-translates), without rebuilding the whole ComboBox.
Accessibility. The rendered subtree is excluded from the
accessibility tree — the ComboBox’s own accessibility(builder)
already announces the selected value via set_value, so the custom
visual can never double-announce. When nothing is selected the
trigger shows the placeholder text.
Sourcepub fn on_select(self, f: impl Fn(&T, &mut EventContext<'_>) + 'static) -> Self
pub fn on_select(self, f: impl Fn(&T, &mut EventContext<'_>) + 'static) -> Self
Register a callback fired when the user commits a selection — by
tapping a dropdown row or picking one with the keyboard (arrows /
type-ahead / Home / End). The callback receives the chosen value
and a live EventContext, so it can run context-bearing actions
that observing the bound selected signal cannot — e.g.
ctx.set_locale(...), navigation, or opening another overlay.
It fires only on user-driven commits, not on external writes
to the selected signal (those are observed via ctx.effect).
The selected signal is updated before the callback runs.
Sourcepub fn max_visible_items(self, n: usize) -> Self
pub fn max_visible_items(self, n: usize) -> Self
Maximum number of items shown before the dropdown becomes scrollable. Defaults to 8. Clamped to at least 1.
Sourcepub fn type_ahead_timeout(self, d: Duration) -> Self
pub fn type_ahead_timeout(self, d: Duration) -> Self
Reset window for keyboard type-ahead. Keystrokes more than d apart
begin a fresh prefix; within d they extend it. Defaults to 500 ms,
matching MenuList::type_ahead_timeout. Pass Duration::ZERO to
treat each keystroke independently.
Sourcepub fn placeholder(self, text: impl Into<LocalizedString>) -> Self
pub fn placeholder(self, text: impl Into<LocalizedString>) -> Self
Placeholder text shown in the trigger when selected is None.
Accepts a tr!(...) directly (resolved at build); use
placeholder_literal for an
untranslated string.
Sourcepub fn label(self, label: impl Into<LocalizedString>) -> Self
pub fn label(self, label: impl Into<LocalizedString>) -> Self
Accessible label describing what this combo box is for (e.g. “Fruit”, “Font family”). Independent of the visible placeholder and of the current selection — screen readers announce this as the name of the control.
Sourcepub fn enabled(self, enabled: impl Into<Prop<bool>>) -> Self
pub fn enabled(self, enabled: impl Into<Prop<bool>>) -> Self
Set the enabled state, statically or reactively. Forwarded to the arena at build time.
Sourcepub fn variant(self, variant: ComboBoxVariant) -> Self
pub fn variant(self, variant: ComboBoxVariant) -> Self
Pick a Tier-1 design-language variant
(ComboBoxVariant::Outlined / Filled / Underline / Plain).
The active ComboBoxStyle decides what to do with the hint —
IntUI’s default impl honours Outlined (default) and Plain;
a custom impl (Material 3, macOS, etc.) might paint differently.
Sourcepub fn style(self, style: impl ComboBoxStyle) -> Self
pub fn style(self, style: impl ComboBoxStyle) -> Self
Override the active ComboBoxStyle for this widget instance
only. The default IntUI chrome (crate::styles::RecipeComboBoxStyle)
resolves its dimensions from theme.input (the density
InputTokens); custom impls
can paint anything they want around the selected-label slot.
Sourcepub fn text_style(self, style: impl Into<TextStyleProp>) -> Self
pub fn text_style(self, style: impl Into<TextStyleProp>) -> Self
Override the selected-value text style (font, size, weight).
Accepts a TextStyleRole, a TextStyle, or a Signal of either.
Default (unset) is TextStyleRole::Body.
Sourcepub fn text_role(self, color: impl Into<ColorProp>) -> Self
pub fn text_role(self, color: impl Into<ColorProp>) -> Self
Override the selected-value text color. Accepts Color, a role, or
a Signal of either. Default (unset) is enabled-derived
(Primary / Disabled); setting this replaces that cascade.
Sourcepub fn tooltip(self, text: impl Into<LocalizedString>) -> Self
pub fn tooltip(self, text: impl Into<LocalizedString>) -> Self
Attach a plain tooltip that appears after a hover delay. The tooltip is anchored to the trigger only — with the framework’s overlay-boundary gate it does not re-trigger while the pointer is over the open dropdown’s option rows.
Mutually exclusive with rich_tooltip /
rich_tooltip_content /
composite_tooltip — last call wins.
Sourcepub fn rich_tooltip(self, key: impl Into<String>) -> Self
pub fn rich_tooltip(self, key: impl Into<String>) -> Self
Attach a rich tooltip resolved from the app-wide tooltip registry.
The key is looked up via
TooltipRegistry at build
time; the resolved body supports inline markup, a shortcut chip,
and a “more” disclosure. Overrides any previously set tooltip.
Sourcepub fn rich_tooltip_content(self, content: TooltipContent) -> Self
pub fn rich_tooltip_content(self, content: TooltipContent) -> Self
Attach a rich tooltip driven by inline
TooltipContent — for one-off
tooltips that aren’t worth registering centrally. Overrides any
previously set tooltip.
Sourcepub fn composite_tooltip(self, content: impl Widget + 'static) -> Self
pub fn composite_tooltip(self, content: impl Widget + 'static) -> Self
Attach a composite tooltip — third tier, hosting an arbitrary
widget tree (tabbed sections, charts, conditional rows). Promotes
to a focusable Role::Dialog after the standard dwell. Overrides
any plain or rich tooltip previously set.
Source§impl<T: Clone + PartialEq + 'static> ComboBox<T>
Searchable-mode builders. The search field is a TextInput, which
shares the RichTextEditor engine and therefore the teksilo-text
dependency.
impl<T: Clone + PartialEq + 'static> ComboBox<T>
Searchable-mode builders. The search field is a TextInput, which
shares the RichTextEditor engine and therefore the teksilo-text
dependency.
Sourcepub fn searchable(self, enabled: bool) -> Self
pub fn searchable(self, enabled: bool) -> Self
Show a search field at the top of the dropdown panel and filter
the list live against the user’s query. When true, items are
matched by the closure passed to filter, or —
if no filter is set — by a case-insensitive substring match on
the item_label.
The search input becomes a child of the dropdown panel only, not of the trigger: the closed combo box looks identical whether searchable or not.
The query signal is created internally. Use
search_query to supply your own if you
want to observe or drive the query externally.
Sourcepub fn search_query(self, query: Signal<String>) -> Self
pub fn search_query(self, query: Signal<String>) -> Self
Bind the search field to an external Signal<String>. Implies
searchable(true). Useful for observing or
programmatically setting the query from outside the widget
(e.g. a “Clear” button, persistence across sessions).
Sourcepub fn filter(self, f: impl Fn(&str, &T) -> bool + 'static) -> Self
pub fn filter(self, f: impl Fn(&str, &T) -> bool + 'static) -> Self
Custom match predicate for searchable mode. Called on every
visible-item pass with the current query string (as typed, not
normalized) and a reference to the item; return true to keep
the item in the filtered list. Only consulted when
searchable is true. Ignored otherwise.
Trait Implementations§
Source§impl<T: Clone + PartialEq + 'static> Widget for ComboBox<T>
impl<T: Clone + PartialEq + 'static> Widget for ComboBox<T>
Source§fn build(&mut self, ctx: &mut BuildContext<'_>) -> Vec<WidgetId>
fn build(&mut self, ctx: &mut BuildContext<'_>) -> Vec<WidgetId>
BindingLevel::Rebuild binding, rebuild_single_widget, or a density
switch. A theme or locale switch does not rebuild: set_theme and
set_locale mark layout + paint dirty and leave the built subtree
standing, so anything derived from the theme or the locale must be read
per pass or bound to a signal rather than captured here.
Takes &mut self — store child IDs, signal handles, any state needed later.
Returns the list of root child IDs (empty for leaf widgets).Source§fn layout_response(
&self,
proposal: SizeProposal,
ctx: &LayoutContext<'_>,
) -> LayoutResponse
fn layout_response( &self, proposal: SizeProposal, ctx: &LayoutContext<'_>, ) -> LayoutResponse
LayoutResponse). Read moreSource§fn place_children(
&self,
bounds: Rect,
_proposal: SizeProposal,
children: &mut [WidgetPlacement],
_ctx: &LayoutContext<'_>,
)
fn place_children( &self, bounds: Rect, _proposal: SizeProposal, children: &mut [WidgetPlacement], _ctx: &LayoutContext<'_>, )
Source§fn accessibility(&self, builder: &mut AccessNodeBuilder)
fn accessibility(&self, builder: &mut AccessNodeBuilder)
Source§fn type_name(&self) -> &'static str
fn type_name(&self) -> &'static str
"teksilo_widgets::button::Button"). The default implementation
resolves at the impl site via std::any::type_name::<Self>(),
so calls through &dyn Widget correctly dispatch to the
monomorphized fn for the concrete type — getting the
concrete name through the vtable without per-impl boilerplate. Read moreSource§fn cacheable_layout(&self) -> bool
fn cacheable_layout(&self) -> bool
layout_response may be
memoized by the per-pass layout cache. Defaults to true. Read moreSource§fn paint(&self, _bounds: Rect, _canvas: &mut Canvas, _ctx: &PaintContext<'_>)
fn paint(&self, _bounds: Rect, _canvas: &mut Canvas, _ctx: &PaintContext<'_>)
Source§fn wants_after_paint(&self) -> bool
fn wants_after_paint(&self) -> bool
after_paint
hook to fire each frame. Returning false (the default) saves
a virtual call per widget per frame for the vast majority of
widgets that don’t aggregate descendant geometry. Read moreSource§fn after_paint(&self, _view: &WidgetTreeView<'_>, _ctx: &PaintContext<'_>)
fn after_paint(&self, _view: &WidgetTreeView<'_>, _ctx: &PaintContext<'_>)
TitleBar aggregates its drag region and control-button
rects into a single HitRegions payload for the Windows
backend’s WM_NCHITTEST. Read moreSource§fn wants_post_paint(&self) -> bool
fn wants_post_paint(&self) -> bool
post_paint
hook to fire each frame. Returning false (the default) saves a
virtual call per widget per frame for the vast majority of widgets
that don’t draw a foreground over their children. Read moreSource§fn post_paint(
&self,
_bounds: Rect,
_canvas: &mut Canvas,
_ctx: &PaintContext<'_>,
)
fn post_paint( &self, _bounds: Rect, _canvas: &mut Canvas, _ctx: &PaintContext<'_>, )
Source§fn wants_descendant_redirects(&self) -> bool
fn wants_descendant_redirects(&self) -> bool
a11y_redirect_descendant
hook for every descendant during AT tree emission, not
just its direct arena children. Read moreSource§fn culls_children(&self) -> bool
fn culls_children(&self) -> bool
Source§fn a11y_redirect_descendant(
&self,
_self_id: WidgetId,
_descendant: WidgetId,
) -> Option<NodeId>
fn a11y_redirect_descendant( &self, _self_id: WidgetId, _descendant: WidgetId, ) -> Option<NodeId>
Source§fn accessible_title_hint(&self) -> Option<String>
fn accessible_title_hint(&self) -> Option<String>
Source§fn accessible_title_node(&self) -> Option<WidgetId>
fn accessible_title_node(&self) -> Option<WidgetId>
Source§fn initial_focus_hint(&self) -> Option<WidgetId>
fn initial_focus_hint(&self) -> Option<WidgetId>
Source§fn as_any(&self) -> Option<&(dyn Any + 'static)>
fn as_any(&self) -> Option<&(dyn Any + 'static)>
None; concrete
widgets override with Some(self) when they want to expose
their concrete type to test-level introspection or reflection.
The trait already bounds on std::any::Any so concrete types
satisfy the 'static requirement.Source§fn as_any_mut(&mut self) -> Option<&mut (dyn Any + 'static)>
fn as_any_mut(&mut self) -> Option<&mut (dyn Any + 'static)>
as_any. Default
returns None; widgets that want to expose mutable state to
tests (e.g. so a test can mutate a Scene inside a
SceneView post-layout) override with Some(self). Should
follow the same opt-in pattern as as_any: only widgets
that opt into & introspection should opt into &mut.Source§fn clips_children(&self) -> bool
fn clips_children(&self) -> bool
Source§fn focus_reveal_rect(&self, _bounds: Rect) -> Option<Rect>
fn focus_reveal_rect(&self, _bounds: Rect) -> Option<Rect>
None (the default) reveals the widget’s whole
bounds — correct for most controls. Read moreSource§fn hit_shape(&self, _local_point: Point, _bounds: Rect) -> bool
fn hit_shape(&self, _local_point: Point, _bounds: Rect) -> bool
false for a point that is inside
the bounding box makes the widget transparent to the click there,
so it falls through to whatever sibling is painted underneath
(the same machinery as a fully pass-through node, but shape-aware). Read moreSource§fn accepts_child_hit(&self, _child: WidgetId, _point: Point) -> bool
fn accepts_child_hit(&self, _child: WidgetId, _point: Point) -> bool
Source§fn hit_outset(&self, _kind: PointerKind, _tokens: &InputTokens) -> EdgeInsets
fn hit_outset(&self, _kind: PointerKind, _tokens: &InputTokens) -> EdgeInsets
Source§fn hit_slop(&self, _kind: PointerKind, _tokens: &InputTokens) -> Option<HitSlop>
fn hit_slop(&self, _kind: PointerKind, _tokens: &InputTokens) -> Option<HitSlop>
Source§fn hit_distance(&self, local_point: Point, bounds: Rect) -> Option<f32>
fn hit_distance(&self, local_point: Point, bounds: Rect) -> Option<f32>
Source§fn target_regions(&self, _bounds: Rect) -> Vec<TargetRegion>
fn target_regions(&self, _bounds: Rect) -> Vec<TargetRegion>
Source§fn preserves_children_on_rebuild(&self) -> bool
fn preserves_children_on_rebuild(&self) -> bool
rebuild_single_widget treats this widget’s existing children
when re-running its build(). Read moreSource§fn tooltip_has_content(&self) -> bool
fn tooltip_has_content(&self) -> bool
Source§fn declare_shortcuts(&self) -> Vec<Shortcut>
fn declare_shortcuts(&self) -> Vec<Shortcut>
build()) and at certain lazy
boundaries (e.g. Switcher walks declarations on its
not-yet-mounted Pending slots), so settings UIs and the
ShortcutRegistry see the keystrokes the moment the owning
container mounts — even if build() hasn’t run. Read moreSource§fn take_handler_set(&mut self) -> Option<HandlerSet>
fn take_handler_set(&mut self) -> Option<HandlerSet>
WidgetWithHandlers wrapper.
Called during arena insertion to transfer handlers to the WidgetNode.
Default: returns None (no attached handlers).Source§impl WidgetCatalog for ComboBox<String>
impl WidgetCatalog for ComboBox<String>
Source§fn id() -> &'static str
fn id() -> &'static str
"button", "tag_chip"). Used in
CLI args, navigator URLs, and persistence keys.Source§fn group() -> &'static str
fn group() -> &'static str
"Controls", "Containers", "Composites", …).Source§fn display_name() -> &'static str
fn display_name() -> &'static str
Source§fn knobs() -> KnobSpec
fn knobs() -> KnobSpec
Scenario variants leave this empty.Source§fn variants() -> Vec<PreviewVariant>
fn variants() -> Vec<PreviewVariant>
Source§fn build(_variant: &str, knobs: &KnobValues) -> Box<dyn Widget>
fn build(_variant: &str, knobs: &KnobValues) -> Box<dyn Widget>
Scenario paths and otherwise builds
via the knob values for Knobs variants.Source§fn icon() -> Option<Box<dyn Widget>>
fn icon() -> Option<Box<dyn Widget>>
None (the default) leaves the consumer to
substitute a generic fallback. Returns a Box<dyn Widget> (not
an IconWidget) so this crate stays free of any widgets-crate
dependency.Source§fn category() -> WidgetCategory
fn category() -> WidgetCategory
WidgetCategory::Leaf, is correct for every control; container
widgets override it.Source§fn slots() -> &'static [&'static str]
fn slots() -> &'static [&'static str]
WidgetCategory::ContainerB widget (e.g.
Card → ["header", "content", "footer"]). Empty for Leaf and
ContainerA.Source§fn build_with_children(
variant: &str,
knobs: &KnobValues,
children: Vec<SlottedChild>,
) -> Box<dyn Widget>
fn build_with_children( variant: &str, knobs: &KnobValues, children: Vec<SlottedChild>, ) -> Box<dyn Widget>
ContainerA folds
children as ordered bare children; ContainerB routes each by
its slot name; Leaf ignores them. The default ignores
children and delegates to build, so non-container
widgets need no override.Auto Trait Implementations§
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> Freeze for ComboBox<T>where
ItemSource<T>: Freeze,
Signal<Option<T>>: Freeze,
Rc<dyn Fn(&T) -> LocalizedString>: Freeze,
Option<Rc<dyn Fn(&T, bool) -> Box<dyn Widget>>>: Freeze,
Option<Rc<dyn Fn(&T) -> Box<dyn Widget>>>: Freeze,
Option<Rc<dyn Fn(&T, &mut EventContext<'_>)>>: Freeze,
Option<Rc<dyn Fn(&str, &T) -> bool>>: Freeze,
impl<T> Unpin for ComboBox<T>where
ItemSource<T>: Unpin,
Signal<Option<T>>: Unpin,
Rc<dyn Fn(&T) -> LocalizedString>: Unpin,
Option<Rc<dyn Fn(&T, bool) -> Box<dyn Widget>>>: Unpin,
Option<Rc<dyn Fn(&T) -> Box<dyn Widget>>>: Unpin,
Option<Rc<dyn Fn(&T, &mut EventContext<'_>)>>: Unpin,
Option<Rc<dyn Fn(&str, &T) -> bool>>: Unpin,
impl<T> UnsafeUnpin for ComboBox<T>where
ItemSource<T>: UnsafeUnpin,
Signal<Option<T>>: UnsafeUnpin,
Rc<dyn Fn(&T) -> LocalizedString>: UnsafeUnpin,
Option<Rc<dyn Fn(&T, bool) -> Box<dyn Widget>>>: UnsafeUnpin,
Option<Rc<dyn Fn(&T) -> Box<dyn Widget>>>: UnsafeUnpin,
Option<Rc<dyn Fn(&T, &mut EventContext<'_>)>>: UnsafeUnpin,
Option<Rc<dyn Fn(&str, &T) -> bool>>: UnsafeUnpin,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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 moreSource§impl<W> IntoTeksiChild for Wwhere
W: Widget + 'static,
impl<W> IntoTeksiChild for Wwhere
W: Widget + 'static,
fn into_pending(self) -> PendingChild
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<W> WidgetBuilder for Wwhere
W: Widget + 'static,
impl<W> WidgetBuilder for Wwhere
W: Widget + 'static,
fn on_tap( self, f: impl FnMut(&TapEvent, &mut EventContext<'_>) + 'static, ) -> WidgetWithHandlers<Self>
fn on_double_tap( self, f: impl FnMut(&TapEvent, &mut EventContext<'_>) + 'static, ) -> WidgetWithHandlers<Self>
fn on_triple_tap( self, f: impl FnMut(&TapEvent, &mut EventContext<'_>) + 'static, ) -> WidgetWithHandlers<Self>
fn on_long_press( self, f: impl FnMut(&TapEvent, &mut EventContext<'_>) + 'static, ) -> WidgetWithHandlers<Self>
on_tap. Default is ButtonMask::PRIMARY.on_double_tap. Default ButtonMask::PRIMARY.on_triple_tap. Default ButtonMask::PRIMARY.on_long_press. Default ButtonMask::PRIMARY.fn on_drag( self, f: impl FnMut(DragPhase, &mut EventContext<'_>) + 'static, ) -> WidgetWithHandlers<Self>
fn on_swipe( self, f: impl FnMut(SwipeDirection, f32, &mut EventContext<'_>) + 'static, ) -> WidgetWithHandlers<Self>
fn on_pinch( self, f: impl FnMut(PinchPhase, &mut EventContext<'_>) + 'static, ) -> WidgetWithHandlers<Self>
fn on_focus( self, f: impl FnMut(bool, &mut EventContext<'_>) + 'static, ) -> WidgetWithHandlers<Self>
fn on_key( self, f: impl FnMut(&WidgetEvent, &mut EventContext<'_>) -> EventResponse + 'static, ) -> WidgetWithHandlers<Self>
Source§fn on_key_preview(
self,
f: impl FnMut(&WidgetEvent, &mut EventContext<'_>) -> EventResponse + 'static,
) -> WidgetWithHandlers<Self>
fn on_key_preview( self, f: impl FnMut(&WidgetEvent, &mut EventContext<'_>) -> EventResponse + 'static, ) -> WidgetWithHandlers<Self>
HandlerSet::on_key_preview.fn on_pointer_event( self, f: impl FnMut(&WidgetEvent, &mut EventContext<'_>) -> EventResponse + 'static, ) -> WidgetWithHandlers<Self>
fn on_hover( self, f: impl FnMut(bool, &mut EventContext<'_>) + 'static, ) -> WidgetWithHandlers<Self>
fn on_scroll( self, f: impl FnMut(&WidgetEvent, &mut EventContext<'_>) -> EventResponse + 'static, ) -> WidgetWithHandlers<Self>
fn on_access_action( self, f: impl FnMut(Action, &mut EventContext<'_>) -> EventResponse + 'static, ) -> WidgetWithHandlers<Self>
fn focusable(self, focusable: bool) -> WidgetWithHandlers<Self>
fn tab_index(self, index: i32) -> WidgetWithHandlers<Self>
fn cursor(self, cursor: CursorIcon) -> WidgetWithHandlers<Self>
fn clips_children_on(self, clips: bool) -> WidgetWithHandlers<Self>
Source§fn ime_input(self, ctx: ImeContext) -> WidgetWithHandlers<Self>
fn ime_input(self, ctx: ImeContext) -> WidgetWithHandlers<Self>
ctx’s purpose) while it is focused. See crate::ime.Source§fn event_pass_through(self, pass_through: bool) -> WidgetWithHandlers<Self>
fn event_pass_through(self, pass_through: bool) -> WidgetWithHandlers<Self>
HandlerSet::event_pass_through.Source§fn gesture_dead_zone(self, dead_zone: bool) -> WidgetWithHandlers<Self>
fn gesture_dead_zone(self, dead_zone: bool) -> WidgetWithHandlers<Self>
HandlerSet::gesture_dead_zone.Source§fn long_press_role(self, role: LongPressRole) -> WidgetWithHandlers<Self>
fn long_press_role(self, role: LongPressRole) -> WidgetWithHandlers<Self>
HandlerSet::long_press_role.Source§fn touch_action(self, action: TouchAction) -> WidgetWithHandlers<Self>
fn touch_action(self, action: TouchAction) -> WidgetWithHandlers<Self>
HandlerSet::touch_action.Source§fn scroll_container(self, axes: PanAxes) -> WidgetWithHandlers<Self>
fn scroll_container(self, axes: PanAxes) -> WidgetWithHandlers<Self>
axes, kinetic, direct pointers
only. See HandlerSet::scroll_container.Source§fn pan_claim(self, claim: PanClaim) -> WidgetWithHandlers<Self>
fn pan_claim(self, claim: PanClaim) -> WidgetWithHandlers<Self>
PanClaim. See
HandlerSet::pan_claim.Source§fn overscroll_behavior(
self,
behavior: OverscrollBehavior,
) -> WidgetWithHandlers<Self>
fn overscroll_behavior( self, behavior: OverscrollBehavior, ) -> WidgetWithHandlers<Self>
HandlerSet::overscroll_behavior.Source§fn drag_activation(self, activation: DragActivation) -> WidgetWithHandlers<Self>
fn drag_activation(self, activation: DragActivation) -> WidgetWithHandlers<Self>
HandlerSet::drag_activation.Source§fn multi_contact(self, policy: MultiContact) -> WidgetWithHandlers<Self>
fn multi_contact(self, policy: MultiContact) -> WidgetWithHandlers<Self>
MultiContact::First — the second finger on a single-contact control
is terminated there rather than reaching an ancestor.Source§fn keyboard_capture(self, capture: bool) -> WidgetWithHandlers<Self>
fn keyboard_capture(self, capture: bool) -> WidgetWithHandlers<Self>
KeyDowns bypass shortcut resolution.
See HandlerSet::keyboard_capture.Source§fn hit_transparent(self, transparent: bool) -> WidgetWithHandlers<Self>
fn hit_transparent(self, transparent: bool) -> WidgetWithHandlers<Self>
HandlerSet::hit_transparent.Source§fn hit_slop(self, slop: HitSlop) -> WidgetWithHandlers<Self>
fn hit_slop(self, slop: HitSlop) -> WidgetWithHandlers<Self>
HandlerSet::hit_slop.Source§fn no_hit_slop(self) -> WidgetWithHandlers<Self>
fn no_hit_slop(self) -> WidgetWithHandlers<Self>
Widget::hit_outset. See HandlerSet::no_hit_slop.HandlerSet::context_menu for the full contract.Source§fn focus_within(self, signal: Signal<bool>) -> WidgetWithHandlers<Self>
fn focus_within(self, signal: Signal<bool>) -> WidgetWithHandlers<Self>
Signal<bool> the framework writes when a strict
descendant has focus. See HandlerSet::focus_within.Source§fn hover_within(self, signal: Signal<bool>) -> WidgetWithHandlers<Self>
fn hover_within(self, signal: Signal<bool>) -> WidgetWithHandlers<Self>
Signal<bool> the framework writes when a strict
descendant is hovered. See HandlerSet::hover_within.Source§fn visible_when(self, state: impl Into<Prop<bool>>) -> WidgetWithHandlers<Self>
fn visible_when(self, state: impl Into<Prop<bool>>) -> WidgetWithHandlers<Self>
bool / Signal<bool> / Prop<bool>) as
a builder property, so teksu! can write visible_when: sig. Equivalent
to ctx.visible_when(id, ..). See HandlerSet::visible_when.fn on_drag_hover( self, f: impl FnMut(&DragPayload, Point, &mut EventContext<'_>) -> DropFeedback + 'static, ) -> WidgetWithHandlers<Self>
fn on_drag_leave( self, f: impl FnMut(&mut EventContext<'_>) + 'static, ) -> WidgetWithHandlers<Self>
fn on_drag_tick( self, f: impl FnMut(Point, &mut EventContext<'_>) + 'static, ) -> WidgetWithHandlers<Self>
Source§fn on_pointer_cancel(
self,
f: impl FnMut(&PointerInfo, CancelReason, &mut EventContext<'_>) + 'static,
) -> WidgetWithHandlers<Self>
fn on_pointer_cancel( self, f: impl FnMut(&PointerInfo, CancelReason, &mut EventContext<'_>) + 'static, ) -> WidgetWithHandlers<Self>
HandlerSet::on_pointer_cancel.fn on_drop( self, f: impl FnMut(DragPayload, Point, &mut EventContext<'_>) -> bool + 'static, ) -> WidgetWithHandlers<Self>
Source§fn on_drag_ended(
self,
f: impl FnMut(DropOutcome, &mut EventContext<'_>) + 'static,
) -> WidgetWithHandlers<Self>
fn on_drag_ended( self, f: impl FnMut(DropOutcome, &mut EventContext<'_>) + 'static, ) -> WidgetWithHandlers<Self>
HandlerSet::on_drag_ended.