ferroui_base/input/
pointer_delta_event_args.rs1use super::{IPointer, KeyModifiers, PointerEventArgs, PointerPointProperties};
2use crate::interactivity::RoutedEvent;
3use crate::{ferro_routed_event_args, FerroObject, Nullable, Point, Vector, Visual};
4use std::rc::Rc;
5
6#[derive(Clone)]
8pub struct PointerDeltaEventArgs {
9 base: PointerEventArgs,
10 delta: Vector,
11}
12
13ferro_routed_event_args!(PointerDeltaEventArgs: PointerEventArgs);
14
15impl PointerDeltaEventArgs {
16 #[allow(clippy::too_many_arguments)]
18 pub fn new<T: ?Sized>(
19 routed_event: Option<&RoutedEvent<T>>,
20 source: impl Into<Nullable<FerroObject>>,
21 pointer: Rc<dyn IPointer>,
22 root_visual: &Visual,
23 root_visual_position: Point,
24 timestamp: u64,
25 properties: PointerPointProperties,
26 modifiers: KeyModifiers,
27 delta: Vector,
28 ) -> Self {
29 Self {
30 base: PointerEventArgs::new(
31 routed_event,
32 source,
33 pointer,
34 Some(root_visual),
35 root_visual_position,
36 timestamp,
37 properties,
38 modifiers,
39 ),
40 delta,
41 }
42 }
43
44 #[inline]
46 pub fn delta(&self) -> Vector {
47 self.delta
48 }
49}