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
pub use sauron_vdom::builder::on;
use sauron_vdom::builder::Attribute;
use sauron_vdom::{Callback, Event};
macro_rules! declare_events {
( $(
$(#[$attr:meta])*
$name:ident => $event:ident;
)*
) => {
$(
$(#[$attr])*
#[inline]
pub fn $name<'a, F>(f: F) -> Attribute<'a>
where F: Into<Callback<Event>>
{
on(stringify!($event), f)
}
)*
}
}
declare_events! {
onauxclick => auxclick;
onclick => click;
oncontextmenu =>contextmenu;
ondblclick => dblclick;
onmousedown => mousedown;
onmouseenter => mouseenter;
onmouseleave => mouseleave;
onmousemove => mousemove;
onmouseover => mouseover;
onmouseout => mouseout;
onmouseup => mouseup;
onpointerlockchange => pointerlockchange;
onpointerlockerror => pointerlockerror;
onselect => select;
onwheel => wheel;
}
declare_events! {
onkeydown => keydown;
onkeypress => keypress;
onkeyup => keyup;
}
declare_events! {
onfocus => focus;
onblur => blur;
}
declare_events! {
onreset => reset;
onsubmit => submit;
}
declare_events! {
onbroadcast => broadcast;
onhashchange => hashchange;
oninput => input;
onreadystatechange => readystatechange;
onchange => change;
}