arwa/event/
wheel_event.rs

1use delegate::delegate;
2use wasm_bindgen::JsCast;
3
4use crate::event::on_event::FromEvent;
5use crate::event::{Event, MouseEvent, UiEvent};
6
7pub enum DeltaMode {
8    Pixel,
9    Line,
10    Page,
11}
12
13pub struct WheelEvent {
14    inner: web_sys::WheelEvent,
15}
16
17impl WheelEvent {
18    delegate! {
19        target self.inner {
20            pub fn delta_x(&self) -> f64;
21
22            pub fn delta_y(&self) -> f64;
23
24            pub fn delta_z(&self) -> f64;
25        }
26    }
27
28    pub fn delta_mode(&self) -> DeltaMode {
29        match self.inner.delta_mode() {
30            0 => DeltaMode::Pixel,
31            1 => DeltaMode::Line,
32            2 => DeltaMode::Page,
33            _ => unreachable!(),
34        }
35    }
36}
37
38impl_common_mouse_event_traits!(WheelEvent);