Skip to main content

ferroui_base/input/raw/
raw_mouse_wheel_event_args.rs

1use super::raw_input_event_args::raw_input_event_args;
2use super::{RawPointerEventArgs, RawPointerEventType};
3use crate::input::{IInputDevice, IInputRoot, RawInputModifiers};
4use crate::{Point, Vector};
5use std::rc::Rc;
6
7/// A raw mouse wheel event.
8pub struct RawMouseWheelEventArgs {
9    base: RawPointerEventArgs,
10    delta: Vector,
11}
12
13raw_input_event_args!(RawMouseWheelEventArgs: RawPointerEventArgs);
14
15impl RawMouseWheelEventArgs {
16    /// Creates raw mouse wheel event args.
17    pub fn new(
18        device: Rc<dyn IInputDevice>,
19        timestamp: u64,
20        root: Rc<dyn IInputRoot>,
21        position: Point,
22        delta: Vector,
23        input_modifiers: RawInputModifiers,
24    ) -> Self {
25        Self {
26            base: RawPointerEventArgs::new(device, timestamp, root, RawPointerEventType::Wheel, position, input_modifiers),
27            delta,
28        }
29    }
30
31    /// The amount the wheel was scrolled by.
32    #[inline]
33    pub fn delta(&self) -> Vector {
34        self.delta
35    }
36}