1 /*
2 * Copyright (c) 2003 World Wide Web Consortium,
3 *
4 * (Massachusetts Institute of Technology, European Research Consortium for
5 * Informatics and Mathematics, Keio University). All Rights Reserved. This
6 * work is distributed under the W3C(r) Software License [1] in the hope that
7 * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
8 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9 *
10 * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
11 */
13 // File: http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107/events.idl
15 #ifndef _EVENTS_IDL_
16 #define _EVENTS_IDL_
18 #include "dom.idl"
19 #include "views.idl"
21 #pragma prefix "dom.w3c.org"
22 module events
23 {
25 typedef dom::DOMString DOMString;
26 typedef dom::DOMTimeStamp DOMTimeStamp;
27 typedef dom::DOMObject DOMObject;
28 typedef dom::Node Node;
30 interface EventTarget;
31 interface EventListener;
33 // Introduced in DOM Level 2:
34 exception EventException {
35 unsigned short code;
36 };
37 // EventExceptionCode
38 const unsigned short UNSPECIFIED_EVENT_TYPE_ERR = 0;
39 // Introduced in DOM Level 3:
40 const unsigned short DISPATCH_REQUEST_ERR = 1;
43 // Introduced in DOM Level 2:
44 interface Event {
46 // PhaseType
47 const unsigned short CAPTURING_PHASE = 1;
48 const unsigned short AT_TARGET = 2;
49 const unsigned short BUBBLING_PHASE = 3;
51 readonly attribute DOMString type;
52 readonly attribute EventTarget target;
53 readonly attribute EventTarget currentTarget;
54 readonly attribute unsigned short eventPhase;
55 readonly attribute boolean bubbles;
56 readonly attribute boolean cancelable;
57 readonly attribute DOMTimeStamp timeStamp;
58 void stopPropagation();
59 void preventDefault();
60 void initEvent(in DOMString eventTypeArg,
61 in boolean canBubbleArg,
62 in boolean cancelableArg);
63 // Introduced in DOM Level 3:
64 readonly attribute DOMString namespaceURI;
65 // Introduced in DOM Level 3:
66 boolean isCustom();
67 // Introduced in DOM Level 3:
68 void stopImmediatePropagation();
69 // Introduced in DOM Level 3:
70 boolean isDefaultPrevented();
71 // Introduced in DOM Level 3:
72 void initEventNS(in DOMString namespaceURIArg,
73 in DOMString eventTypeArg,
74 in boolean canBubbleArg,
75 in boolean cancelableArg);
76 };
78 // Introduced in DOM Level 2:
79 interface EventTarget {
80 void addEventListener(in DOMString type,
81 in EventListener listener,
82 in boolean useCapture);
83 void removeEventListener(in DOMString type,
84 in EventListener listener,
85 in boolean useCapture);
86 // Modified in DOM Level 3:
87 boolean dispatchEvent(in Event evt)
88 raises(EventException);
89 // Introduced in DOM Level 3:
90 void addEventListenerNS(in DOMString namespaceURI,
91 in DOMString type,
92 in EventListener listener,
93 in boolean useCapture,
94 in DOMObject evtGroup);
95 // Introduced in DOM Level 3:
96 void removeEventListenerNS(in DOMString namespaceURI,
97 in DOMString type,
98 in EventListener listener,
99 in boolean useCapture);
100 // Introduced in DOM Level 3:
101 boolean willTriggerNS(in DOMString namespaceURI,
102 in DOMString type);
103 // Introduced in DOM Level 3:
104 boolean hasEventListenerNS(in DOMString namespaceURI,
105 in DOMString type);
106 };
108 // Introduced in DOM Level 2:
109 interface EventListener {
110 void handleEvent(in Event evt);
111 };
113 // Introduced in DOM Level 2:
114 interface DocumentEvent {
115 Event createEvent(in DOMString eventType)
116 raises(dom::DOMException);
117 // Introduced in DOM Level 3:
118 boolean canDispatch(in DOMString namespaceURI,
119 in DOMString type);
120 };
122 // Introduced in DOM Level 3:
123 interface CustomEvent : Event {
124 void setDispatchState(in EventTarget target,
125 in unsigned short phase);
126 boolean isPropagationStopped();
127 boolean isImmediatePropagationStopped();
128 };
130 // Introduced in DOM Level 2:
131 interface UIEvent : Event {
132 readonly attribute views::AbstractView view;
133 readonly attribute long detail;
134 void initUIEvent(in DOMString typeArg,
135 in boolean canBubbleArg,
136 in boolean cancelableArg,
137 in views::AbstractView viewArg,
138 in long detailArg);
139 // Introduced in DOM Level 3:
140 void initUIEventNS(in DOMString namespaceURI,
141 in DOMString typeArg,
142 in boolean canBubbleArg,
143 in boolean cancelableArg,
144 in views::AbstractView viewArg,
145 in long detailArg);
146 };
148 // Introduced in DOM Level 3:
149 interface TextEvent : UIEvent {
150 readonly attribute DOMString data;
151 void initTextEvent(in DOMString typeArg,
152 in boolean canBubbleArg,
153 in boolean cancelableArg,
154 in views::AbstractView viewArg,
155 in DOMString dataArg);
156 void initTextEventNS(in DOMString namespaceURI,
157 in DOMString type,
158 in boolean canBubbleArg,
159 in boolean cancelableArg,
160 in views::AbstractView viewArg,
161 in DOMString dataArg);
162 };
164 // Introduced in DOM Level 2:
165 interface MouseEvent : UIEvent {
166 readonly attribute long screenX;
167 readonly attribute long screenY;
168 readonly attribute long clientX;
169 readonly attribute long clientY;
170 readonly attribute boolean ctrlKey;
171 readonly attribute boolean shiftKey;
172 readonly attribute boolean altKey;
173 readonly attribute boolean metaKey;
174 readonly attribute unsigned short button;
175 readonly attribute EventTarget relatedTarget;
176 void initMouseEvent(in DOMString typeArg,
177 in boolean canBubbleArg,
178 in boolean cancelableArg,
179 in views::AbstractView viewArg,
180 in long detailArg,
181 in long screenXArg,
182 in long screenYArg,
183 in long clientXArg,
184 in long clientYArg,
185 in boolean ctrlKeyArg,
186 in boolean altKeyArg,
187 in boolean shiftKeyArg,
188 in boolean metaKeyArg,
189 in unsigned short buttonArg,
190 in EventTarget relatedTargetArg);
191 // Introduced in DOM Level 3:
192 boolean getModifierState(in DOMString keyIdentifierArg);
193 // Introduced in DOM Level 3:
194 void initMouseEventNS(in DOMString namespaceURI,
195 in DOMString typeArg,
196 in boolean canBubbleArg,
197 in boolean cancelableArg,
198 in views::AbstractView viewArg,
199 in long detailArg,
200 in long screenXArg,
201 in long screenYArg,
202 in long clientXArg,
203 in long clientYArg,
204 in unsigned short buttonArg,
205 in EventTarget relatedTargetArg,
206 in DOMString modifiersList);
207 };
209 // Introduced in DOM Level 3:
210 interface KeyboardEvent : UIEvent {
212 // KeyLocationCode
213 const unsigned long DOM_KEY_LOCATION_STANDARD = 0x00;
214 const unsigned long DOM_KEY_LOCATION_LEFT = 0x01;
215 const unsigned long DOM_KEY_LOCATION_RIGHT = 0x02;
216 const unsigned long DOM_KEY_LOCATION_NUMPAD = 0x03;
218 readonly attribute DOMString keyIdentifier;
219 readonly attribute unsigned long keyLocation;
220 readonly attribute boolean ctrlKey;
221 readonly attribute boolean shiftKey;
222 readonly attribute boolean altKey;
223 readonly attribute boolean metaKey;
224 boolean getModifierState(in DOMString keyIdentifierArg);
225 void initKeyboardEvent(in DOMString typeArg,
226 in boolean canBubbleArg,
227 in boolean cancelableArg,
228 in views::AbstractView viewArg,
229 in DOMString keyIdentifierArg,
230 in unsigned long keyLocationArg,
231 in DOMString modifiersList);
232 void initKeyboardEventNS(in DOMString namespaceURI,
233 in DOMString typeArg,
234 in boolean canBubbleArg,
235 in boolean cancelableArg,
236 in views::AbstractView viewArg,
237 in DOMString keyIdentifierArg,
238 in unsigned long keyLocationArg,
239 in DOMString modifiersList);
240 };
242 // Introduced in DOM Level 2:
243 interface MutationEvent : Event {
245 // attrChangeType
246 const unsigned short MODIFICATION = 1;
247 const unsigned short ADDITION = 2;
248 const unsigned short REMOVAL = 3;
250 readonly attribute Node relatedNode;
251 readonly attribute DOMString prevValue;
252 readonly attribute DOMString newValue;
253 readonly attribute DOMString attrName;
254 readonly attribute unsigned short attrChange;
255 void initMutationEvent(in DOMString typeArg,
256 in boolean canBubbleArg,
257 in boolean cancelableArg,
258 in Node relatedNodeArg,
259 in DOMString prevValueArg,
260 in DOMString newValueArg,
261 in DOMString attrNameArg,
262 in unsigned short attrChangeArg);
263 // Introduced in DOM Level 3:
264 void initMutationEventNS(in DOMString namespaceURI,
265 in DOMString typeArg,
266 in boolean canBubbleArg,
267 in boolean cancelableArg,
268 in Node relatedNodeArg,
269 in DOMString prevValueArg,
270 in DOMString newValueArg,
271 in DOMString attrNameArg,
272 in unsigned short attrChangeArg);
273 };
275 // Introduced in DOM Level 3:
276 interface MutationNameEvent : MutationEvent {
277 readonly attribute DOMString prevNamespaceURI;
278 readonly attribute DOMString prevNodeName;
279 // Introduced in DOM Level 3:
280 void initMutationNameEvent(in DOMString typeArg,
281 in boolean canBubbleArg,
282 in boolean cancelableArg,
283 in Node relatedNodeArg,
284 in DOMString prevNamespaceURIArg,
285 in DOMString prevNodeNameArg);
286 // Introduced in DOM Level 3:
287 void initMutationNameEventNS(in DOMString namespaceURI,
288 in DOMString typeArg,
289 in boolean canBubbleArg,
290 in boolean cancelableArg,
291 in Node relatedNodeArg,
292 in DOMString prevNamespaceURIArg,
293 in DOMString prevNodeNameArg);
294 };
295 };
297 #endif // _EVENTS_IDL_