pub struct RoutedEvent<TEventArgs: ?Sized = dyn IRoutedEventArgs> { /* private fields */ }Expand description
The identity and description of a routed event.
RoutedEvent<TEventArgs> is a routed event whose handlers receive
TEventArgs; plain RoutedEvent is the untyped view of any routed
event (the base class of the typed ones). Both are cheap copyable
handles to the same definition and compare equal when they denote the
same event; as_routed_event converts a typed
handle to the untyped one.
Like property definitions, routed events are registered once per thread
and live for the rest of the program; declare them with
ferro_routed_event!.
Implementations§
Source§impl RoutedEvent
impl RoutedEvent
Sourcepub fn new_untyped<TEventArgs: IRoutedEventArgs>(
name: &str,
routing_strategies: RoutingStrategies,
owner_type: &'static TypeInfo,
) -> RoutedEvent
pub fn new_untyped<TEventArgs: IRoutedEventArgs>( name: &str, routing_strategies: RoutingStrategies, owner_type: &'static TypeInfo, ) -> RoutedEvent
Creates an untyped routed event whose args are of type TEventArgs,
without registering it.
Sourcepub fn register<TOwner: StaticType, TEventArgs: IRoutedEventArgs>(
name: &str,
routing_strategy: RoutingStrategies,
) -> &'static RoutedEvent<TEventArgs>
pub fn register<TOwner: StaticType, TEventArgs: IRoutedEventArgs>( name: &str, routing_strategy: RoutingStrategies, ) -> &'static RoutedEvent<TEventArgs>
Registers a routed event owned by class TOwner.
Sourcepub fn register_with_owner<TEventArgs: IRoutedEventArgs>(
name: &str,
routing_strategy: RoutingStrategies,
owner_type: &'static TypeInfo,
) -> &'static RoutedEvent<TEventArgs>
pub fn register_with_owner<TEventArgs: IRoutedEventArgs>( name: &str, routing_strategy: RoutingStrategies, owner_type: &'static TypeInfo, ) -> &'static RoutedEvent<TEventArgs>
Registers a routed event owned by the given type.
Source§impl<TEventArgs: ?Sized> RoutedEvent<TEventArgs>
impl<TEventArgs: ?Sized> RoutedEvent<TEventArgs>
Sourcepub fn as_routed_event(&self) -> RoutedEvent
pub fn as_routed_event(&self) -> RoutedEvent
The untyped handle of this routed event.
Sourcepub fn event_args_type(&self) -> TypeId
pub fn event_args_type(&self) -> TypeId
The type of the event’s args.
Sourcepub fn event_args_type_name(&self) -> &'static str
pub fn event_args_type_name(&self) -> &'static str
The Rust type name of the event’s args.
Sourcepub fn event_args_is<T: IRoutedEventArgs>(&self) -> bool
pub fn event_args_is<T: IRoutedEventArgs>(&self) -> bool
Whether the event’s args type is T or derives from it, i.e. whether
a handler taking T can be attached to the event.
Sourcepub fn owner_type(&self) -> &'static TypeInfo
pub fn owner_type(&self) -> &'static TypeInfo
The class that registered the event.
Sourcepub fn routing_strategies(&self) -> RoutingStrategies
pub fn routing_strategies(&self) -> RoutingStrategies
How the event travels through the tree.
Sourcepub fn has_raised_subscriptions(&self) -> bool
pub fn has_raised_subscriptions(&self) -> bool
Whether anything is subscribed to raised, i.e.
whether the event has class handlers.
Sourcepub fn raised(&self) -> &'static RoutedEventObservable
pub fn raised(&self) -> &'static RoutedEventObservable
Notifications of the event being raised on any element.
Sourcepub fn route_finished(&self) -> &'static RouteFinishedObservable
pub fn route_finished(&self) -> &'static RouteFinishedObservable
Notifications of the event having finished one of its routes.
Sourcepub fn add_class_handler_untyped(
&self,
target_type: &'static TypeInfo,
handler: impl Fn(&Interactive, &dyn IRoutedEventArgs) + 'static,
routes: RoutingStrategies,
handled_events_too: bool,
) -> Rc<dyn IDisposable>
pub fn add_class_handler_untyped( &self, target_type: &'static TypeInfo, handler: impl Fn(&Interactive, &dyn IRoutedEventArgs) + 'static, routes: RoutingStrategies, handled_events_too: bool, ) -> Rc<dyn IDisposable>
Adds a handler that is invoked for every element of type
target_type (or derived from it) on the route of the event, before
the handlers attached to that element.
The handler is invoked on the direct route, and on the tunnel or
bubble routes selected by routes; for events that are already
handled only if handled_events_too is set.
Source§impl<TEventArgs: IRoutedEventArgs> RoutedEvent<TEventArgs>
impl<TEventArgs: IRoutedEventArgs> RoutedEvent<TEventArgs>
Sourcepub fn new(
name: &str,
routing_strategies: RoutingStrategies,
owner_type: &'static TypeInfo,
) -> Self
pub fn new( name: &str, routing_strategies: RoutingStrategies, owner_type: &'static TypeInfo, ) -> Self
Creates a routed event without registering it.
Sourcepub fn add_class_handler<TTarget: ObjectType>(
&self,
handler: impl Fn(&TTarget, &TEventArgs) + 'static,
) -> Rc<dyn IDisposable>
pub fn add_class_handler<TTarget: ObjectType>( &self, handler: impl Fn(&TTarget, &TEventArgs) + 'static, ) -> Rc<dyn IDisposable>
Adds a class handler for elements of class TTarget, listening to
the direct and bubble routes of unhandled events.
Sourcepub fn add_class_handler_with<TTarget: ObjectType>(
&self,
handler: impl Fn(&TTarget, &TEventArgs) + 'static,
routes: RoutingStrategies,
handled_events_too: bool,
) -> Rc<dyn IDisposable>
pub fn add_class_handler_with<TTarget: ObjectType>( &self, handler: impl Fn(&TTarget, &TEventArgs) + 'static, routes: RoutingStrategies, handled_events_too: bool, ) -> Rc<dyn IDisposable>
Adds a class handler for elements of class TTarget.
Trait Implementations§
Source§impl<T: ?Sized> Clone for RoutedEvent<T>
impl<T: ?Sized> Clone for RoutedEvent<T>
impl<T: ?Sized> Copy for RoutedEvent<T>
Source§impl<T: ?Sized> Debug for RoutedEvent<T>
impl<T: ?Sized> Debug for RoutedEvent<T>
Source§impl<T: ?Sized> Display for RoutedEvent<T>
impl<T: ?Sized> Display for RoutedEvent<T>
impl<T: ?Sized> Eq for RoutedEvent<T>
Source§impl<T: ?Sized> Hash for RoutedEvent<T>
impl<T: ?Sized> Hash for RoutedEvent<T>
Source§impl MarkupTyped for RoutedEvent<AccessKeyEventArgs>
impl MarkupTyped for RoutedEvent<AccessKeyEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<AccessKeyPressedEventArgs>
impl MarkupTyped for RoutedEvent<AccessKeyPressedEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<ContextRequestedEventArgs>
impl MarkupTyped for RoutedEvent<ContextRequestedEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<DragEventArgs>
impl MarkupTyped for RoutedEvent<DragEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<FocusChangedEventArgs>
impl MarkupTyped for RoutedEvent<FocusChangedEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<FocusChangingEventArgs>
impl MarkupTyped for RoutedEvent<FocusChangingEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<HoldingRoutedEventArgs>
impl MarkupTyped for RoutedEvent<HoldingRoutedEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<KeyEventArgs>
impl MarkupTyped for RoutedEvent<KeyEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<PinchEndedEventArgs>
impl MarkupTyped for RoutedEvent<PinchEndedEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<PinchEventArgs>
impl MarkupTyped for RoutedEvent<PinchEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<PointerCaptureLostEventArgs>
impl MarkupTyped for RoutedEvent<PointerCaptureLostEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<PointerDeltaEventArgs>
impl MarkupTyped for RoutedEvent<PointerDeltaEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<PointerEventArgs>
impl MarkupTyped for RoutedEvent<PointerEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<PointerPressedEventArgs>
impl MarkupTyped for RoutedEvent<PointerPressedEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<PointerReleasedEventArgs>
impl MarkupTyped for RoutedEvent<PointerReleasedEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<PointerWheelEventArgs>
impl MarkupTyped for RoutedEvent<PointerWheelEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<PullGestureEndedEventArgs>
impl MarkupTyped for RoutedEvent<PullGestureEndedEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<PullGestureEventArgs>
impl MarkupTyped for RoutedEvent<PullGestureEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<RoutedEventArgs>
impl MarkupTyped for RoutedEvent<RoutedEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<ScrollGestureEndedEventArgs>
impl MarkupTyped for RoutedEvent<ScrollGestureEndedEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<ScrollGestureEventArgs>
impl MarkupTyped for RoutedEvent<ScrollGestureEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<ScrollGestureInertiaStartingEventArgs>
impl MarkupTyped for RoutedEvent<ScrollGestureInertiaStartingEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<SwipeGestureEndedEventArgs>
impl MarkupTyped for RoutedEvent<SwipeGestureEndedEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<SwipeGestureEventArgs>
impl MarkupTyped for RoutedEvent<SwipeGestureEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<TappedEventArgs>
impl MarkupTyped for RoutedEvent<TappedEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<TextInputEventArgs>
impl MarkupTyped for RoutedEvent<TextInputEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<TextInputMethodClientRequeryRequestedEventArgs>
impl MarkupTyped for RoutedEvent<TextInputMethodClientRequeryRequestedEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent<TextInputMethodClientRequestedEventArgs>
impl MarkupTyped for RoutedEvent<TextInputMethodClientRequestedEventArgs>
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Source§impl MarkupTyped for RoutedEvent
impl MarkupTyped for RoutedEvent
Source§const MARKUP: &'static MarkupType
const MARKUP: &'static MarkupType
Auto Trait Implementations§
impl<TEventArgs = dyn IRoutedEventArgs> !RefUnwindSafe for RoutedEvent<TEventArgs>
impl<TEventArgs = dyn IRoutedEventArgs> !Send for RoutedEvent<TEventArgs>
impl<TEventArgs = dyn IRoutedEventArgs> !Sync for RoutedEvent<TEventArgs>
impl<TEventArgs = dyn IRoutedEventArgs> !UnwindSafe for RoutedEvent<TEventArgs>
impl<TEventArgs> Freeze for RoutedEvent<TEventArgs>
impl<TEventArgs> Unpin for RoutedEvent<TEventArgs>
impl<TEventArgs> UnsafeUnpin for RoutedEvent<TEventArgs>
Blanket Implementations§
Source§impl<T> AnyValue for Twhere
T: PartialEq + 'static,
impl<T> AnyValue for Twhere
T: PartialEq + 'static,
fn any_value_as_any(&self) -> &(dyn Any + 'static)
fn any_value_eq(&self, other: &(dyn AnyValue + 'static)) -> bool
fn any_value_type_name(&self) -> &'static str
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
Source§impl<T> ClassDefaults for Twhere
T: ?Sized,
impl<T> ClassDefaults for Twhere
T: ?Sized,
Source§fn static_constructor()
fn static_constructor()
affects_render, metadata
overrides). Read more