pub struct TreeView<T: 'static> { /* private fields */ }Implementations§
Source§impl<T: 'static> TreeView<T>
impl<T: 'static> TreeView<T>
Sourcepub fn new(
model: TreeModel<T>,
delegate: impl Fn(&T, &FlatEntry, bool) -> Box<dyn Widget> + 'static,
) -> Self
pub fn new( model: TreeModel<T>, delegate: impl Fn(&T, &FlatEntry, bool) -> Box<dyn Widget> + 'static, ) -> Self
Create a new TreeView backed by a TreeModel<T>.
The delegate receives (&item, &FlatEntry, selected) and returns a
boxed widget. The FlatEntry provides depth, has_children, and
is_expanded for rendering indentation and expand/collapse toggles.
Sourcepub fn new_with_context(
model: TreeModel<T>,
delegate: impl Fn(&T, &FlatEntry, bool, &TreeRowContext<'_, T>) -> Box<dyn Widget> + 'static,
) -> Self
pub fn new_with_context( model: TreeModel<T>, delegate: impl Fn(&T, &FlatEntry, bool, &TreeRowContext<'_, T>) -> Box<dyn Widget> + 'static, ) -> Self
Like new, but the delegate also receives a
TreeRowContext from which .toggle_callback() can be
pulled in a single line — eliminating the need to manually
clone the slice handle outside the closure.
let _w = TreeView::new_with_context(model, |item, entry, selected, ctx| {
Box::new(
StandardTreeItem::new(lit!(&item.title))
.from_entry(entry)
.selected(selected)
.on_toggle_rc(ctx.toggle_callback())
)
});Sourcepub fn from_source<S: TreeDataSource<Item = T>>(
source: S,
delegate: impl Fn(&T, &TreeRow, bool) -> Box<dyn Widget> + 'static,
) -> Self
pub fn from_source<S: TreeDataSource<Item = T>>( source: S, delegate: impl Fn(&T, &TreeRow, bool) -> Box<dyn Widget> + 'static, ) -> Self
Create a TreeView backed by any TreeDataSource — an external source of
truth (e.g. an entity store) carrying its own Key, so it needs no
TreeModel mirror. The delegate receives (&item, &TreeRow, selected);
TreeRow exposes depth / has_children / is_expanded and a one-call
chevron toggle_callback(). Drop validation + lazy windowing route
through the source’s can_accept / accept_drop / row_state.
Sourcepub fn from_source_keyed<S: TreeDataSource<Item = T>>(
source: S,
keyed: KeyedSelectionModel<S::Key>,
delegate: impl Fn(&T, &TreeRow, bool) -> Box<dyn Widget> + 'static,
) -> Self
pub fn from_source_keyed<S: TreeDataSource<Item = T>>( source: S, keyed: KeyedSelectionModel<S::Key>, delegate: impl Fn(&T, &TreeRow, bool) -> Box<dyn Widget> + 'static, ) -> Self
Like from_source but with keyed selection: the
KeyedSelectionModel<S::Key> tracks selection by source identity, so it
survives expand / collapse / filter / reorder and stays consistent across
two views of the same source. The view stays TreeView<T> — the Key is
captured here. Pruning consults the source’s
contains_key, so a
collapsed-but-present node keeps its selection.
Sourcepub fn enabled(self, enabled: impl Into<Prop<bool>>) -> Self
pub fn enabled(self, enabled: impl Into<Prop<bool>>) -> Self
Enable or disable the whole view. A disabled view greys out and stops accepting focus / selection / keyboard input (arena-gated).
Sourcepub fn overscroll_behavior(self, behavior: OverscrollBehavior) -> Self
pub fn overscroll_behavior(self, behavior: OverscrollBehavior) -> Self
Set the scroll-chaining behavior at the boundary (default
OverscrollBehavior::Chain; Contain
disables chaining to an ancestor scrollable).
Sourcepub fn item_height(self, height: f32) -> Self
pub fn item_height(self, height: f32) -> Self
Set the fixed height per row (default 28.0) — the uniform fast
path. Mutually exclusive with item_height_fn
and auto_item_height; the last mode
setter wins.
Sourcepub fn smooth_scrolling(self, enabled: bool) -> Self
pub fn smooth_scrolling(self, enabled: bool) -> Self
Enable or disable animated wheel scrolling (enabled by default). When disabled, wheel events snap immediately to the new offset.
Sourcepub fn smooth_scroll_duration(self, duration: Duration) -> Self
pub fn smooth_scroll_duration(self, duration: Duration) -> Self
Duration of the smooth scroll animation (default 150 ms).
Sourcepub fn scroll_signal(self, scroll: Signal<f32>) -> Self
pub fn scroll_signal(self, scroll: Signal<f32>) -> Self
How the scroll bar is displayed (default Permanent). Overlay
and Thin float the bar over the content instead of reserving a
layout column for it, mirroring ScrollArea::scroll_bar_style.
Scroll from a signal the caller owns, so the position survives the
view.
A TreeView mints its own by default, which is right for a tree whose
lifetime is the writer’s: it is created once and scrolls until they leave.
It is wrong for one inside a dock, whose content is torn down and rebuilt
whenever the layout changes – opening a panel beside it, or the first
reveal of the band a result previews into. The tree comes back at the top,
and the row the writer was reading is somewhere above it.
Hold the signal wherever the model lives and the position outlives the widget, as the expand set already does.
⚠ Pass an animated signal (Signal::new_animated) unless smooth
scrolling is off: the view animates this one, and a plain signal makes
every wheel notch a jump.
pub fn scroll_bar_style(self, style: ScrollBarMode) -> Self
Sourcepub fn item_height_fn(self, f: impl Fn(usize) -> f32 + 'static) -> Self
pub fn item_height_fn(self, f: impl Fn(usize) -> f32 + 'static) -> Self
Per-row heights from a callback over the flat (visible) index. The callback must be pure (same index + same data → same height); it is re-swept from the first changed flat index on every model change or expand/collapse. No measurement pass runs.
Sourcepub fn auto_item_height(self, estimated: f32) -> Self
pub fn auto_item_height(self, estimated: f32) -> Self
Auto-measured row heights: each realized row is measured at the
tree’s content width (height-for-width), unrealized rows assume
estimated. Scroll anchoring keeps content above the viewport
stationary as estimates are corrected; measured heights above a
toggled row survive expand/collapse (divergence-driven
invalidation).
Sourcepub fn row_click_expands(self, b: bool) -> Self
pub fn row_click_expands(self, b: bool) -> Self
Whether a row-body PointerUp on a branch row auto-toggles its
expansion (default true). Set to false when the delegate
provides its own chevron tap target (e.g. StandardTreeItem)
— without this, the auto-toggle fires in addition to the
chevron’s own click and they cancel out, leaving the row
expanded only on body clicks.
Sourcepub fn selection(self, sel: SelectionModel) -> Self
pub fn selection(self, sel: SelectionModel) -> Self
Set the index-based selection model (visible positions). Unlike
ListView (where every structural change carries an insert/remove
DataChange the selection index-shifts against), a TreeView’s
structural changes — including expand/collapse — surface only as a
version bump, with no delta to shift a selected index by; a moved
row’s old index is only clamped into range, not followed to its new
position (focused_index, the keyboard cursor, tracks by identity
via a RowAnchor and IS followed). For selection that survives
expand / collapse / filter and node moves, use
keyed_selection instead.
Sourcepub fn keyed_selection(self, keyed: KeyedSelectionModel<NodeId>) -> Self
pub fn keyed_selection(self, keyed: KeyedSelectionModel<NodeId>) -> Self
Set a keyed selection model (by NodeId). Selection is tracked by node
identity, so it survives expand / collapse, filtering, and node moves —
and stays consistent if two views share the model. Pruned of deleted
nodes on each slice change. Mutually exclusive with
selection (last one set wins).
Sourcepub fn reorderable(self, enabled: bool) -> Self
pub fn reorderable(self, enabled: bool) -> Self
Enable intra-widget drag reordering.
When enabled, tree rows can be dragged to reparent or reorder them. Before/Into/After is chosen by where in the row the pointer drops; the move is cycle-guarded — a drop onto the node itself or into its own subtree is refused and shows no insertion line. Keyboard equivalent: Alt+ArrowUp/Down.
Sourcepub fn exportable(self, mode: DragTransferMode) -> Selfwhere
T: Clone,
pub fn exportable(self, mode: DragTransferMode) -> Selfwhere
T: Clone,
Make rows droppable outside this view — on a
DropTarget, another data view, or the OS.
A dragged row (or the whole selection, when the pressed row is part of a
multi-selection) carries clones of its items in a public
RowDragData<T>, so a foreign receiver can pull
them out with payload.get_typed::<RowDragData<T>>() /
DropTarget::on_drop_typed::<RowDragData<T>>() — no serialization. This
also makes rows a drag source even without reorderable.
mode chooses what happens to the origin rows once a foreign target
accepts them: DragTransferMode::Move removes them (via the source’s
on_drag_out, or on_rows_transferred_out),
DragTransferMode::Copy leaves them. A same-view reorder is never a
transfer, so mode never affects it. Requires T: Clone.
Sourcepub fn export_external(
self,
f: impl Fn(&[T]) -> Vec<(String, Vec<u8>)> + 'static,
) -> Selfwhere
T: Clone,
pub fn export_external(
self,
f: impl Fn(&[T]) -> Vec<(String, Vec<u8>)> + 'static,
) -> Selfwhere
T: Clone,
Additionally advertise the dragged rows as MIME data so they can be
dropped on a DropZone or exported to another
application / window via the OS. f maps the dragged items to
(mime_type, bytes) pairs (e.g. text/plain, text/uri-list, an
app-specific application/x-…). Implies exportable
(defaulting to DragTransferMode::Move if not already set). Requires
T: Clone.
Sourcepub fn on_rows_transferred_out(
self,
f: impl Fn(&[usize], &mut EventContext<'_>) + 'static,
) -> Self
pub fn on_rows_transferred_out( self, f: impl Fn(&[usize], &mut EventContext<'_>) + 'static, ) -> Self
Override how rows moved out to a foreign target are removed from this
view. Receives the dragged rows’ indices (descending-safe) and the live
context. Without this, an exportable
Move drag removes them through the source’s
on_drag_out (works out of the box for a TreeSlice/TreeModel).
Sourcepub fn accept_foreign_rows(self, accept: bool) -> Self
pub fn accept_foreign_rows(self, accept: bool) -> Self
Accept exported rows dropped from a different view or source without
writing a custom TreeDataSource. Pair with
on_rows_received, which is handed the dropped
items and the insertion index. (Same-view reorder is
reorderable; a custom TreeDataSource can still
accept foreign drops through its can_accept/accept_drop instead.)
Sourcepub fn on_rows_received(
self,
f: impl Fn(Vec<T>, usize, &mut EventContext<'_>) + 'static,
) -> Self
pub fn on_rows_received( self, f: impl Fn(Vec<T>, usize, &mut EventContext<'_>) + 'static, ) -> Self
Handler for rows accepted via accept_foreign_rows:
(items, insertion_index, ctx). Insert them into your model at the
index.
Sourcepub fn on_activate(
self,
f: impl Fn(usize, &mut EventContext<'_>) + 'static,
) -> Self
pub fn on_activate( self, f: impl Fn(usize, &mut EventContext<'_>) + 'static, ) -> Self
Set the row-activation handler — invoked with the flat row index on a primary click on the row body, or Enter on the focused row. Activation is distinct from selection: arrow-key navigation and Space move / toggle the selection but do not activate, so a view can open/commit a row on a deliberate click/Enter without firing on every navigation step.
Sourcepub fn activate_on(self, mode: ActivateOn) -> Self
pub fn activate_on(self, mode: ActivateOn) -> Self
Choose single- vs double-click activation (default
ActivateOn::DoubleClick — the cross-platform
convention; pass SingleClick for the
KDE/web/Scrivener feel). Enter activates in either mode.
Sourcepub fn row_tooltip_sticky(self, on: bool) -> Self
pub fn row_tooltip_sticky(self, on: bool) -> Self
Enable type-ahead (“type to jump”): typing a printable character
while the tree has keyboard focus jumps the selection to the next
visible row whose label starts with the accumulated search term,
wrapping around (Qt keyboardSearch / macOS & Windows type-select).
label(&item) yields the searchable text; matching is
ASCII-case-insensitive. A pause longer than the
type_ahead_timeout starts a fresh term.
Whether a composite row tooltip offers dwell-to-sticky promotion.
Default true.
Turn it off for a read-only row card: with nothing to reach into there is nothing to pin, so the countdown indicator would promise an interaction that does not exist and the surface would outlive the pointer for no reason.
Sourcepub fn row_tooltip(
self,
f: impl Fn(usize, &T) -> Option<LocalizedString> + 'static,
) -> Self
pub fn row_tooltip( self, f: impl Fn(usize, &T) -> Option<LocalizedString> + 'static, ) -> Self
Per-row plain tooltip: one line of text for the row under the pointer.
The resolver receives the row’s flat index and its item; returning
None leaves that row without a tip. Mutually exclusive with
row_rich_tooltip and
row_composite_tooltip — last setter
wins, matching the per-widget tooltip matrix.
Opens to the row’s trailing side, never below it: rows stack vertically, so a tip below would cover the next row.
Sourcepub fn row_rich_tooltip(
self,
f: impl Fn(usize, &T) -> Option<RichTooltipSource> + 'static,
) -> Self
pub fn row_rich_tooltip( self, f: impl Fn(usize, &T) -> Option<RichTooltipSource> + 'static, ) -> Self
Per-row rich tooltip — a registry key or inline
TooltipContent, both of which
convert into RichTooltipSource.
See row_tooltip for the shared semantics.
Sourcepub fn row_composite_tooltip(
self,
f: impl Fn(usize, &T) -> Option<Box<dyn Widget>> + 'static,
) -> Self
pub fn row_composite_tooltip( self, f: impl Fn(usize, &T) -> Option<Box<dyn Widget>> + 'static, ) -> Self
Per-row composite tooltip — an arbitrary widget tree describing the row.
The body is built for every realized row (the virtualization window)
and rebuilt with it, so keep the resolver cheap and defer anything
costly to the body’s own first paint, which only runs if the tip is
actually shown. See row_tooltip for the rest.
pub fn type_ahead_label(self, label: impl Fn(&T) -> String + 'static) -> Self
Sourcepub fn type_ahead_timeout(self, timeout: Duration) -> Self
pub fn type_ahead_timeout(self, timeout: Duration) -> Self
Reset window between keystrokes before the type-ahead search term clears (default 500 ms). A zero duration disables type-ahead.
Sourcepub fn expand(&self, node: NodeId)
pub fn expand(&self, node: NodeId)
Expand a node programmatically. No-op on the from_source path (which
owns its own expand state — use the source’s set_expanded).
Sourcepub fn collapse(&self, node: NodeId)
pub fn collapse(&self, node: NodeId)
Collapse a node programmatically. No-op on the from_source path.
Sourcepub fn toggle(&self, node: NodeId)
pub fn toggle(&self, node: NodeId)
Toggle a node’s expand/collapse state. No-op on the from_source path.
Sourcepub fn expand_all(&self)
pub fn expand_all(&self)
Expand all nodes. No-op on the from_source path.
Sourcepub fn collapse_all(&self)
pub fn collapse_all(&self)
Collapse all nodes. No-op on the from_source path.
Sourcepub fn tree_slice(&self) -> Option<&TreeSlice<T>>
pub fn tree_slice(&self) -> Option<&TreeSlice<T>>
Access the internal TreeSlice (for persistence of expand state).
None on the from_source path, which has no
TreeSlice (the external source owns expand state).
Trait Implementations§
Source§impl<T: 'static> Widget for TreeView<T>
impl<T: 'static> Widget for TreeView<T>
Source§fn build(&mut self, ctx: &mut BuildContext<'_>) -> Vec<WidgetId>
fn build(&mut self, ctx: &mut BuildContext<'_>) -> Vec<WidgetId>
&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 paint(&self, bounds: Rect, canvas: &mut Canvas, ctx: &PaintContext<'_>)
fn paint(&self, bounds: Rect, canvas: &mut Canvas, ctx: &PaintContext<'_>)
Source§fn accessibility(&self, builder: &mut AccessNodeBuilder)
fn accessibility(&self, builder: &mut AccessNodeBuilder)
Source§fn as_any(&self) -> Option<&dyn Any>
fn as_any(&self) -> Option<&dyn Any>
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 clips_children(&self) -> bool
fn clips_children(&self) -> bool
§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 more§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 more§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 more§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 more§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 more§fn post_paint(
&self,
_bounds: Rect,
_canvas: &mut Canvas,
_ctx: &PaintContext<'_>,
)
fn post_paint( &self, _bounds: Rect, _canvas: &mut Canvas, _ctx: &PaintContext<'_>, )
§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 more§fn a11y_redirect_descendant(
&self,
_self_id: WidgetId,
_descendant: WidgetId,
) -> Option<NodeId>
fn a11y_redirect_descendant( &self, _self_id: WidgetId, _descendant: WidgetId, ) -> Option<NodeId>
§fn accessible_title_hint(&self) -> Option<String>
fn accessible_title_hint(&self) -> Option<String>
§fn initial_focus_hint(&self) -> Option<WidgetId>
fn initial_focus_hint(&self) -> Option<WidgetId>
§fn accessibility_children(&self) -> Option<Vec<WidgetId>>
fn accessibility_children(&self) -> Option<Vec<WidgetId>>
§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.§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 more§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 more§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 more§fn tooltip_has_content(&self) -> bool
fn tooltip_has_content(&self) -> bool
§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 more§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).Auto Trait Implementations§
impl<T> !RefUnwindSafe for TreeView<T>
impl<T> !Send for TreeView<T>
impl<T> !Sync for TreeView<T>
impl<T> !UnwindSafe for TreeView<T>
impl<T> Freeze for TreeView<T>
impl<T> Unpin for TreeView<T>
impl<T> UnsafeUnpin for TreeView<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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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.§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.§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.§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,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§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,
§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 dim_when_inactive(self, factor: f32) -> DimWhenInactive
fn dim_when_inactive(self, factor: f32) -> DimWhenInactive
factor opacity whenever the host window
is inactive (not focused / occluded), restoring full opacity when it
becomes active again. The opt-in, per-widget layer of the window-active
appearance model — for custom content an app wants to fade back when its
window isn’t the active one. Stock widgets handle their own
inactive appearance (caret hiding, selection desaturation) and need no
wrapping. Layout- and a11y-transparent; the opacity snaps (no tween),
which is correct under prefers-reduced-motion. See
DimWhenInactive.§fn dim_when_inactive_default(self) -> DimWhenInactive
fn dim_when_inactive_default(self) -> DimWhenInactive
dim_when_inactive with the default factor
(DEFAULT_DIM_FACTOR, 70 %).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>
§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>
§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].§fn event_pass_through(self, pass_through: bool) -> WidgetWithHandlers<Self>
fn event_pass_through(self, pass_through: bool) -> WidgetWithHandlers<Self>
HandlerSet::event_pass_through].§fn gesture_dead_zone(self, dead_zone: bool) -> WidgetWithHandlers<Self>
fn gesture_dead_zone(self, dead_zone: bool) -> WidgetWithHandlers<Self>
HandlerSet::gesture_dead_zone].§fn keyboard_capture(self, capture: bool) -> WidgetWithHandlers<Self>
fn keyboard_capture(self, capture: bool) -> WidgetWithHandlers<Self>
KeyDowns bypass shortcut resolution.
See [HandlerSet::keyboard_capture].§fn hit_transparent(self, transparent: bool) -> WidgetWithHandlers<Self>
fn hit_transparent(self, transparent: bool) -> WidgetWithHandlers<Self>
HandlerSet::hit_transparent].HandlerSet::context_menu] for the full contract.§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].§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].§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>
fn on_drop( self, f: impl FnMut(DragPayload, Point, &mut EventContext<'_>) -> bool + 'static, ) -> WidgetWithHandlers<Self>
§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].