1use js_sys::Object;
2use wasm_bindgen::prelude::*;
3
4use super::{BaseSyntheticEvent, UiEvent};
5
6#[wasm_bindgen]
7extern "C" {
8 #[wasm_bindgen(extends = Object, extends = BaseSyntheticEvent, extends = UiEvent)]
9 #[derive(Debug, Clone, PartialEq, Eq)]
10 pub type MouseEvent;
11
12 #[wasm_bindgen(method, getter = altKey)]
13 pub fn alt_key(this: &MouseEvent) -> bool;
14 #[wasm_bindgen(method, getter)]
15 pub fn button(this: &MouseEvent) -> i16;
16 #[wasm_bindgen(method, getter)]
17 pub fn buttons(this: &MouseEvent) -> u16;
18 #[wasm_bindgen(method, getter = clientX)]
19 pub fn client_x(this: &MouseEvent) -> f64;
20 #[wasm_bindgen(method, getter = clientY)]
21 pub fn client_y(this: &MouseEvent) -> f64;
22 #[wasm_bindgen(method, getter = ctrlKey)]
23 pub fn ctrl_key(this: &MouseEvent) -> bool;
24
25 #[wasm_bindgen(method,js_name = getModifierState)]
26 pub fn get_modifier_state(this: &MouseEvent, key: &str) -> bool;
27
28 #[wasm_bindgen(method, getter = metaKey)]
29 pub fn meta_key(this: &MouseEvent) -> bool;
30
31 #[wasm_bindgen(method, getter = movementX)]
32 pub fn movement_x(this: &MouseEvent) -> f64;
33 #[wasm_bindgen(method, getter = movementY)]
34 pub fn movement_y(this: &MouseEvent) -> f64;
35
36 #[wasm_bindgen(method, getter = pageX)]
37 pub fn page_x(this: &MouseEvent) -> f64;
38 #[wasm_bindgen(method, getter = pageY)]
39 pub fn page_y(this: &MouseEvent) -> f64;
40
41 #[wasm_bindgen(method, getter = relatedTarget)]
42 pub fn related_target(this: &MouseEvent) -> Option<super::native::EventTarget>;
43
44 #[wasm_bindgen(method, getter = screenX)]
45 pub fn screen_x(this: &MouseEvent) -> f64;
46 #[wasm_bindgen(method, getter = screenY)]
47 pub fn screen_y(this: &MouseEvent) -> f64;
48
49 #[wasm_bindgen(method, js_name = shiftKey)]
50 pub fn shift_key(this: &MouseEvent) -> bool;
51}