pub struct Avatar { /* private fields */ }Expand description
Circular (or rounded-square / square) user-identity widget showing either a photo or hash-tinted initials, with an optional presence dot.
Static and reactive content fields coexist: each knob (name, image,
alt, label, presence) has a static constructor or setter and a
bind_* counterpart that takes a Signal. When a signal is bound it
wins; the static value acts as a fallback. Signal-bound rebuilds fire at
BindingLevel::Rebuild so inner children are recreated with fresh values —
the canonical pattern for a “logged-out → logged-in” transition.
Implementations§
Source§impl Avatar
impl Avatar
Sourcepub fn with_initials(initials: impl Into<LocalizedString>) -> Self
pub fn with_initials(initials: impl Into<LocalizedString>) -> Self
Create an avatar from an explicit initials string. Uppercases and
truncates to at most 2 chars; empty input yields "?".
Sourcepub fn with_name(name: impl Into<LocalizedString>) -> Self
pub fn with_name(name: impl Into<LocalizedString>) -> Self
Create an avatar from a display name; initials are derived
automatically ("Jane Doe" → "JD", "jane.doe@x.com" → "JD",
"Cher" → "C", "" → "?"), and the full name is used as the
hash seed for the background tint so users with identical initials
still get distinct colours.
Sourcepub fn with_image(icon: &RasterIcon) -> Self
pub fn with_image(icon: &RasterIcon) -> Self
Create an avatar from a decoded [RasterIcon]. The pixels are
centre-cropped to a square and CPU-masked to the configured shape
at the first build(). Call .alt(...) to provide a
screen-reader name for the image.
Source§impl Avatar
impl Avatar
Sourcepub fn size(self, size: AvatarSize) -> Self
pub fn size(self, size: AvatarSize) -> Self
Set the avatar’s discrete size. Default: AvatarSize::Medium (32 dp).
Sourcepub fn shape(self, shape: AvatarShape) -> Self
pub fn shape(self, shape: AvatarShape) -> Self
Set the avatar’s clip shape. Default: AvatarShape::Circle.
Sourcepub fn fallback_initials(self, initials: impl Into<LocalizedString>) -> Self
pub fn fallback_initials(self, initials: impl Into<LocalizedString>) -> Self
Override the initials shown when the image is hidden via
image_visible(false) or fails to register. Defaults to the
derived initials if with_image was paired with with_name,
otherwise "?".
Sourcepub fn image_visible(self, visible: impl Into<Prop<bool>>) -> Self
pub fn image_visible(self, visible: impl Into<Prop<bool>>) -> Self
Reactive image visibility. When unbound it’s true. When bound
to a Signal<bool> and the value is false, the initials
fallback paints in place of the image — same logical bounds, no
layout shift.
Sourcepub fn background(self, color: impl Into<ColorProp>) -> Self
pub fn background(self, color: impl Into<ColorProp>) -> Self
Override the auto hash-derived background. Accepts a [Color],
a role, or a Signal<Color>.
Sourcepub fn foreground(self, color: impl Into<ColorProp>) -> Self
pub fn foreground(self, color: impl Into<ColorProp>) -> Self
Override the auto-contrast text colour for the initials. Auto (unset) picks white over dark backgrounds and near-black over light ones, computed at paint time from the resolved bg’s luminance.
Sourcepub fn seed(self, seed: impl Into<String>) -> Self
pub fn seed(self, seed: impl Into<String>) -> Self
Override the seed string used to pick a hash-derived background
from the theme’s chart palette. Defaults to the resolved name
(when constructed via with_name) or the initials.
Sourcepub fn border(self, width: f32) -> Self
pub fn border(self, width: f32) -> Self
Outer ring thickness. A non-zero value enables the ring (drawn
in BorderRole::Default unless Self::border_color overrides
it). 0.0 disables the ring.
Sourcepub fn border_color(self, color: impl Into<ColorProp>) -> Self
pub fn border_color(self, color: impl Into<ColorProp>) -> Self
Override the outer ring colour. Accepts a [Color], a theme role,
or a Signal<Color>. Has no effect unless Self::border is also
set to a positive width.
Sourcepub fn presence(self, presence: AvatarPresence) -> Self
pub fn presence(self, presence: AvatarPresence) -> Self
Show a presence indicator dot. Pass AvatarPresence::Online,
Offline, Away, or Busy.
Sourcepub fn presence_corner(self, corner: AvatarCorner) -> Self
pub fn presence_corner(self, corner: AvatarCorner) -> Self
Choose which corner the presence dot occupies. Default:
AvatarCorner::BottomTrailing.
Sourcepub fn label(self, label: impl Into<LocalizedString>) -> Self
pub fn label(self, label: impl Into<LocalizedString>) -> Self
Override the accessible name. When unset:
- image-mode →
altif set, else the initials, else “Avatar” - initials-mode → the initials.
Sourcepub fn alt(self, alt: impl Into<LocalizedString>) -> Self
pub fn alt(self, alt: impl Into<LocalizedString>) -> Self
Image alt text — distinct from label so a clickable avatar
can have a button label like “Open user menu” while still
describing the image as “Jane Doe”.
Hide from the a11y tree entirely. Use only when an adjacent label conveys the avatar’s meaning.
Sourcepub fn on_activate_fn(self, f: impl Fn(&mut EventContext<'_>) + 'static) -> Self
pub fn on_activate_fn(self, f: impl Fn(&mut EventContext<'_>) + 'static) -> Self
Make the avatar activable. Promotes the a11y role to
Role::Button and adds Action::Click / Action::Focus. Tap,
Enter, and Space all fire the closure. Cursor changes to
Pointer on hover.
Sourcepub fn has_popup(self, kind: HasPopup) -> Self
pub fn has_popup(self, kind: HasPopup) -> Self
Declare that this avatar is a disclosure trigger for a popup
(typically HasPopup::Menu for a user-menu trigger). Surfaces
via set_has_popup in the a11y node so screen readers
announce the avatar as “menu button” / “has popup”. Only takes
effect when paired with .on_activate_fn(...) — without an
activation handler the avatar isn’t a trigger.
Sourcepub fn expanded_when(self, signal: impl Into<Prop<bool>>) -> Self
pub fn expanded_when(self, signal: impl Into<Prop<bool>>) -> Self
Bind a signal reporting whether this avatar’s popup is
currently visible. The wrapping Popover / overlay manager owns
the signal and flips it on show / dismiss; Avatar reads it in
accessibility() to publish set_expanded. Only meaningful
alongside .has_popup(...).
Sourcepub fn tooltip(self, text: impl Into<LocalizedString>) -> Self
pub fn tooltip(self, text: impl Into<LocalizedString>) -> Self
Attach a plain single-line tooltip shown after the hover delay.
Mutually exclusive with Self::rich_tooltip,
Self::rich_tooltip_content, and Self::composite_tooltip —
this call clears the other three slots.
Sourcepub fn rich_tooltip(self, key: impl Into<String>) -> Self
pub fn rich_tooltip(self, key: impl Into<String>) -> Self
Attach a rich tooltip identified by a registry key. The tooltip
content is resolved from the application’s TooltipRegistry at
hover time. Mutually exclusive with the other tooltip setters —
this call clears the other three slots.
Sourcepub fn rich_tooltip_content(self, content: TooltipContent) -> Self
pub fn rich_tooltip_content(self, content: TooltipContent) -> Self
Attach a rich tooltip from inline crate::tooltip::TooltipContent
without a registry key. Mutually exclusive with the other tooltip
setters — this call clears the other three slots.
Sourcepub fn composite_tooltip(self, content: impl Widget + 'static) -> Self
pub fn composite_tooltip(self, content: impl Widget + 'static) -> Self
Attach a composite tooltip whose body is an arbitrary widget tree.
Shown after the longer tooltip_delay_heavy delay. Mutually
exclusive with the other tooltip setters — this call clears the
other three slots.
Sourcepub fn name_signal(self, signal: Signal<String>) -> Self
pub fn name_signal(self, signal: Signal<String>) -> Self
Bind the user’s display name to a signal. The displayed
initials are auto-derived from the current value
(derive_initials), and the same value is used as the hash
seed for the background tint. Bound at
BindingLevel::Rebuild so the inner children regenerate on
flip — the canonical login-flow pattern:
let user_name: Signal<String> = ctx.signal(String::new());
Avatar::with_initials(lit!("?")) // logged-out fallback
.name_signal(user_name.clone())
.image_signal(user_avatar_signal)Sourcepub fn image_signal(self, signal: Signal<Option<Rc<RasterIcon>>>) -> Self
pub fn image_signal(self, signal: Signal<Option<Rc<RasterIcon>>>) -> Self
Bind the image source. None ⇒ initials fallback. Each
non-None value is masked to the configured AvatarShape by
the inner ImageWidget. Bound at BindingLevel::Rebuild.
Sourcepub fn alt_signal(self, signal: Signal<Option<String>>) -> Self
pub fn alt_signal(self, signal: Signal<Option<String>>) -> Self
Bind the image alt text. Bound at BindingLevel::AccessibilityOnly
— only the screen-reader projection is affected.
Sourcepub fn label_signal(self, signal: Signal<Option<String>>) -> Self
pub fn label_signal(self, signal: Signal<Option<String>>) -> Self
Bind the accessible label. Bound at
BindingLevel::AccessibilityOnly.
Sourcepub fn presence_signal(self, signal: Signal<Option<AvatarPresence>>) -> Self
pub fn presence_signal(self, signal: Signal<Option<AvatarPresence>>) -> Self
Bind the presence indicator. None hides the dot. Bound at
BindingLevel::Rebuild — the dot’s colour and the a11y
description flip together so a rebuild keeps both layers in
sync.
Trait Implementations§
Source§impl Widget for Avatar
impl Widget for Avatar
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 accessibility(&self, builder: &mut AccessNodeBuilder)
fn accessibility(&self, builder: &mut AccessNodeBuilder)
§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 paint(&self, _bounds: Rect, _canvas: &mut Canvas, _ctx: &PaintContext<'_>)
fn paint(&self, _bounds: Rect, _canvas: &mut Canvas, _ctx: &PaintContext<'_>)
§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(&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.§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 clips_children(&self) -> bool
fn clips_children(&self) -> bool
§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 !RefUnwindSafe for Avatar
impl !Send for Avatar
impl !Sync for Avatar
impl !UnwindSafe for Avatar
impl Freeze for Avatar
impl Unpin for Avatar
impl UnsafeUnpin for Avatar
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].