1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
use js_sys::Object;
use wasm_bindgen::prelude::*;

use super::{BaseSyntheticEvent, UiEvent};

#[wasm_bindgen]
extern "C" {
    #[wasm_bindgen(extends = Object, extends = BaseSyntheticEvent, extends = UiEvent)]
    #[derive(Debug, Clone, PartialEq, Eq)]
    pub type MouseEvent;

    #[wasm_bindgen(method, getter = altKey)]
    pub fn alt_key(this: &MouseEvent) -> bool;
    #[wasm_bindgen(method, getter)]
    pub fn button(this: &MouseEvent) -> i16;
    #[wasm_bindgen(method, getter)]
    pub fn buttons(this: &MouseEvent) -> u16;
    #[wasm_bindgen(method, getter = clientX)]
    pub fn client_x(this: &MouseEvent) -> f64;
    #[wasm_bindgen(method, getter = clientY)]
    pub fn client_y(this: &MouseEvent) -> f64;
    #[wasm_bindgen(method, getter = ctrlKey)]
    pub fn ctrl_key(this: &MouseEvent) -> bool;

    #[wasm_bindgen(method,js_name = getModifierState)]
    pub fn get_modifier_state(this: &MouseEvent, key: &str) -> bool;

    #[wasm_bindgen(method, getter = metaKey)]
    pub fn meta_key(this: &MouseEvent) -> bool;

    #[wasm_bindgen(method, getter = movementX)]
    pub fn movement_x(this: &MouseEvent) -> f64;
    #[wasm_bindgen(method, getter = movementY)]
    pub fn movement_y(this: &MouseEvent) -> f64;

    #[wasm_bindgen(method, getter = pageX)]
    pub fn page_x(this: &MouseEvent) -> f64;
    #[wasm_bindgen(method, getter = pageY)]
    pub fn page_y(this: &MouseEvent) -> f64;

    #[wasm_bindgen(method, getter = relatedTarget)]
    pub fn related_target(this: &MouseEvent) -> Option<super::native::EventTarget>;

    #[wasm_bindgen(method, getter = screenX)]
    pub fn screen_x(this: &MouseEvent) -> f64;
    #[wasm_bindgen(method, getter = screenY)]
    pub fn screen_y(this: &MouseEvent) -> f64;

    #[wasm_bindgen(method, js_name = shiftKey)]
    pub fn shift_key(this: &MouseEvent) -> bool;
}