WebCore:
[WebKit-https.git] / WebCore / dom / Event.cpp
1 /**
2  * This file is part of the DOM implementation for KDE.
3  *
4  * Copyright (C) 2001 Peter Kelly (pmk@post.com)
5  * Copyright (C) 2001 Tobias Anton (anton@stud.fbi.fh-darmstadt.de)
6  * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
7  * Copyright (C) 2003, 2005, 2006 Apple Computer, Inc.
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU Library General Public
11  * License as published by the Free Software Foundation; either
12  * version 2 of the License, or (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17  * Library General Public License for more details.
18  *
19  * You should have received a copy of the GNU Library General Public License
20  * along with this library; see the file COPYING.LIB.  If not, write to
21  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22  * Boston, MA 02111-1307, USA.
23  */
24 #include "config.h"
25 #include "Event.h"
26
27 #include "AtomicString.h"
28 #include "Node.h"
29 #include "SystemTime.h"
30
31 namespace WebCore {
32
33 Event::Event()
34     : m_canBubble(false)
35     , m_cancelable(false)
36     , m_propagationStopped(false)
37     , m_defaultPrevented(false)
38     , m_defaultHandled(false)
39     , m_cancelBubble(false)
40     , m_currentTarget(0)
41     , m_eventPhase(0)
42     , m_createTime(static_cast<DOMTimeStamp>(currentTime() * 1000.0))
43 {
44 }
45
46 Event::Event(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg)
47     : m_type(eventType)
48     , m_canBubble(canBubbleArg)
49     , m_cancelable(cancelableArg)
50     , m_propagationStopped(false)
51     , m_defaultPrevented(false)
52     , m_defaultHandled(false)
53     , m_cancelBubble(false)
54     , m_currentTarget(0)
55     , m_eventPhase(0)
56     , m_createTime(static_cast<DOMTimeStamp>(currentTime() * 1000.0))
57 {
58 }
59
60 Event::~Event()
61 {
62 }
63
64 void Event::initEvent(const AtomicString& eventTypeArg, bool canBubbleArg, bool cancelableArg)
65 {
66     if (dispatched())
67         return;
68
69     m_type = eventTypeArg;
70     m_canBubble = canBubbleArg;
71     m_cancelable = cancelableArg;
72 }
73
74 bool Event::isUIEvent() const
75 {
76     return false;
77 }
78
79 bool Event::isMouseEvent() const
80 {
81     return false;
82 }
83
84 bool Event::isMutationEvent() const
85 {
86     return false;
87 }
88
89 bool Event::isKeyboardEvent() const
90 {
91     return false;
92 }
93
94 bool Event::isDragEvent() const
95 {
96     return false;
97 }
98
99 bool Event::isClipboardEvent() const
100 {
101     return false;
102 }
103
104 bool Event::isWheelEvent() const
105 {
106     return false;
107 }
108
109 bool Event::isBeforeTextInsertedEvent() const
110 {
111     return false;
112 }
113
114 bool Event::isOverflowEvent() const
115 {
116     return false;
117 }
118
119 #ifdef SVG_SUPPORT
120 bool Event::isSVGZoomEvent() const
121 {
122     return false;
123 }
124 #endif
125
126
127 bool Event::storesResultAsString() const
128 {
129     return false;
130 }
131
132 void Event::storeResult(const String&)
133 {
134 }
135
136 void Event::setTarget(PassRefPtr<Node> target)
137 {
138     m_target = target;
139     if (m_target)
140         receivedTarget();
141 }
142
143 void Event::receivedTarget()
144 {
145 }
146
147 void Event::setUnderlyingEvent(PassRefPtr<Event> ue)
148 {
149     // Prohibit creation of a cycle -- just do nothing in that case.
150     for (Event* e = ue.get(); e; e = e->underlyingEvent())
151         if (e == this)
152             return;
153     m_underlyingEvent = ue;
154 }
155
156 } // namespace WebCore