Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / events / MouseEvent.h
index 3bb4298..6553bc1 100644 (file)
 
 #include "core/events/EventDispatchMediator.h"
 #include "core/events/MouseRelatedEvent.h"
+#include "platform/PlatformMouseEvent.h"
 
 namespace blink {
 
 class DataTransfer;
 class EventDispatcher;
-class PlatformMouseEvent;
 
 struct MouseEventInit : public UIEventInit {
     MouseEventInit();
@@ -49,6 +49,7 @@ struct MouseEventInit : public UIEventInit {
 };
 
 class MouseEvent : public MouseRelatedEvent {
+    DEFINE_WRAPPERTYPEINFO();
 public:
     static PassRefPtrWillBeRawPtr<MouseEvent> create()
     {
@@ -59,7 +60,8 @@ public:
         int detail, int screenX, int screenY, int pageX, int pageY,
         int movementX, int movementY,
         bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, unsigned short button,
-        PassRefPtrWillBeRawPtr<EventTarget> relatedTarget, PassRefPtrWillBeRawPtr<DataTransfer>, bool isSimulated = false);
+        PassRefPtrWillBeRawPtr<EventTarget> relatedTarget, PassRefPtrWillBeRawPtr<DataTransfer>,
+        bool isSimulated = false, PlatformMouseEvent::SyntheticEventType = PlatformMouseEvent::RealOrIndistinguishable);
 
     static PassRefPtrWillBeRawPtr<MouseEvent> create(const AtomicString& eventType, PassRefPtrWillBeRawPtr<AbstractView>, const PlatformMouseEvent&, int detail, PassRefPtrWillBeRawPtr<Node> relatedTarget);
 
@@ -84,6 +86,8 @@ public:
 
     DataTransfer* dataTransfer() const { return isDragEvent() ? m_dataTransfer.get() : 0; }
 
+    bool fromTouch() const { return m_syntheticEventType == PlatformMouseEvent::FromTouch; }
+
     virtual const AtomicString& interfaceName() const OVERRIDE;
 
     virtual bool isMouseEvent() const OVERRIDE;
@@ -97,7 +101,8 @@ protected:
         int detail, int screenX, int screenY, int pageX, int pageY,
         int movementX, int movementY,
         bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, unsigned short button,
-        PassRefPtrWillBeRawPtr<EventTarget> relatedTarget, PassRefPtrWillBeRawPtr<DataTransfer>, bool isSimulated);
+        PassRefPtrWillBeRawPtr<EventTarget> relatedTarget, PassRefPtrWillBeRawPtr<DataTransfer>,
+        bool isSimulated, PlatformMouseEvent::SyntheticEventType);
 
     MouseEvent(const AtomicString& type, const MouseEventInit&);
 
@@ -108,6 +113,7 @@ private:
     bool m_buttonDown;
     RefPtrWillBeMember<EventTarget> m_relatedTarget;
     RefPtrWillBeMember<DataTransfer> m_dataTransfer;
+    PlatformMouseEvent::SyntheticEventType m_syntheticEventType;
 };
 
 class SimulatedMouseEvent FINAL : public MouseEvent {