diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
commit | 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch) | |
tree | 46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/platform/PlatformMouseEvent.h | |
parent | 32761a6cee1d0dee366b885b7b9c777e67885688 (diff) | |
download | WebKitGtk-tarball-master.tar.gz |
webkitgtk-2.16.5HEADwebkitgtk-2.16.5master
Diffstat (limited to 'Source/WebCore/platform/PlatformMouseEvent.h')
-rw-r--r-- | Source/WebCore/platform/PlatformMouseEvent.h | 60 |
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 |