Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Side by Side Diff: Source/core/events/EventTarget.h

Issue 48603002: Implement WindowEventHandlers (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/core/core.gypi ('k') | Source/core/frame/DOMWindow.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 void setOn##attribute(PassRefPtr<EventListener> listener, DOMWrapperWorld* i solatedWorld = 0) { setAttributeEventListener(EventTypeNames::attribute, listene r, isolatedWorld); } \ 163 void setOn##attribute(PassRefPtr<EventListener> listener, DOMWrapperWorld* i solatedWorld = 0) { setAttributeEventListener(EventTypeNames::attribute, listene r, isolatedWorld); } \
164 164
165 #define DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(attribute) \ 165 #define DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(attribute) \
166 static EventListener* on##attribute(EventTarget* eventTarget, DOMWrapperWorl d* isolatedWorld) { return eventTarget->getAttributeEventListener(EventTypeNames ::attribute, isolatedWorld); } \ 166 static EventListener* on##attribute(EventTarget* eventTarget, DOMWrapperWorl d* isolatedWorld) { return eventTarget->getAttributeEventListener(EventTypeNames ::attribute, isolatedWorld); } \
167 static void setOn##attribute(EventTarget* eventTarget, PassRefPtr<EventListe ner> listener, DOMWrapperWorld* isolatedWorld = 0) { eventTarget->setAttributeEv entListener(EventTypeNames::attribute, listener, isolatedWorld); } \ 167 static void setOn##attribute(EventTarget* eventTarget, PassRefPtr<EventListe ner> listener, DOMWrapperWorld* isolatedWorld = 0) { eventTarget->setAttributeEv entListener(EventTypeNames::attribute, listener, isolatedWorld); } \
168 168
169 #define DEFINE_WINDOW_ATTRIBUTE_EVENT_LISTENER(attribute) \ 169 #define DEFINE_WINDOW_ATTRIBUTE_EVENT_LISTENER(attribute) \
170 EventListener* on##attribute(DOMWrapperWorld* isolatedWorld) { return docume nt().getWindowAttributeEventListener(EventTypeNames::attribute, isolatedWorld); } \ 170 EventListener* on##attribute(DOMWrapperWorld* isolatedWorld) { return docume nt().getWindowAttributeEventListener(EventTypeNames::attribute, isolatedWorld); } \
171 void setOn##attribute(PassRefPtr<EventListener> listener, DOMWrapperWorld* i solatedWorld) { document().setWindowAttributeEventListener(EventTypeNames::attri bute, listener, isolatedWorld); } \ 171 void setOn##attribute(PassRefPtr<EventListener> listener, DOMWrapperWorld* i solatedWorld) { document().setWindowAttributeEventListener(EventTypeNames::attri bute, listener, isolatedWorld); } \
172 172
173 #define DEFINE_STATIC_WINDOW_ATTRIBUTE_EVENT_LISTENER(attribute) \
174 static EventListener* on##attribute(EventTarget* eventTarget, DOMWrapperWorl d* isolatedWorld) { \
175 if (Node* node = eventTarget->toNode()) \
176 return node->document().getWindowAttributeEventListener(EventTypeNam es::attribute, isolatedWorld); \
177 ASSERT(eventTarget->toDOMWindow()); \
178 return eventTarget->getAttributeEventListener(EventTypeNames::attribute, isolatedWorld); \
179 } \
180 static void setOn##attribute(EventTarget* eventTarget, PassRefPtr<EventListe ner> listener, DOMWrapperWorld* isolatedWorld) { \
181 if (Node* node = eventTarget->toNode()) \
182 node->document().setWindowAttributeEventListener(EventTypeNames::att ribute, listener, isolatedWorld); \
183 else { \
184 ASSERT(eventTarget->toDOMWindow()); \
185 eventTarget->setAttributeEventListener(EventTypeNames::attribute, li stener, isolatedWorld); \
186 } \
187 }
188
173 #define DEFINE_MAPPED_ATTRIBUTE_EVENT_LISTENER(attribute, eventName) \ 189 #define DEFINE_MAPPED_ATTRIBUTE_EVENT_LISTENER(attribute, eventName) \
174 EventListener* on##attribute(DOMWrapperWorld* isolatedWorld) { return getAtt ributeEventListener(EventTypeNames::eventName, isolatedWorld); } \ 190 EventListener* on##attribute(DOMWrapperWorld* isolatedWorld) { return getAtt ributeEventListener(EventTypeNames::eventName, isolatedWorld); } \
175 void setOn##attribute(PassRefPtr<EventListener> listener, DOMWrapperWorld* i solatedWorld) { setAttributeEventListener(EventTypeNames::eventName, listener, i solatedWorld); } \ 191 void setOn##attribute(PassRefPtr<EventListener> listener, DOMWrapperWorld* i solatedWorld) { setAttributeEventListener(EventTypeNames::eventName, listener, i solatedWorld); } \
176 192
177 #define DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(recipient, attribute) \ 193 #define DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(recipient, attribute) \
178 EventListener* on##attribute(DOMWrapperWorld* isolatedWorld); \ 194 EventListener* on##attribute(DOMWrapperWorld* isolatedWorld); \
179 void setOn##attribute(PassRefPtr<EventListener> listener, DOMWrapperWorld* i solatedWorld); 195 void setOn##attribute(PassRefPtr<EventListener> listener, DOMWrapperWorld* i solatedWorld);
180 196
181 #define DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(type, recipient, attribute) \ 197 #define DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(type, recipient, attribute) \
182 EventListener* type::on##attribute(DOMWrapperWorld* isolatedWorld) { return recipient ? recipient->getAttributeEventListener(EventTypeNames::attribute, isol atedWorld) : 0; } \ 198 EventListener* type::on##attribute(DOMWrapperWorld* isolatedWorld) { return recipient ? recipient->getAttributeEventListener(EventTypeNames::attribute, isol atedWorld) : 0; } \
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 virtual void refEventTarget() OVERRIDE FINAL { ref(); } \ 244 virtual void refEventTarget() OVERRIDE FINAL { ref(); } \
229 virtual void derefEventTarget() OVERRIDE FINAL { deref(); } \ 245 virtual void derefEventTarget() OVERRIDE FINAL { deref(); } \
230 typedef int thisIsHereToForceASemiColonAfterThisEventTargetMacro 246 typedef int thisIsHereToForceASemiColonAfterThisEventTargetMacro
231 247
232 // Use this macro if your EventTarget subclass is also a subclass of WTF::RefCou nted. 248 // Use this macro if your EventTarget subclass is also a subclass of WTF::RefCou nted.
233 // A ref-counted class that uses a different method of refcounting should use DE FINE_EVENT_TARGET_REFCOUNTING directly. 249 // A ref-counted class that uses a different method of refcounting should use DE FINE_EVENT_TARGET_REFCOUNTING directly.
234 // Both of these macros are meant to be placed just before the "public:" section of the class declaration. 250 // Both of these macros are meant to be placed just before the "public:" section of the class declaration.
235 #define REFCOUNTED_EVENT_TARGET(className) DEFINE_EVENT_TARGET_REFCOUNTING(RefCo unted<className>) 251 #define REFCOUNTED_EVENT_TARGET(className) DEFINE_EVENT_TARGET_REFCOUNTING(RefCo unted<className>)
236 252
237 #endif // EventTarget_h 253 #endif // EventTarget_h
OLDNEW
« no previous file with comments | « Source/core/core.gypi ('k') | Source/core/frame/DOMWindow.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698