Skip to main content

ferroui_xaml_interactions_events/
lib.rs

1//! ferroui-xaml-interactions-events
2//!
3//! Behaviors and triggers of the input routed events of FerroUI, ported from the
4//! `Xaml.Behaviors.Interactions.Events` project of Xaml.Behaviors (see `NOTICE.md`):
5//!
6//! - a trigger per input event ([`TappedEventTrigger`], [`KeyDownEventTrigger`],
7//!   [`PointerPressedEventTrigger`], [`DropEventTrigger`], ..), which runs its actions with the
8//!   args of the event as their parameter;
9//! - an abstract behavior per input event ([`TappedEventBehavior`], [`KeyDownEventBehavior`],
10//!   ..), whose deriving classes override the hook of the event (`on_tapped`, `on_key_down`, ..);
11//! - [`PointerEventsTrigger`] and [`PointerEventsBehavior`], which listen for the pressed,
12//!   released and moved pointer events together.
13//!
14//! The behaviors and triggers add their handler to the associated object when it is attached to
15//! the visual tree and remove it when it is detached, with the routing strategies of their
16//! `RoutingStrategies` property (by default those of the event they listen for).
17//!
18//! The namespace of the crate is `FerroUI.Xaml.Interactions.Events`, mapped into the default XML
19//! namespace of the framework: documents name its types without a prefix once
20//! [`register_types`] ran.
21
22mod double_tapped_event_behavior;
23mod double_tapped_event_trigger;
24mod drag_enter_event_trigger;
25mod drag_leave_event_trigger;
26mod drag_over_event_trigger;
27mod drop_event_trigger;
28mod got_focus_event_behavior;
29mod got_focus_event_trigger;
30mod key_down_event_behavior;
31mod key_down_event_trigger;
32mod key_up_event_behavior;
33mod key_up_event_trigger;
34mod lost_focus_event_behavior;
35mod lost_focus_event_trigger;
36mod pointer_capture_lost_event_behavior;
37mod pointer_capture_lost_event_trigger;
38mod pointer_entered_event_behavior;
39mod pointer_entered_event_trigger;
40mod pointer_events_behavior;
41mod pointer_events_trigger;
42mod pointer_exited_event_behavior;
43mod pointer_exited_event_trigger;
44mod pointer_moved_event_behavior;
45mod pointer_moved_event_trigger;
46mod pointer_pressed_event_behavior;
47mod pointer_pressed_event_trigger;
48mod pointer_released_event_behavior;
49mod pointer_released_event_trigger;
50mod pointer_wheel_changed_event_behavior;
51mod pointer_wheel_changed_event_trigger;
52mod right_tapped_event_behavior;
53mod right_tapped_event_trigger;
54mod scroll_gesture_ended_event_behavior;
55mod scroll_gesture_ended_event_trigger;
56mod scroll_gesture_event_behavior;
57mod scroll_gesture_event_trigger;
58mod tapped_event_behavior;
59mod tapped_event_trigger;
60mod text_input_event_behavior;
61mod text_input_event_trigger;
62mod text_input_method_client_requested_event_behavior;
63mod text_input_method_client_requested_event_trigger;
64mod register_types;
65mod rust_paths;
66
67pub use crate::double_tapped_event_behavior::{DoubleTappedEventBehavior, DoubleTappedEventBehaviorImpl, DoubleTappedEventBehaviorImplExt, DoubleTappedEventBehaviorVTable};
68pub use crate::double_tapped_event_trigger::DoubleTappedEventTrigger;
69pub use crate::drag_enter_event_trigger::DragEnterEventTrigger;
70pub use crate::drag_leave_event_trigger::DragLeaveEventTrigger;
71pub use crate::drag_over_event_trigger::DragOverEventTrigger;
72pub use crate::drop_event_trigger::DropEventTrigger;
73pub use crate::got_focus_event_behavior::{GotFocusEventBehavior, GotFocusEventBehaviorImpl, GotFocusEventBehaviorImplExt, GotFocusEventBehaviorVTable};
74pub use crate::got_focus_event_trigger::GotFocusEventTrigger;
75pub use crate::key_down_event_behavior::{KeyDownEventBehavior, KeyDownEventBehaviorImpl, KeyDownEventBehaviorImplExt, KeyDownEventBehaviorVTable};
76pub use crate::key_down_event_trigger::KeyDownEventTrigger;
77pub use crate::key_up_event_behavior::{KeyUpEventBehavior, KeyUpEventBehaviorImpl, KeyUpEventBehaviorImplExt, KeyUpEventBehaviorVTable};
78pub use crate::key_up_event_trigger::KeyUpEventTrigger;
79pub use crate::lost_focus_event_behavior::{LostFocusEventBehavior, LostFocusEventBehaviorImpl, LostFocusEventBehaviorImplExt, LostFocusEventBehaviorVTable};
80pub use crate::lost_focus_event_trigger::LostFocusEventTrigger;
81pub use crate::pointer_capture_lost_event_behavior::{PointerCaptureLostEventBehavior, PointerCaptureLostEventBehaviorImpl, PointerCaptureLostEventBehaviorImplExt, PointerCaptureLostEventBehaviorVTable};
82pub use crate::pointer_capture_lost_event_trigger::PointerCaptureLostEventTrigger;
83pub use crate::pointer_entered_event_behavior::{PointerEnteredEventBehavior, PointerEnteredEventBehaviorImpl, PointerEnteredEventBehaviorImplExt, PointerEnteredEventBehaviorVTable};
84pub use crate::pointer_entered_event_trigger::PointerEnteredEventTrigger;
85pub use crate::pointer_events_behavior::{PointerEventsBehavior, PointerEventsBehaviorImpl, PointerEventsBehaviorImplExt, PointerEventsBehaviorVTable};
86pub use crate::pointer_events_trigger::PointerEventsTrigger;
87pub use crate::pointer_exited_event_behavior::{PointerExitedEventBehavior, PointerExitedEventBehaviorImpl, PointerExitedEventBehaviorImplExt, PointerExitedEventBehaviorVTable};
88pub use crate::pointer_exited_event_trigger::PointerExitedEventTrigger;
89pub use crate::pointer_moved_event_behavior::{PointerMovedEventBehavior, PointerMovedEventBehaviorImpl, PointerMovedEventBehaviorImplExt, PointerMovedEventBehaviorVTable};
90pub use crate::pointer_moved_event_trigger::PointerMovedEventTrigger;
91pub use crate::pointer_pressed_event_behavior::{PointerPressedEventBehavior, PointerPressedEventBehaviorImpl, PointerPressedEventBehaviorImplExt, PointerPressedEventBehaviorVTable};
92pub use crate::pointer_pressed_event_trigger::PointerPressedEventTrigger;
93pub use crate::pointer_released_event_behavior::{PointerReleasedEventBehavior, PointerReleasedEventBehaviorImpl, PointerReleasedEventBehaviorImplExt, PointerReleasedEventBehaviorVTable};
94pub use crate::pointer_released_event_trigger::PointerReleasedEventTrigger;
95pub use crate::pointer_wheel_changed_event_behavior::{PointerWheelChangedEventBehavior, PointerWheelChangedEventBehaviorImpl, PointerWheelChangedEventBehaviorImplExt, PointerWheelChangedEventBehaviorVTable};
96pub use crate::pointer_wheel_changed_event_trigger::PointerWheelChangedEventTrigger;
97pub use crate::right_tapped_event_behavior::{RightTappedEventBehavior, RightTappedEventBehaviorImpl, RightTappedEventBehaviorImplExt, RightTappedEventBehaviorVTable};
98pub use crate::right_tapped_event_trigger::RightTappedEventTrigger;
99pub use crate::scroll_gesture_ended_event_behavior::{ScrollGestureEndedEventBehavior, ScrollGestureEndedEventBehaviorImpl, ScrollGestureEndedEventBehaviorImplExt, ScrollGestureEndedEventBehaviorVTable};
100pub use crate::scroll_gesture_ended_event_trigger::ScrollGestureEndedEventTrigger;
101pub use crate::scroll_gesture_event_behavior::{ScrollGestureEventBehavior, ScrollGestureEventBehaviorImpl, ScrollGestureEventBehaviorImplExt, ScrollGestureEventBehaviorVTable};
102pub use crate::scroll_gesture_event_trigger::ScrollGestureEventTrigger;
103pub use crate::tapped_event_behavior::{TappedEventBehavior, TappedEventBehaviorImpl, TappedEventBehaviorImplExt, TappedEventBehaviorVTable};
104pub use crate::tapped_event_trigger::TappedEventTrigger;
105pub use crate::text_input_event_behavior::{TextInputEventBehavior, TextInputEventBehaviorImpl, TextInputEventBehaviorImplExt, TextInputEventBehaviorVTable};
106pub use crate::text_input_event_trigger::TextInputEventTrigger;
107pub use crate::text_input_method_client_requested_event_behavior::{TextInputMethodClientRequestedEventBehavior, TextInputMethodClientRequestedEventBehaviorImpl, TextInputMethodClientRequestedEventBehaviorImplExt, TextInputMethodClientRequestedEventBehaviorVTable};
108pub use crate::text_input_method_client_requested_event_trigger::TextInputMethodClientRequestedEventTrigger;
109pub use crate::register_types::{register_types, ASSEMBLY};
110
111#[cfg(test)]
112mod tests;