summaryrefslogtreecommitdiff
path: root/Source/WebCore/platform/PlatformMouseEvent.h
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
commit1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch)
tree46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/platform/PlatformMouseEvent.h
parent32761a6cee1d0dee366b885b7b9c777e67885688 (diff)
downloadWebKitGtk-tarball-master.tar.gz
Diffstat (limited to 'Source/WebCore/platform/PlatformMouseEvent.h')
-rw-r--r--Source/WebCore/platform/PlatformMouseEvent.h60
1 files changed, 37 insertions, 23 deletions
diff --git a/Source/WebCore/platform/PlatformMouseEvent.h b/Source/WebCore/platform/PlatformMouseEvent.h
index 4f7439996..104f53970 100644
--- a/Source/WebCore/platform/PlatformMouseEvent.h
+++ b/Source/WebCore/platform/PlatformMouseEvent.h
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
@@ -35,16 +35,14 @@ typedef struct _GdkEventButton GdkEventButton;
typedef struct _GdkEventMotion GdkEventMotion;
#endif
-#if PLATFORM(EFL)
-typedef struct _Evas_Event_Mouse_Down Evas_Event_Mouse_Down;
-typedef struct _Evas_Event_Mouse_Up Evas_Event_Mouse_Up;
-typedef struct _Evas_Event_Mouse_Move Evas_Event_Mouse_Move;
-#endif
-
namespace WebCore {
-
+
+const double ForceAtClick = 1;
+const double ForceAtForceClick = 2;
+
// These button numbers match the ones used in the DOM API, 0 through 2, except for NoButton which isn't specified.
- enum MouseButton { NoButton = -1, LeftButton, MiddleButton, RightButton };
+ enum MouseButton : int8_t { NoButton = -1, LeftButton, MiddleButton, RightButton };
+ enum SyntheticClickType : int8_t { NoTap, OneFingerTap, TwoFingerTap };
class PlatformMouseEvent : public PlatformEvent {
public:
@@ -53,8 +51,9 @@ namespace WebCore {
, m_button(NoButton)
, m_clickCount(0)
, m_modifierFlags(0)
-#if PLATFORM(MAC) && !PLATFORM(IOS)
+#if PLATFORM(MAC)
, m_eventNumber(0)
+ , m_menuTypeForEvent(0)
#elif PLATFORM(WIN)
, m_didActivateWebView(false)
#endif
@@ -62,15 +61,18 @@ namespace WebCore {
}
PlatformMouseEvent(const IntPoint& position, const IntPoint& globalPosition, MouseButton button, PlatformEvent::Type type,
- int clickCount, bool shiftKey, bool ctrlKey, bool altKey, bool metaKey, double timestamp)
+ int clickCount, bool shiftKey, bool ctrlKey, bool altKey, bool metaKey, double timestamp, double force, SyntheticClickType syntheticClickType)
: PlatformEvent(type, shiftKey, ctrlKey, altKey, metaKey, timestamp)
, m_position(position)
, m_globalPosition(globalPosition)
, m_button(button)
, m_clickCount(clickCount)
, m_modifierFlags(0)
-#if PLATFORM(MAC) && !PLATFORM(IOS)
+ , m_force(force)
+ , m_syntheticClickType(syntheticClickType)
+#if PLATFORM(MAC)
, m_eventNumber(0)
+ , m_menuTypeForEvent(0)
#elif PLATFORM(WIN)
, m_didActivateWebView(false)
#endif
@@ -86,7 +88,8 @@ namespace WebCore {
MouseButton button() const { return m_button; }
int clickCount() const { return m_clickCount; }
unsigned modifierFlags() const { return m_modifierFlags; }
-
+ double force() const { return m_force; }
+ SyntheticClickType syntheticClickType() const { return m_syntheticClickType; }
#if PLATFORM(GTK)
explicit PlatformMouseEvent(GdkEventButton*);
@@ -94,15 +97,9 @@ namespace WebCore {
void setClickCount(int count) { m_clickCount = count; }
#endif
-#if PLATFORM(EFL)
- void setClickCount(unsigned int);
- PlatformMouseEvent(const Evas_Event_Mouse_Down*, IntPoint);
- PlatformMouseEvent(const Evas_Event_Mouse_Up*, IntPoint);
- PlatformMouseEvent(const Evas_Event_Mouse_Move*, IntPoint);
-#endif
-
-#if PLATFORM(MAC) && !PLATFORM(IOS)
+#if PLATFORM(MAC)
int eventNumber() const { return m_eventNumber; }
+ int menuTypeForEvent() const { return m_menuTypeForEvent; }
#endif
#if PLATFORM(WIN)
@@ -120,14 +117,31 @@ namespace WebCore {
MouseButton m_button;
int m_clickCount;
unsigned m_modifierFlags;
+ double m_force { 0 };
+ SyntheticClickType m_syntheticClickType { NoTap };
-#if PLATFORM(MAC) && !PLATFORM(IOS)
+#if PLATFORM(MAC)
int m_eventNumber;
+ int m_menuTypeForEvent;
#elif PLATFORM(WIN)
bool m_didActivateWebView;
#endif
};
+#if COMPILER(MSVC)
+ // These functions are necessary to work around the fact that MSVC will not find a most-specific
+ // operator== to use after implicitly converting MouseButton to an unsigned short.
+ inline bool operator==(unsigned short a, MouseButton b)
+ {
+ return a == static_cast<unsigned short>(b);
+ }
+
+ inline bool operator!=(unsigned short a, MouseButton b)
+ {
+ return a != static_cast<unsigned short>(b);
+ }
+#endif
+
} // namespace WebCore
#endif // PlatformMouseEvent_h