18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 25f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian * Copyright (C) 2004, 2005, 2006, 2009 Apple Inc. All rights reserved. 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met: 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1. Redistributions of source code must retain the above copyright 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer. 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer in the 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation and/or other materials provided with the distribution. 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef PlatformWheelEvent_h 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define PlatformWheelEvent_h 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "IntPoint.h" 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if PLATFORM(GTK) 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef struct _GdkEventScroll GdkEventScroll; 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 35dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#if PLATFORM(EFL) 3606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsentypedef struct _Evas_Event_Mouse_Wheel Evas_Event_Mouse_Wheel; 37dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif 38dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if PLATFORM(QT) 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectQT_BEGIN_NAMESPACE 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass QWheelEvent; 42231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockclass QGraphicsSceneWheelEvent; 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectQT_END_NAMESPACE 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 465f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#if PLATFORM(WIN) 475f1ab04193ad0130ca8204aadaceae083aca9881Feng Qiantypedef struct HWND__* HWND; 485f1ab04193ad0130ca8204aadaceae083aca9881Feng Qiantypedef unsigned WPARAM; 495f1ab04193ad0130ca8204aadaceae083aca9881Feng Qiantypedef long LPARAM; 505f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#endif 515f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if PLATFORM(WX) 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass wxMouseEvent; 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass wxPoint; 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 57231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#if PLATFORM(HAIKU) 58231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockclass BMessage; 59231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#endif 60231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 630bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch class FloatPoint; 640bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch class FloatSize; 650bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 668f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian // Wheel events come in two flavors: 678f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian // The ScrollByPixelWheelEvent is a fine-grained event that specifies the precise number of pixels to scroll. It is sent directly by MacBook touchpads on OS X, 688f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian // and synthesized in other cases where platforms generate line-by-line scrolling events. 698f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian // The ScrollByPageWheelEvent indicates that the wheel event should scroll an entire page. In this case WebCore's built in paging behavior is used to page 708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // up and down (you get the same behavior as if the user was clicking in a scrollbar track to page up or page down). Page scrolling only works in the vertical direction. 7165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch enum PlatformWheelEventGranularity { 7265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ScrollByPageWheelEvent, 7365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ScrollByPixelWheelEvent 7465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch }; 7565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 7665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if PLATFORM(MAC) 7765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch enum PlatformWheelEventPhase { 7865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch PlatformWheelEventPhaseNone = 0, 7965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch PlatformWheelEventPhaseBegan = 1 << 1, 8065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch PlatformWheelEventPhaseStationary = 1 << 2, 8165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch PlatformWheelEventPhaseChanged = 1 << 3, 8265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch PlatformWheelEventPhaseEnded = 1 << 4, 8365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch PlatformWheelEventPhaseCancelled = 1 << 5, 8465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch }; 8565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 8665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class PlatformWheelEvent { 888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project public: 89d0825bca7fe65beaee391d30da42e937db621564Steve Block PlatformWheelEvent() 90d0825bca7fe65beaee391d30da42e937db621564Steve Block : m_deltaX(0) 91d0825bca7fe65beaee391d30da42e937db621564Steve Block , m_deltaY(0) 92d0825bca7fe65beaee391d30da42e937db621564Steve Block , m_wheelTicksX(0) 93d0825bca7fe65beaee391d30da42e937db621564Steve Block , m_wheelTicksY(0) 94d0825bca7fe65beaee391d30da42e937db621564Steve Block , m_granularity(ScrollByPixelWheelEvent) 95d0825bca7fe65beaee391d30da42e937db621564Steve Block , m_isAccepted(false) 96d0825bca7fe65beaee391d30da42e937db621564Steve Block , m_shiftKey(false) 97d0825bca7fe65beaee391d30da42e937db621564Steve Block , m_ctrlKey(false) 98d0825bca7fe65beaee391d30da42e937db621564Steve Block , m_altKey(false) 99d0825bca7fe65beaee391d30da42e937db621564Steve Block , m_metaKey(false) 10065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if PLATFORM(MAC) 1012fc2651226baac27029e38c9d6ef883fa32084dbSteve Block , m_hasPreciseScrollingDeltas(false) 10265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch , m_phase(PlatformWheelEventPhaseNone) 10381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch , m_momentumPhase(PlatformWheelEventPhaseNone) 1042fc2651226baac27029e38c9d6ef883fa32084dbSteve Block , m_timestamp(0) 10565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 106d0825bca7fe65beaee391d30da42e937db621564Steve Block { 107d0825bca7fe65beaee391d30da42e937db621564Steve Block } 108d0825bca7fe65beaee391d30da42e937db621564Steve Block 1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project const IntPoint& pos() const { return m_position; } // PlatformWindow coordinates. 1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project const IntPoint& globalPos() const { return m_globalPosition; } // Screen coordinates. 1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project float deltaX() const { return m_deltaX; } 1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project float deltaY() const { return m_deltaY; } 1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1158f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian float wheelTicksX() const { return m_wheelTicksX; } 1168f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian float wheelTicksY() const { return m_wheelTicksY; } 1178f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PlatformWheelEventGranularity granularity() const { return m_granularity; } 1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool isAccepted() const { return m_isAccepted; } 1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool shiftKey() const { return m_shiftKey; } 1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool ctrlKey() const { return m_ctrlKey; } 1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool altKey() const { return m_altKey; } 1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool metaKey() const { return m_metaKey; } 1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int x() const { return m_position.x(); } // PlatformWindow coordinates. 1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int y() const { return m_position.y(); } 1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int globalX() const { return m_globalPosition.x(); } // Screen coordinates. 1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int globalY() const { return m_globalPosition.y(); } 1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void accept() { m_isAccepted = true; } 1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void ignore() { m_isAccepted = false; } 1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 134231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void turnVerticalTicksIntoHorizontal() 135231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block { 136231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block m_deltaX = m_deltaY; 137231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block m_deltaY = 0; 138231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 139231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block m_wheelTicksX = m_wheelTicksY; 140231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block m_wheelTicksY = 0; 141231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block } 142231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if PLATFORM(GTK) 1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PlatformWheelEvent(GdkEventScroll*); 1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 1465f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 147dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#if PLATFORM(EFL) 148dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block PlatformWheelEvent(const Evas_Event_Mouse_Wheel*); 149dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif 150dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 15165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if PLATFORM(MAC) 15265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if defined(__OBJC__) 1535f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian PlatformWheelEvent(NSEvent *, NSView *windowView); 1545f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#endif 1555f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 15665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch PlatformWheelEventPhase phase() const { return m_phase; } 15781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch PlatformWheelEventPhase momentumPhase() const { return m_momentumPhase; } 1582fc2651226baac27029e38c9d6ef883fa32084dbSteve Block bool hasPreciseScrollingDeltas() const { return m_hasPreciseScrollingDeltas; } 1592fc2651226baac27029e38c9d6ef883fa32084dbSteve Block double timestamp() const { return m_timestamp; } 16065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 16165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if PLATFORM(QT) 1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PlatformWheelEvent(QWheelEvent*); 164231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block PlatformWheelEvent(QGraphicsSceneWheelEvent*); 165231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void applyDelta(int delta, Qt::Orientation); 1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 1675f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 1685f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#if PLATFORM(WIN) 1695f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian PlatformWheelEvent(HWND, WPARAM, LPARAM, bool isMouseHWheel); 1700bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch PlatformWheelEvent(HWND, const FloatSize& delta, const FloatPoint& location); 1715f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#endif 1725f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if PLATFORM(WX) 1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PlatformWheelEvent(const wxMouseEvent&, const wxPoint&); 1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 1768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 177231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#if PLATFORM(HAIKU) 178231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block PlatformWheelEvent(BMessage*); 179231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#endif 180231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 1818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project protected: 1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project IntPoint m_position; 1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project IntPoint m_globalPosition; 1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project float m_deltaX; 1858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project float m_deltaY; 1868f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian float m_wheelTicksX; 1878f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian float m_wheelTicksY; 1888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PlatformWheelEventGranularity m_granularity; 1898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool m_isAccepted; 1908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool m_shiftKey; 1918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool m_ctrlKey; 1928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool m_altKey; 1938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool m_metaKey; 19465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if PLATFORM(MAC) 1952fc2651226baac27029e38c9d6ef883fa32084dbSteve Block bool m_hasPreciseScrollingDeltas; 19665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch PlatformWheelEventPhase m_phase; 19781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch PlatformWheelEventPhase m_momentumPhase; 1982fc2651226baac27029e38c9d6ef883fa32084dbSteve Block double m_timestamp; 19965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 2008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }; 2018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore 2038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // PlatformWheelEvent_h 205