electron_sys/interface/
keyboard_input_event.rs

1use js_sys::JsString;
2use wasm_bindgen::prelude::*;
3
4// NOTE: extends InputEvent
5#[wasm_bindgen]
6pub struct KeyboardInputEvent {
7    key_code: JsString,
8    kind: JsString,
9    modifiers: Option<Box<[JsValue]>>,
10}
11
12#[wasm_bindgen]
13impl KeyboardInputEvent {
14    #[wasm_bindgen(constructor)]
15    pub fn new(key_code: JsString, kind: JsString, modifiers: Option<Box<[JsValue]>>) -> KeyboardInputEvent {
16        KeyboardInputEvent {
17            key_code,
18            kind,
19            modifiers,
20        }
21    }
22
23    #[wasm_bindgen(getter, js_name = "keyCode")]
24    pub fn key_code(&self) -> JsString {
25        self.key_code.clone()
26    }
27
28    #[wasm_bindgen(setter)]
29    pub fn set_key_code(&mut self, value: JsString) {
30        self.key_code = value;
31    }
32
33    #[wasm_bindgen(getter, js_name = "type")]
34    pub fn kind(&self) -> JsString {
35        self.kind.clone()
36    }
37
38    #[wasm_bindgen(setter)]
39    pub fn set_kind(&mut self, value: JsString) {
40        self.kind = value;
41    }
42
43    #[wasm_bindgen(getter)]
44    pub fn modifiers(&self) -> Option<Box<[JsValue]>> {
45        self.modifiers.clone()
46    }
47
48    #[wasm_bindgen(setter)]
49    pub fn set_modifiers(&mut self, value: Option<Box<[JsValue]>>) {
50        self.modifiers = value;
51    }
52}