• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2005, 2007 Apple Inc. All rights reserved.
3  * Copyright (C) 2006 Jon Shier (jshier@iastate.edu)
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Library General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Library General Public License for more details.
14  *
15  * You should have received a copy of the GNU Library General Public License
16  * along with this library; see the file COPYING.LIB.  If not, write to
17  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  * Boston, MA 02110-1301, USA.
19  *
20  */
21 
22 #ifndef EventNames_h
23 #define EventNames_h
24 
25 #include "ThreadGlobalData.h"
26 #include <wtf/text/AtomicString.h>
27 
28 namespace WebCore {
29 
30 #define DOM_EVENT_NAMES_FOR_EACH(macro) \
31     \
32     macro(abort) \
33     macro(beforecopy) \
34     macro(beforecut) \
35     macro(beforeload) \
36     macro(beforepaste) \
37     macro(beforeprocess) \
38     macro(beforeunload) \
39     macro(blocked) \
40     macro(blur) \
41     macro(cached) \
42     macro(change) \
43     macro(checking) \
44     macro(click) \
45     macro(close) \
46     macro(complete) \
47     macro(compositionend) \
48     macro(compositionstart) \
49     macro(compositionupdate) \
50     macro(connect) \
51     macro(contextmenu) \
52     macro(copy) \
53     macro(cut) \
54     macro(dblclick) \
55     macro(devicemotion) \
56     macro(deviceorientation) \
57     macro(display) \
58     macro(downloading) \
59     macro(drag) \
60     macro(dragend) \
61     macro(dragenter) \
62     macro(dragleave) \
63     macro(dragover) \
64     macro(dragstart) \
65     macro(drop) \
66     macro(error) \
67     macro(focus) \
68     macro(focusin) \
69     macro(focusout) \
70     macro(hashchange) \
71     macro(input) \
72     macro(invalid) \
73     macro(keydown) \
74     macro(keypress) \
75     macro(keyup) \
76     macro(load) \
77     macro(loadstart) \
78     macro(message) \
79     macro(mousedown) \
80     macro(mousemove) \
81     macro(mouseout) \
82     macro(mouseover) \
83     macro(mouseup) \
84     macro(mousewheel) \
85     macro(noupdate) \
86     macro(obsolete) \
87     macro(offline) \
88     macro(online) \
89     macro(open) \
90     macro(overflowchanged) \
91     macro(pagehide) \
92     macro(pageshow) \
93     macro(paste) \
94     macro(popstate) \
95     macro(readystatechange) \
96     macro(reset) \
97     macro(resize) \
98     macro(scroll) \
99     macro(search) \
100     macro(select) \
101     macro(selectstart) \
102     macro(selectionchange) \
103     macro(storage) \
104     macro(submit) \
105     macro(textInput) \
106     macro(unload) \
107     macro(updateready) \
108     macro(versionchange) \
109     macro(write) \
110     macro(writeend) \
111     macro(writestart) \
112     macro(zoom) \
113     \
114     macro(DOMActivate) \
115     macro(DOMFocusIn) \
116     macro(DOMFocusOut) \
117     macro(DOMAttrModified) \
118     macro(DOMCharacterDataModified) \
119     macro(DOMNodeInserted) \
120     macro(DOMNodeInsertedIntoDocument) \
121     macro(DOMNodeRemoved) \
122     macro(DOMNodeRemovedFromDocument) \
123     macro(DOMSubtreeModified) \
124     macro(DOMContentLoaded) \
125     \
126     macro(webkitBeforeTextInserted) \
127     macro(webkitEditableContentChanged) \
128     \
129     macro(canplay) \
130     macro(canplaythrough) \
131     macro(durationchange) \
132     macro(emptied) \
133     macro(ended) \
134     macro(loadeddata) \
135     macro(loadedmetadata) \
136     macro(pause) \
137     macro(play) \
138     macro(playing) \
139     macro(ratechange) \
140     macro(seeked) \
141     macro(seeking) \
142     macro(timeupdate) \
143     macro(volumechange) \
144     macro(waiting) \
145     \
146     macro(webkitbeginfullscreen) \
147     macro(webkitendfullscreen) \
148     \
149     macro(progress) \
150     macro(stalled) \
151     macro(suspend) \
152     \
153     macro(webkitAnimationEnd) \
154     macro(webkitAnimationStart) \
155     macro(webkitAnimationIteration) \
156     \
157     macro(webkitTransitionEnd) \
158     \
159     macro(orientationchange) \
160     \
161     macro(timeout) \
162     \
163     macro(touchstart) \
164     macro(touchmove) \
165     macro(touchend) \
166     macro(touchcancel) \
167 /* #if PLATFORM(ANDROID) */ \
168     macro(touchlongpress) \
169     macro(touchdoubletap) \
170 /* #endif */ \
171     \
172     macro(success) \
173     \
174     macro(loadend) \
175     \
176     macro(webkitfullscreenchange) \
177     \
178     macro(webkitspeechchange) \
179     \
180     macro(webglcontextlost) \
181     macro(webglcontextrestored) \
182     macro(webglcontextcreationerror) \
183     \
184     macro(audioprocess) \
185     \
186 // end of DOM_EVENT_NAMES_FOR_EACH
187 
188     class EventNames {
189         WTF_MAKE_NONCOPYABLE(EventNames); WTF_MAKE_FAST_ALLOCATED;
190         int dummy; // Needed to make initialization macro work.
191         // Private to prevent accidental call to EventNames() instead of eventNames()
192         EventNames();
193         friend class ThreadGlobalData;
194 
195     public:
196         #define DOM_EVENT_NAMES_DECLARE(name) AtomicString name##Event;
197         DOM_EVENT_NAMES_FOR_EACH(DOM_EVENT_NAMES_DECLARE)
198         #undef DOM_EVENT_NAMES_DECLARE
199     };
200 
eventNames()201     inline EventNames& eventNames()
202     {
203         return threadGlobalData().eventNames();
204     }
205 
206 }
207 
208 #endif
209