blob: 0c01af9d184bec49a8138cc18eeda6f2f6507330 [file] [log] [blame]
/*
* Copyright (C) 2005, 2007 Apple Inc. All rights reserved.
* Copyright (C) 2006 Jon Shier (jshier@iastate.edu)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public License
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*
*/
#ifndef EventNames_h
#define EventNames_h
#include "EventInterfaces.h"
#include "EventTargetInterfaces.h"
#include "core/platform/ThreadGlobalData.h"
#include "wtf/text/AtomicString.h"
namespace WebCore {
#define EVENT_NAMES_FOR_EACH(macro) \
\
macro(abort) \
macro(beforecopy) \
macro(beforecut) \
macro(beforeload) \
macro(beforepaste) \
macro(beforeunload) \
macro(blocked) \
macro(blur) \
macro(cached) \
macro(change) \
macro(chargingchange) \
macro(chargingtimechange) \
macro(checking) \
macro(click) \
macro(close) \
macro(complete) \
macro(compositionend) \
macro(compositionstart) \
macro(compositionupdate) \
macro(connect) \
macro(contextmenu) \
macro(copy) \
macro(cut) \
macro(dblclick) \
macro(devicemotion) \
macro(deviceorientation) \
macro(dischargingtimechange) \
macro(disconnect) \
macro(display) \
macro(downloading) \
macro(drag) \
macro(dragend) \
macro(dragenter) \
macro(dragleave) \
macro(dragover) \
macro(dragstart) \
macro(drop) \
macro(error) \
macro(focus) \
macro(focusin) \
macro(focusout) \
macro(gesturetap) \
macro(gesturetapunconfirmed) \
macro(gesturetapdown) \
macro(gesturescrollstart) \
macro(gesturescrollend) \
macro(gesturescrollupdate) \
macro(hashchange) \
macro(input) \
macro(invalid) \
macro(keydown) \
macro(keypress) \
macro(keyup) \
macro(levelchange) \
macro(load) \
macro(loading) \
macro(loadingdone) \
macro(loadstart) \
macro(message) \
macro(midimessage) \
macro(mousedown) \
macro(mouseenter) \
macro(mouseleave) \
macro(mousemove) \
macro(mouseout) \
macro(mouseover) \
macro(mouseup) \
macro(mousewheel) \
macro(noupdate) \
macro(obsolete) \
macro(offline) \
macro(online) \
macro(open) \
macro(overflowchanged) \
macro(pagehide) \
macro(pageshow) \
macro(paste) \
macro(popstate) \
macro(readystatechange) \
macro(reset) \
macro(resize) \
macro(scroll) \
macro(search) \
macro(select) \
macro(selectstart) \
macro(selectionchange) \
macro(storage) \
macro(submit) \
macro(textInput) \
macro(unload) \
macro(updateready) \
macro(upgradeneeded) \
macro(versionchange) \
macro(webkitvisibilitychange) \
macro(write) \
macro(writeend) \
macro(writestart) \
macro(zoom) \
\
macro(DOMActivate) \
macro(DOMFocusIn) \
macro(DOMFocusOut) \
macro(DOMCharacterDataModified) \
macro(DOMNodeInserted) \
macro(DOMNodeInsertedIntoDocument) \
macro(DOMNodeRemoved) \
macro(DOMNodeRemovedFromDocument) \
macro(DOMSubtreeModified) \
macro(DOMContentLoaded) \
\
macro(webkitBeforeTextInserted) \
macro(webkitEditableContentChanged) \
\
macro(canplay) \
macro(canplaythrough) \
macro(durationchange) \
macro(emptied) \
macro(ended) \
macro(loadeddata) \
macro(loadedmetadata) \
macro(pause) \
macro(play) \
macro(playing) \
macro(ratechange) \
macro(seeked) \
macro(seeking) \
macro(timeupdate) \
macro(volumechange) \
macro(waiting) \
\
macro(addtrack) \
macro(cuechange) \
macro(enter) \
macro(exit) \
\
macro(addsourcebuffer) \
macro(removesourcebuffer) \
macro(sourceopen) \
macro(sourceended) \
macro(sourceclose) \
macro(update) \
macro(updateend) \
macro(updatestart) \
macro(webkitaddsourcebuffer) \
macro(webkitremovesourcebuffer) \
macro(webkitsourceopen) \
macro(webkitsourceended) \
macro(webkitsourceclose) \
\
macro(webkitkeyadded) \
macro(webkitkeyerror) \
macro(webkitkeymessage) \
macro(webkitneedkey) \
\
macro(progress) \
macro(stalled) \
macro(suspend) \
\
macro(webkitAnimationEnd) \
macro(webkitAnimationStart) \
macro(webkitAnimationIteration) \
\
macro(webkitTransitionEnd) \
macro(transitionend) \
\
macro(orientationchange) \
\
macro(timeout) \
\
macro(touchstart) \
macro(touchmove) \
macro(touchend) \
macro(touchcancel) \
\
macro(success) \
\
macro(loadend) \
\
macro(webkitfullscreenchange) \
macro(webkitfullscreenerror) \
\
macro(webkitspeechchange) \
\
macro(audiostart) \
macro(soundstart) \
macro(speechstart) \
macro(speechend) \
macro(soundend) \
macro(audioend) \
macro(result) \
macro(nomatch) \
macro(start) \
macro(end) \
macro(mark) \
macro(boundary) \
macro(resume) \
\
macro(webglcontextlost) \
macro(webglcontextrestored) \
macro(webglcontextcreationerror) \
\
macro(audioprocess) \
\
macro(connecting) \
macro(addstream) \
macro(removestream) \
macro(signalingstatechange) \
macro(removetrack) \
macro(mute) \
macro(unmute) \
macro(iceconnectionstatechange) \
macro(icecandidate) \
macro(negotiationneeded) \
macro(datachannel) \
macro(tonechange) \
\
macro(show) \
\
macro(webkitpointerlockchange) \
macro(webkitpointerlockerror) \
\
macro(webkitregionlayoutupdate) \
\
macro(webkitregionoversetchange) \
\
macro(webkitnetworkinfochange) \
\
macro(webkitresourcetimingbufferfull) \
\
macro(webkitdeviceproximity) \
\
macro(autocomplete) \
macro(autocompleteerror) \
\
macro(webkitprerenderstart) \
macro(webkitprerenderstop) \
macro(webkitprerenderload) \
macro(webkitprerenderdomcontentloaded) \
\
macro(securitypolicyviolation) \
\
// end of EVENT_NAMES_FOR_EACH
class EventNames {
WTF_MAKE_NONCOPYABLE(EventNames); WTF_MAKE_FAST_ALLOCATED;
int dummy; // Needed to make initialization macro work.
// Private to prevent accidental call to EventNames() instead of eventNames()
EventNames();
friend class ThreadGlobalData;
public:
#define EVENT_NAMES_DECLARE(name) AtomicString name##Event;
EVENT_NAMES_FOR_EACH(EVENT_NAMES_DECLARE)
#undef EVENT_NAMES_DECLARE
#define EVENT_INTERFACE_DECLARE(name) AtomicString interfaceFor##name;
EVENT_INTERFACES_FOR_EACH(EVENT_INTERFACE_DECLARE)
EVENT_TARGET_INTERFACES_FOR_EACH(EVENT_INTERFACE_DECLARE)
#undef EVENT_INTERFACE_DECLARE
inline bool isTouchEventType(const AtomicString& eventType) const
{
return eventType == touchstartEvent
|| eventType == touchmoveEvent
|| eventType == touchendEvent
|| eventType == touchcancelEvent;
}
inline bool isGestureEventType(const AtomicString& eventType) const
{
return eventType == gesturetapEvent
|| eventType == gesturetapunconfirmedEvent
|| eventType == gesturetapdownEvent
|| eventType == gesturescrollstartEvent
|| eventType == gesturescrollendEvent
|| eventType == gesturescrollupdateEvent;
}
Vector<AtomicString> touchEventNames() const
{
Vector<AtomicString> names;
names.reserveCapacity(4);
names.append(touchstartEvent);
names.append(touchmoveEvent);
names.append(touchendEvent);
names.append(touchcancelEvent);
return names;
}
};
inline EventNames& eventNames()
{
return threadGlobalData().eventNames();
}
}
#endif