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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
use gxi_interface::wasm_bindgen::JsCast;
use gxi_interface::{web_sys, Node};
use crate::Closure;
pub trait GlobalAttributes: Node {
#[inline]
fn inner_html(&self, str: &str) {
self.get_widget().set_inner_html(str)
}
generate_attr!(accesskey);
generate_attr!(autocapitalize);
generate_attr!(class);
generate_attr!(contenteditable);
generate_attr!(dir);
generate_attr!(draggable);
generate_attr!(enterkeyhint);
generate_attr!(hidden);
generate_attr!(id);
generate_attr!(inputmode);
generate_attr!(is);
generate_attr!(itemid);
generate_attr!(itemprop);
generate_attr!(itemref);
generate_attr!(itemscope);
generate_attr!(itemtype);
generate_attr!(lang);
generate_attr!(nonce);
generate_attr!(part);
generate_attr!(slot);
generate_attr!(spellcheck);
generate_attr!(style);
generate_attr!(tabindex);
generate_attr!(title);
generate_attr!(translate);
fn on<F: Fn() + 'static>(&self, event: &str, f: F) {
let closure = Closure::wrap(Box::new(move |_: web_sys::MouseEvent| {
f();
}) as Box<dyn Fn(_)>);
self.get_widget()
.add_event_listener_with_callback(event, closure.as_ref().unchecked_ref())
.unwrap();
closure.forget();
}
generate_on_func!(on_abort "abort");
generate_on_func!(on_autocomplete "autocomplete");
generate_on_func!(on_autocompleteerror "autocompleteerror");
generate_on_func!(on_blur "blur");
generate_on_func!(on_cancel "cancel");
generate_on_func!(on_canplay "canplay");
generate_on_func!(on_canplaythrough "canplaythrough");
generate_on_func!(on_change "change");
generate_on_func!(on_click "click");
generate_on_func!(on_close "close");
generate_on_func!(on_contextmenu "contextmenu");
generate_on_func!(on_cuechange "cuechange");
generate_on_func!(on_dblclick "dblclick");
generate_on_func!(on_drag "drag");
generate_on_func!(on_dragend "dragend");
generate_on_func!(on_dragenter "dragenter");
generate_on_func!(on_dragexit "dragexit");
generate_on_func!(on_dragleave "dragleave");
generate_on_func!(on_dragover "dragover");
generate_on_func!(on_dragstart "dragstart");
generate_on_func!(on_drop "drop");
generate_on_func!(on_durationchange "durationchange");
generate_on_func!(on_emptied "emptied");
generate_on_func!(on_ended "ended");
generate_on_func!(on_error "error");
generate_on_func!(on_focus "focus");
generate_on_func!(on_input "input");
generate_on_func!(on_invalid "invalid");
generate_on_func!(on_keydown "keydown");
generate_on_func!(on_keypress "keypress");
generate_on_func!(on_keyup "keyup");
generate_on_func!(on_load "load");
generate_on_func!(on_loadeddata "loadeddata");
generate_on_func!(on_loadedmetadata "loadedmetadata");
generate_on_func!(on_loadstart "loadstart");
generate_on_func!(on_mousedown "mousedown");
generate_on_func!(on_mouseenter "mouseenter");
generate_on_func!(on_mouseleave "mouseleave");
generate_on_func!(on_mousemove "mousemove");
generate_on_func!(on_mouseout "mouseout");
generate_on_func!(on_mouseover "mouseover");
generate_on_func!(on_mouseup "mouseup");
generate_on_func!(on_mousewheel "mousewheel");
generate_on_func!(on_pause "pause");
generate_on_func!(on_play "play");
generate_on_func!(on_playing "playing");
generate_on_func!(on_progress "progress");
generate_on_func!(on_ratechange "ratechange");
generate_on_func!(on_reset "reset");
generate_on_func!(on_resize "resize");
generate_on_func!(on_scroll "scroll");
generate_on_func!(on_seeked "seeked");
generate_on_func!(on_seeking "seeking");
generate_on_func!(on_select "select");
generate_on_func!(on_show "show");
generate_on_func!(on_sort "sort");
generate_on_func!(on_stalled "stalled");
generate_on_func!(on_submit "submit");
generate_on_func!(on_suspend "suspend");
generate_on_func!(on_timeupdate "timeupdate");
generate_on_func!(on_toggle "toggle");
generate_on_func!(on_volumechange "volumechange");
generate_on_func!(on_waiting "waiting");
}