react/event/js/
mouse.rs

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}