OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
5 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. | 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. |
6 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 6 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
7 * (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> | 7 * (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> |
8 * | 8 * |
9 * Redistribution and use in source and binary forms, with or without | 9 * Redistribution and use in source and binary forms, with or without |
10 * modification, are permitted provided that the following conditions | 10 * modification, are permitted provided that the following conditions |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
155 EventTargetData m_eventTargetData; | 155 EventTargetData m_eventTargetData; |
156 }; | 156 }; |
157 | 157 |
158 // FIXME: These macros should be split into separate DEFINE and DECLARE | 158 // FIXME: These macros should be split into separate DEFINE and DECLARE |
159 // macros to avoid causing so many header includes. | 159 // macros to avoid causing so many header includes. |
160 #define DEFINE_ATTRIBUTE_EVENT_LISTENER(attribute) \ | 160 #define DEFINE_ATTRIBUTE_EVENT_LISTENER(attribute) \ |
161 EventListener* on##attribute() { return getAttributeEventListener(EventTypeN
ames::attribute); } \ | 161 EventListener* on##attribute() { return getAttributeEventListener(EventTypeN
ames::attribute); } \ |
162 void setOn##attribute(PassRefPtr<EventListener> listener) { setAttributeEven
tListener(EventTypeNames::attribute, listener); } \ | 162 void setOn##attribute(PassRefPtr<EventListener> listener) { setAttributeEven
tListener(EventTypeNames::attribute, listener); } \ |
163 | 163 |
164 #define DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(attribute) \ | 164 #define DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(attribute) \ |
165 static EventListener* on##attribute(EventTarget* eventTarget) { return event
Target->getAttributeEventListener(EventTypeNames::attribute); } \ | 165 static EventListener* on##attribute(EventTarget& eventTarget) { return event
Target.getAttributeEventListener(EventTypeNames::attribute); } \ |
166 static void setOn##attribute(EventTarget* eventTarget, PassRefPtr<EventListe
ner> listener) { eventTarget->setAttributeEventListener(EventTypeNames::attribut
e, listener); } \ | 166 static void setOn##attribute(EventTarget& eventTarget, PassRefPtr<EventListe
ner> listener) { eventTarget.setAttributeEventListener(EventTypeNames::attribute
, listener); } \ |
167 | 167 |
168 #define DEFINE_WINDOW_ATTRIBUTE_EVENT_LISTENER(attribute) \ | 168 #define DEFINE_WINDOW_ATTRIBUTE_EVENT_LISTENER(attribute) \ |
169 EventListener* on##attribute() { return document().getWindowAttributeEventLi
stener(EventTypeNames::attribute); } \ | 169 EventListener* on##attribute() { return document().getWindowAttributeEventLi
stener(EventTypeNames::attribute); } \ |
170 void setOn##attribute(PassRefPtr<EventListener> listener) { document().setWi
ndowAttributeEventListener(EventTypeNames::attribute, listener); } \ | 170 void setOn##attribute(PassRefPtr<EventListener> listener) { document().setWi
ndowAttributeEventListener(EventTypeNames::attribute, listener); } \ |
171 | 171 |
172 #define DEFINE_STATIC_WINDOW_ATTRIBUTE_EVENT_LISTENER(attribute) \ | 172 #define DEFINE_STATIC_WINDOW_ATTRIBUTE_EVENT_LISTENER(attribute) \ |
173 static EventListener* on##attribute(EventTarget* eventTarget) { \ | 173 static EventListener* on##attribute(EventTarget& eventTarget) { \ |
174 if (Node* node = eventTarget->toNode()) \ | 174 if (Node* node = eventTarget.toNode()) \ |
175 return node->document().getWindowAttributeEventListener(EventTypeNam
es::attribute); \ | 175 return node->document().getWindowAttributeEventListener(EventTypeNam
es::attribute); \ |
176 ASSERT(eventTarget->toDOMWindow()); \ | 176 ASSERT(eventTarget.toDOMWindow()); \ |
177 return eventTarget->getAttributeEventListener(EventTypeNames::attribute)
; \ | 177 return eventTarget.getAttributeEventListener(EventTypeNames::attribute);
\ |
178 } \ | 178 } \ |
179 static void setOn##attribute(EventTarget* eventTarget, PassRefPtr<EventListe
ner> listener) { \ | 179 static void setOn##attribute(EventTarget& eventTarget, PassRefPtr<EventListe
ner> listener) { \ |
180 if (Node* node = eventTarget->toNode()) \ | 180 if (Node* node = eventTarget.toNode()) \ |
181 node->document().setWindowAttributeEventListener(EventTypeNames::att
ribute, listener); \ | 181 node->document().setWindowAttributeEventListener(EventTypeNames::att
ribute, listener); \ |
182 else { \ | 182 else { \ |
183 ASSERT(eventTarget->toDOMWindow()); \ | 183 ASSERT(eventTarget.toDOMWindow()); \ |
184 eventTarget->setAttributeEventListener(EventTypeNames::attribute, li
stener); \ | 184 eventTarget.setAttributeEventListener(EventTypeNames::attribute, lis
tener); \ |
185 } \ | 185 } \ |
186 } | 186 } |
187 | 187 |
188 #define DEFINE_MAPPED_ATTRIBUTE_EVENT_LISTENER(attribute, eventName) \ | 188 #define DEFINE_MAPPED_ATTRIBUTE_EVENT_LISTENER(attribute, eventName) \ |
189 EventListener* on##attribute() { return getAttributeEventListener(EventTypeN
ames::eventName); } \ | 189 EventListener* on##attribute() { return getAttributeEventListener(EventTypeN
ames::eventName); } \ |
190 void setOn##attribute(PassRefPtr<EventListener> listener) { setAttributeEven
tListener(EventTypeNames::eventName, listener); } \ | 190 void setOn##attribute(PassRefPtr<EventListener> listener) { setAttributeEven
tListener(EventTypeNames::eventName, listener); } \ |
191 | 191 |
192 #define DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(recipient, attribute) \ | 192 #define DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(recipient, attribute) \ |
193 EventListener* on##attribute(); \ | 193 EventListener* on##attribute(); \ |
194 void setOn##attribute(PassRefPtr<EventListener> listener); | 194 void setOn##attribute(PassRefPtr<EventListener> listener); |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
235 virtual void refEventTarget() OVERRIDE FINAL { ref(); } \ | 235 virtual void refEventTarget() OVERRIDE FINAL { ref(); } \ |
236 virtual void derefEventTarget() OVERRIDE FINAL { deref(); } \ | 236 virtual void derefEventTarget() OVERRIDE FINAL { deref(); } \ |
237 typedef int thisIsHereToForceASemiColonAfterThisEventTargetMacro | 237 typedef int thisIsHereToForceASemiColonAfterThisEventTargetMacro |
238 | 238 |
239 // Use this macro if your EventTarget subclass is also a subclass of WTF::RefCou
nted. | 239 // Use this macro if your EventTarget subclass is also a subclass of WTF::RefCou
nted. |
240 // A ref-counted class that uses a different method of refcounting should use DE
FINE_EVENT_TARGET_REFCOUNTING directly. | 240 // A ref-counted class that uses a different method of refcounting should use DE
FINE_EVENT_TARGET_REFCOUNTING directly. |
241 // Both of these macros are meant to be placed just before the "public:" section
of the class declaration. | 241 // Both of these macros are meant to be placed just before the "public:" section
of the class declaration. |
242 #define REFCOUNTED_EVENT_TARGET(className) DEFINE_EVENT_TARGET_REFCOUNTING(RefCo
unted<className>) | 242 #define REFCOUNTED_EVENT_TARGET(className) DEFINE_EVENT_TARGET_REFCOUNTING(RefCo
unted<className>) |
243 | 243 |
244 #endif // EventTarget_h | 244 #endif // EventTarget_h |
OLD | NEW |