pub struct EventCx<'a> { /* private fields */ }Expand description
Read-only context passed to App::on_event /
App::on_wheel_event.
Event handlers regularly need post-layout geometry to make a
decision — “which room row is under this drop?”, “what size did
the lightbox body actually get?” — and the handler’s state owns no
node, so it can’t have carried the rect itself. EventCx is the
damascene analogue of the DOM’s ambient document: a handle into
the retained layout the user is currently looking at, queryable by
key (element.getBoundingClientRect() shape). Geometry answers
from the last laid-out frame — exactly what’s on screen when the
event fires.
Like BuildCx, the struct is opaque so the API stays additive:
new accessors don’t break apps that ignore the context.
Implementations§
Source§impl<'a> EventCx<'a>
impl<'a> EventCx<'a>
Sourcepub fn new() -> Self
pub fn new() -> Self
Construct an empty context. Headless tests that drive
App::on_event directly use this; real hosts chain
Self::with_ui_state so geometry queries can answer.
Sourcepub fn with_ui_state(self, ui_state: &'a UiState) -> Self
pub fn with_ui_state(self, ui_state: &'a UiState) -> Self
Attach the runtime’s crate::state::UiState so geometry
accessors can answer. Hosts call this at every dispatch site;
when omitted, the accessors return None.
Sourcepub fn rect_of_key(&self, key: &str) -> Option<Rect>
pub fn rect_of_key(&self, key: &str) -> Option<Rect>
The laid-out rect of the keyed node key, from the layout the
user is looking at as this event fires. None when the key is
absent from that tree (or no UiState is attached).
This is the first-class shape for “the handler needs to know
where a keyed thing landed”: resolving a drop target against
row rects on PointerUp, stepping zoom from a body’s fitted
size, anchoring app-drawn chrome to a control. The event’s own
target rect is already on UiEvent::target; this answers
for other keys.
Trait Implementations§
impl<'a> Copy for EventCx<'a>
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for EventCx<'a>
impl<'a> !UnwindSafe for EventCx<'a>
impl<'a> Freeze for EventCx<'a>
impl<'a> Send for EventCx<'a>
impl<'a> Sync for EventCx<'a>
impl<'a> Unpin for EventCx<'a>
impl<'a> UnsafeUnpin for EventCx<'a>
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.