summaryrefslogtreecommitdiff
path: root/Source/WebCore/dom/WheelEvent.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/dom/WheelEvent.h')
-rw-r--r--Source/WebCore/dom/WheelEvent.h94
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)