diff options
Diffstat (limited to 'Source/WebCore/dom/WheelEvent.h')
-rw-r--r-- | Source/WebCore/dom/WheelEvent.h | 94 |
1 files changed, 45 insertions, 49 deletions
diff --git a/Source/WebCore/dom/WheelEvent.h b/Source/WebCore/dom/WheelEvent.h index 07c030e3f..b82e8ba0f 100644 --- a/Source/WebCore/dom/WheelEvent.h +++ b/Source/WebCore/dom/WheelEvent.h @@ -22,64 +22,52 @@ * */ -#ifndef WheelEvent_h -#define WheelEvent_h +#pragma once -#include "FloatPoint.h" #include "MouseEvent.h" +#include "PlatformWheelEvent.h" namespace WebCore { -class PlatformWheelEvent; - -struct WheelEventInit : public MouseEventInit { - WheelEventInit(); - - double deltaX; - double deltaY; - double deltaZ; - unsigned deltaMode; - int wheelDeltaX; // Deprecated. - int wheelDeltaY; // Deprecated. -}; - -class WheelEvent : public MouseEvent { +class WheelEvent final : public MouseEvent { public: enum { TickMultiplier = 120 }; - enum DeltaMode { + enum { DOM_DELTA_PIXEL = 0, DOM_DELTA_LINE, DOM_DELTA_PAGE }; - static PassRefPtr<WheelEvent> create() + static Ref<WheelEvent> create(const PlatformWheelEvent& event, DOMWindow* view) { - return adoptRef(new WheelEvent); + return adoptRef(*new WheelEvent(event, view)); } - static PassRefPtr<WheelEvent> create(const AtomicString& type, const WheelEventInit& initializer) + static Ref<WheelEvent> createForBindings() { - return adoptRef(new WheelEvent(type, initializer)); + return adoptRef(*new WheelEvent); } - static PassRefPtr<WheelEvent> create(const FloatPoint& wheelTicks, - const FloatPoint& rawDelta, unsigned deltaMode, PassRefPtr<AbstractView> view, - const IntPoint& screenLocation, const IntPoint& pageLocation, - bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, bool directionInvertedFromDevice, double timestamp) + struct Init : MouseEventInit { + double deltaX { 0 }; + double deltaY { 0 }; + double deltaZ { 0 }; + unsigned deltaMode { DOM_DELTA_PIXEL }; + int wheelDeltaX { 0 }; // Deprecated. + int wheelDeltaY { 0 }; // Deprecated. + }; + + static Ref<WheelEvent> create(const AtomicString& type, const Init& initializer, IsTrusted isTrusted = IsTrusted::No) { - return adoptRef(new WheelEvent(wheelTicks, rawDelta, deltaMode, view, - screenLocation, pageLocation, ctrlKey, altKey, shiftKey, metaKey, directionInvertedFromDevice, timestamp)); + return adoptRef(*new WheelEvent(type, initializer, isTrusted)); } - void initWheelEvent(int rawDeltaX, int rawDeltaY, PassRefPtr<AbstractView>, - int screenX, int screenY, int pageX, int pageY, - bool ctrlKey, bool altKey, bool shiftKey, bool metaKey); + WEBCORE_EXPORT void initWheelEvent(int rawDeltaX, int rawDeltaY, DOMWindow*, int screenX, int screenY, int pageX, int pageY, bool ctrlKey, bool altKey, bool shiftKey, bool metaKey); - void initWebKitWheelEvent(int rawDeltaX, int rawDeltaY, PassRefPtr<AbstractView>, - int screenX, int screenY, int pageX, int pageY, - bool ctrlKey, bool altKey, bool shiftKey, bool metaKey); + void initWebKitWheelEvent(int rawDeltaX, int rawDeltaY, DOMWindow*, int screenX, int screenY, int pageX, int pageY, bool ctrlKey, bool altKey, bool shiftKey, bool metaKey); + const PlatformWheelEvent* wheelEvent() const { return m_initializedWithPlatformWheelEvent ? &m_wheelEvent : nullptr; } double deltaX() const { return m_deltaX; } // Positive when scrolling right. double deltaY() const { return m_deltaY; } // Positive when scrolling down. double deltaZ() const { return m_deltaZ; } @@ -88,28 +76,36 @@ public: int wheelDeltaY() const { return m_wheelDelta.y(); } // Deprecated, negative when scrolling down. unsigned deltaMode() const { return m_deltaMode; } - bool webkitDirectionInvertedFromDevice() const { return m_directionInvertedFromDevice; } - // Needed for Objective-C legacy support - bool isHorizontal() const { return m_wheelDelta.x(); } + bool webkitDirectionInvertedFromDevice() const { return m_wheelEvent.directionInvertedFromDevice(); } - virtual EventInterface eventInterface() const override; - virtual bool isMouseEvent() const override; +#if PLATFORM(MAC) + PlatformWheelEventPhase phase() const { return m_wheelEvent.phase(); } + PlatformWheelEventPhase momentumPhase() const { return m_wheelEvent.momentumPhase(); } +#endif private: WheelEvent(); - WheelEvent(const AtomicString&, const WheelEventInit&); - WheelEvent(const FloatPoint& wheelTicks, const FloatPoint& rawDelta, - unsigned, PassRefPtr<AbstractView>, const IntPoint& screenLocation, const IntPoint& pageLocation, - bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, bool directionInvertedFromDevice, double timestamp); + WheelEvent(const AtomicString&, const Init&, IsTrusted); + WheelEvent(const PlatformWheelEvent&, DOMWindow*); + + EventInterface eventInterface() const final; + + bool isWheelEvent() const final; IntPoint m_wheelDelta; - double m_deltaX; - double m_deltaY; - double m_deltaZ; - unsigned m_deltaMode; - bool m_directionInvertedFromDevice; + double m_deltaX { 0 }; + double m_deltaY { 0 }; + double m_deltaZ { 0 }; + unsigned m_deltaMode { DOM_DELTA_PIXEL }; + PlatformWheelEvent m_wheelEvent; + bool m_initializedWithPlatformWheelEvent { false }; }; +inline void WheelEvent::initWebKitWheelEvent(int rawDeltaX, int rawDeltaY, DOMWindow* view, int screenX, int screenY, int pageX, int pageY, bool ctrlKey, bool altKey, bool shiftKey, bool metaKey) +{ + initWheelEvent(rawDeltaX, rawDeltaY, view, screenX, screenY, pageX, pageY, ctrlKey, altKey, shiftKey, metaKey); +} + } // namespace WebCore -#endif // WheelEvent_h +SPECIALIZE_TYPE_TRAITS_EVENT(WheelEvent) |