pub struct LiveImage { /* private fields */ }Expand description
Shows a LiveImageSource. See the module documentation.
Implementations§
Source§impl LiveImage
impl LiveImage
Sourcepub fn new(source: impl Into<Prop<LiveImageSource>>) -> Self
pub fn new(source: impl Into<Prop<LiveImageSource>>) -> Self
Show source. A Signal<LiveImageSource> switches sources: the
widget rebuilds and attaches the new one, keeping its handle’s
Signals, and the window lets go of the old one’s texture at its next
frame. A small picture its source committed once is kept a while
instead, in case it comes back.
Sourcepub fn fit(self, fit: ImageFit) -> Self
pub fn fit(self, fit: ImageFit) -> Self
How the picture fills its box: the CSS object-fit set. Default
ImageFit::Contain. Cover, and None on a picture larger than
the box, crop it to the box.
Sourcepub fn alignment(self, alignment: Alignment) -> Self
pub fn alignment(self, alignment: Alignment) -> Self
Where the picture sits in its box when the fit leaves room or crops.
Leading and Trailing follow the layout direction. Default
[Alignment::CENTER].
Sourcepub fn sizing(self, sizing: LiveImageSizing) -> Self
pub fn sizing(self, sizing: LiveImageSizing) -> Self
How the box is sized. Default LiveImageSizing::Aspect.
Sourcepub fn width(self, width: f32) -> Self
pub fn width(self, width: f32) -> Self
Pin the box’s width, in logical pixels; its height follows the picture’s aspect ratio (zero before the first frame).
Sourcepub fn height(self, height: f32) -> Self
pub fn height(self, height: f32) -> Self
Pin the box’s height, in logical pixels; its width follows the picture’s aspect ratio (zero before the first frame).
Sourcepub fn size(self, width: f32, height: f32) -> Self
pub fn size(self, width: f32, height: f32) -> Self
Pin the box to width × height logical pixels.
Sourcepub fn device_pixels(self, on: bool) -> Self
pub fn device_pixels(self, on: bool) -> Self
Measure the picture’s own size in device pixels: one source pixel
per device pixel instead of per logical pixel. The fit starts from
that size too: ImageFit::None draws the whole picture at it, and
ImageFit::ScaleDown never grows it past it. With
sizing(Natural), fit(ImageFit::None) and
scaling(ScalingFilter::Nearest), every texel lands on one device
pixel, at any device scale. Default false.
Sourcepub fn scaling(self, scaling: ScalingFilter) -> Self
pub fn scaling(self, scaling: ScalingFilter) -> Self
How the picture is sampled when drawn at another size. Default
ScalingFilter::Linear; Nearest keeps an integer upscale crisp,
and Trilinear keeps a thumbnail drawn below half size from
aliasing.
Sourcepub fn orientation(self, orientation: ImageOrientation) -> Self
pub fn orientation(self, orientation: ImageOrientation) -> Self
How the picture is turned or mirrored for display. A quarter turn
swaps the width and height the box is sized from. Default
ImageOrientation::Normal.
Sourcepub fn pixel_snap(self, on: bool) -> Self
pub fn pixel_snap(self, on: bool) -> Self
Snap the picture’s edges to the device-pixel grid, which keeps a 1:1 picture sharp. An edge moves by less than one device pixel. Turn it off only for a picture whose box is animated, where that step would show: the placement is then left where the layout puts it, and the renderer does not snap a one-to-one picture either. Snapping applies under translations and scales; a rotated or skewed ancestor turns it off. Default true.
Sourcepub fn background(self, color: impl Into<ColorProp>) -> Self
pub fn background(self, color: impl Into<ColorProp>) -> Self
The fill of the letterbox, and of the whole box while the source is
not Live. A role or a Signal follows the theme and the window.
Default transparent.
Sourcepub fn placeholder(self, text: impl Into<Prop<String>>) -> Self
pub fn placeholder(self, text: impl Into<Prop<String>>) -> Self
Text shown centred in the box while the source is not Live
(secondary text, body style, truncated to the box), and the node’s
description then. Painted, so it takes no input. Default empty.
Sourcepub fn alt(self, text: impl Into<Prop<String>>) -> Self
pub fn alt(self, text: impl Into<Prop<String>>) -> Self
The accessible name of the picture. A tr! string follows the
locale. Give it, or call a11y_hidden: a debug
build asserts one of them.
Hide a decorative picture from assistive technology: what it shows is said by text beside it.
Sourcepub fn pause_when_inactive(self, pause: impl Into<Prop<bool>>) -> Self
pub fn pause_when_inactive(self, pause: impl Into<Prop<bool>>) -> Self
Stop uploading while the window is inactive: not focused, or covered
where the platform reports it. The picture keeps the last frame it
uploaded and a commit no longer wakes the window; once the window is
active again, the next frame shows the latest commit, in one upload.
A change of size or status still applies, a picture with nothing of
its size uploaded yet still gets its first frame, and a screenshot
shows the latest commit all the same. The pause belongs to the
window’s texture: while another widget of the window shows the same
source unpaused, both stay live. A Signal<bool> turns it on and off
as the user decides. Default false.
Sourcepub fn dim_when_disabled(self, on: bool) -> Self
pub fn dim_when_disabled(self, on: bool) -> Self
Dim the picture in a disabled subtree, by the theme’s
disabled_content_opacity
over the widget’s background, which then fills the whole box. By
default a live picture keeps its full strength when an ancestor is
disabled: a VM’s screen is content, not a control. A commit still
repaints nothing while dimmed. Default false.
Sourcepub fn with_handle(self, handle: &LiveImageHandle) -> Self
pub fn with_handle(self, handle: &LiveImageHandle) -> Self
Drive this widget through handle, made beforehand with
LiveImageHandle::new: the form a teksu! tree can use, where
handle cannot be called. A handle follows one
widget; handing it to a second moves it there.
Sourcepub fn handle(&self) -> LiveImageHandle
pub fn handle(&self) -> LiveImageHandle
A handle to this widget, for the UI thread: its source’s size and
status, its placement, and the mapping from widget-local points to
source pixels. Take it before a WidgetBuilder method wraps the
widget.
Trait Implementations§
Source§impl Debug for LiveImage
impl Debug for LiveImage
Source§fn fmt(&self, f: &mut Formatter<'_>) -> Result
fn fmt(&self, f: &mut Formatter<'_>) -> Result
What the source and the window did, from atomics and the widget’s
own state, never under the source’s lock:
LiveImage { source: #3 "vm-screen" Bgrx8 720x1280 Live, gen: 5021, window_gen: 5019, sizing: Aspect, fit: Contain, orientation: Normal, scaling: Linear, content: (0, 0, 424, 754), paints: 4, paused: false }.
Source§impl Widget for LiveImage
impl Widget for LiveImage
Source§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<'_>, )
The placement paint will draw and input maps through, computed once per layout: the edges snap in device space, through the widget’s window origin, its ancestors’ transforms and the device scale.
Source§fn paint(&self, bounds: Rect, canvas: &mut Canvas, ctx: &PaintContext<'_>)
fn paint(&self, bounds: Rect, canvas: &mut Canvas, ctx: &PaintContext<'_>)
The background, then the picture’s one quad (emitted whatever the
status, so the window takes the source’s commits), inside an opacity
scope while dimmed, then the placeholder while the source is not
Live.
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 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 as_any_mut(&mut self) -> Option<&mut dyn Any>
fn as_any_mut(&mut self) -> Option<&mut dyn Any>
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 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 culls_children(&self) -> bool
fn culls_children(&self) -> bool
§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 accessible_title_node(&self) -> Option<WidgetId>
fn accessible_title_node(&self) -> Option<WidgetId>
§fn initial_focus_hint(&self) -> Option<WidgetId>
fn initial_focus_hint(&self) -> Option<WidgetId>
§fn accessibility_proxy(&self) -> Option<WidgetId>
fn accessibility_proxy(&self) -> Option<WidgetId>
§fn accessibility_children(&self) -> Option<Vec<WidgetId>>
fn accessibility_children(&self) -> Option<Vec<WidgetId>>
§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 accepts_child_hit(&self, _child: WidgetId, _point: Point) -> bool
fn accepts_child_hit(&self, _child: WidgetId, _point: Point) -> bool
§fn hit_outset(&self, _kind: PointerKind, _tokens: &InputTokens) -> EdgeInsets
fn hit_outset(&self, _kind: PointerKind, _tokens: &InputTokens) -> EdgeInsets
§fn hit_slop(&self, _kind: PointerKind, _tokens: &InputTokens) -> Option<HitSlop>
fn hit_slop(&self, _kind: PointerKind, _tokens: &InputTokens) -> Option<HitSlop>
§fn hit_distance(&self, local_point: Point, bounds: Rect) -> Option<f32>
fn hit_distance(&self, local_point: Point, bounds: Rect) -> Option<f32>
§fn target_regions(&self, _bounds: Rect) -> Vec<TargetRegion>
fn target_regions(&self, _bounds: Rect) -> Vec<TargetRegion>
§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 LiveImage
impl !Send for LiveImage
impl !Sync for LiveImage
impl !UnwindSafe for LiveImage
impl Freeze for LiveImage
impl Unpin for LiveImage
impl UnsafeUnpin for LiveImage
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> ⓘ
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 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 long_press_role(self, role: LongPressRole) -> WidgetWithHandlers<Self>
fn long_press_role(self, role: LongPressRole) -> WidgetWithHandlers<Self>
HandlerSet::long_press_role].§fn touch_action(self, action: TouchAction) -> WidgetWithHandlers<Self>
fn touch_action(self, action: TouchAction) -> WidgetWithHandlers<Self>
HandlerSet::touch_action].§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].§fn pan_claim(self, claim: PanClaim) -> WidgetWithHandlers<Self>
fn pan_claim(self, claim: PanClaim) -> WidgetWithHandlers<Self>
PanClaim]. See
[HandlerSet::pan_claim].§fn overscroll_behavior(
self,
behavior: OverscrollBehavior,
) -> WidgetWithHandlers<Self>
fn overscroll_behavior( self, behavior: OverscrollBehavior, ) -> WidgetWithHandlers<Self>
HandlerSet::overscroll_behavior].§fn drag_activation(self, activation: DragActivation) -> WidgetWithHandlers<Self>
fn drag_activation(self, activation: DragActivation) -> WidgetWithHandlers<Self>
HandlerSet::drag_activation].§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.§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].§fn hit_slop(self, slop: HitSlop) -> WidgetWithHandlers<Self>
fn hit_slop(self, slop: HitSlop) -> WidgetWithHandlers<Self>
HandlerSet::hit_slop].§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.§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_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>
§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].