Skip to main content

ferroui_base/input/raw/
raw_touch_event_args.rs

1use super::raw_input_event_args::raw_input_event_args;
2use super::{RawPointerEventArgs, RawPointerEventType, RawPointerPoint};
3use crate::input::{IInputDevice, IInputRoot, RawInputModifiers};
4use crate::Point;
5use std::rc::Rc;
6
7/// A raw touch event.
8pub struct RawTouchEventArgs {
9    base: RawPointerEventArgs,
10}
11
12raw_input_event_args!(RawTouchEventArgs: RawPointerEventArgs);
13
14impl RawTouchEventArgs {
15    /// Creates raw touch event args for a position in client coordinates.
16    pub fn new(
17        device: Rc<dyn IInputDevice>,
18        timestamp: u64,
19        root: Rc<dyn IInputRoot>,
20        type_: RawPointerEventType,
21        position: Point,
22        input_modifiers: RawInputModifiers,
23        raw_pointer_id: i64,
24    ) -> Self {
25        let base = RawPointerEventArgs::new(device, timestamp, root, type_, position, input_modifiers);
26        base.set_raw_pointer_id(raw_pointer_id);
27        Self { base }
28    }
29
30    /// Creates raw touch event args for a raw pointer point.
31    pub fn with_point(
32        device: Rc<dyn IInputDevice>,
33        timestamp: u64,
34        root: Rc<dyn IInputRoot>,
35        type_: RawPointerEventType,
36        point: RawPointerPoint,
37        input_modifiers: RawInputModifiers,
38        raw_pointer_id: i64,
39    ) -> Self {
40        let base = RawPointerEventArgs::with_point(device, timestamp, root, type_, point, input_modifiers);
41        base.set_raw_pointer_id(raw_pointer_id);
42        Self { base }
43    }
44}