arwa/event/
wheel_event.rs1use 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);