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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
use super::*;
/// The TouchEvent class.
/// [`TouchEvent`](https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent)
#[derive(Clone, Debug, PartialEq, PartialOrd)]
#[repr(transparent)]
pub struct TouchEvent {
inner: UIEvent,
}
impl FromVal for TouchEvent {
fn from_val(v: &Any) -> Self {
TouchEvent {
inner: UIEvent::from_val(v),
}
}
fn take_ownership(v: AnyHandle) -> Self {
Self::from_val(&Any::take_ownership(v))
}
fn as_handle(&self) -> AnyHandle {
self.inner.as_handle()
}
}
impl core::ops::Deref for TouchEvent {
type Target = UIEvent;
fn deref(&self) -> &Self::Target {
&self.inner
}
}
impl core::ops::DerefMut for TouchEvent {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.inner
}
}
impl AsRef<Any> for TouchEvent {
fn as_ref(&self) -> &Any {
&self.inner
}
}
impl AsMut<Any> for TouchEvent {
fn as_mut(&mut self) -> &mut Any {
&mut self.inner
}
}
impl From<TouchEvent> for Any {
fn from(s: TouchEvent) -> Any {
let handle = s.inner.as_handle();
core::mem::forget(s);
Any::take_ownership(handle)
}
}
impl From<&TouchEvent> for Any {
fn from(s: &TouchEvent) -> Any {
s.inner.clone().into()
}
}
jsbind::utils::impl_dyn_cast!(TouchEvent);
impl TouchEvent {
/// Getter of the `touches` attribute.
/// [`TouchEvent.touches`](https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent/touches)
pub fn touches(&self) -> TouchList {
self.inner.get("touches").as_::<TouchList>()
}
}
impl TouchEvent {
/// Getter of the `targetTouches` attribute.
/// [`TouchEvent.targetTouches`](https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent/targetTouches)
pub fn target_touches(&self) -> TouchList {
self.inner.get("targetTouches").as_::<TouchList>()
}
}
impl TouchEvent {
/// Getter of the `changedTouches` attribute.
/// [`TouchEvent.changedTouches`](https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent/changedTouches)
pub fn changed_touches(&self) -> TouchList {
self.inner.get("changedTouches").as_::<TouchList>()
}
}
impl TouchEvent {
/// Getter of the `altKey` attribute.
/// [`TouchEvent.altKey`](https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent/altKey)
pub fn alt_key(&self) -> bool {
self.inner.get("altKey").as_::<bool>()
}
}
impl TouchEvent {
/// Getter of the `metaKey` attribute.
/// [`TouchEvent.metaKey`](https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent/metaKey)
pub fn meta_key(&self) -> bool {
self.inner.get("metaKey").as_::<bool>()
}
}
impl TouchEvent {
/// Getter of the `ctrlKey` attribute.
/// [`TouchEvent.ctrlKey`](https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent/ctrlKey)
pub fn ctrl_key(&self) -> bool {
self.inner.get("ctrlKey").as_::<bool>()
}
}
impl TouchEvent {
/// Getter of the `shiftKey` attribute.
/// [`TouchEvent.shiftKey`](https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent/shiftKey)
pub fn shift_key(&self) -> bool {
self.inner.get("shiftKey").as_::<bool>()
}
}
impl TouchEvent {
/// The `new TouchEvent(..)` constructor, creating a new TouchEvent instance
pub fn new(type_: &JsString) -> TouchEvent {
Self {
inner: Any::global("TouchEvent")
.new(&[type_.into()])
.as_::<UIEvent>(),
}
}
}
impl TouchEvent {
/// The `new TouchEvent(..)` constructor, creating a new TouchEvent instance
pub fn new_with_event_init_dict(
type_: &JsString,
event_init_dict: &TouchEventInit,
) -> TouchEvent {
Self {
inner: Any::global("TouchEvent")
.new(&[type_.into(), event_init_dict.into()])
.as_::<UIEvent>(),
}
}
}
impl TouchEvent {
/// The getModifierState method.
/// [`TouchEvent.getModifierState`](https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent/getModifierState)
pub fn get_modifier_state(&self, key_arg: &JsString) -> bool {
self.inner
.call("getModifierState", &[key_arg.into()])
.as_::<bool>()
}
}