Index: Source/core/events/RelatedEvent.h |
diff --git a/Source/core/events/RelatedEvent.h b/Source/core/events/RelatedEvent.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..50dd7b2ae4c8f4a6a41720cb9fe95174450714fd |
--- /dev/null |
+++ b/Source/core/events/RelatedEvent.h |
@@ -0,0 +1,50 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef RelatedEvent_h |
+#define RelatedEvent_h |
+ |
+#include "core/events/Event.h" |
+ |
+namespace WebCore { |
+ |
+struct RelatedEventInit : public EventInit { |
+ RelatedEventInit(); |
+ RefPtr<EventTarget> relatedTarget; |
+}; |
+ |
+class RelatedEvent FINAL : public Event { |
+public: |
+ static PassRefPtr<RelatedEvent> create() |
+ { |
+ return adoptRef(new RelatedEvent); |
+ } |
+ |
+ static PassRefPtr<RelatedEvent> create(const AtomicString& eventType); |
+ static PassRefPtr<RelatedEvent> create(const AtomicString& eventType, const RelatedEventInit&); |
+ |
+ virtual ~RelatedEvent() { } |
+ |
+ EventTarget* relatedTarget() const { return m_relatedTarget.get(); } |
+ EventTarget* relatedTarget(bool& isNull) const { isNull = !m_relatedTarget; return m_relatedTarget.get(); } |
+ void setRelatedTarget(PassRefPtr<EventTarget> relatedTarget) { m_relatedTarget = relatedTarget; } |
+ |
+ |
+ virtual const AtomicString& interfaceName() const OVERRIDE { return EventNames::RelatedEvent; } |
+ virtual bool isRelatedEvent() const OVERRIDE { return true; } |
+ |
+protected: |
+ RelatedEvent(); |
+ RelatedEvent(const AtomicString& type); |
+ RelatedEvent(const AtomicString& type, const RelatedEventInit&); |
+ |
+private: |
+ RefPtr<EventTarget> m_relatedTarget; |
+}; |
+ |
+DEFINE_EVENT_TYPE_CASTS(RelatedEvent); |
+ |
+} // namespace WebCore |
+ |
+#endif // RelatedEvent_h |