18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 2f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) 3f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch 4f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch This library is free software; you can redistribute it and/or 5f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch modify it under the terms of the GNU Library General Public 6f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch License as published by the Free Software Foundation; either 7f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch version 2 of the License, or (at your option) any later version. 8f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch 9f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch This library is distributed in the hope that it will be useful, 10f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch but WITHOUT ANY WARRANTY; without even the implied warranty of 11f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch Library General Public License for more details. 13f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch 14f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch You should have received a copy of the GNU Library General Public License 15f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch along with this library; see the file COPYING.LIB. If not, write to 16f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch Boston, MA 02110-1301, USA. 18f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch*/ 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef PlatformTouchEvent_h 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define PlatformTouchEvent_h 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 23f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#include "PlatformTouchPoint.h" 24f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#include <wtf/Vector.h> 25f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch 26f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#if ENABLE(TOUCH_EVENTS) 27f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch 28f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#if PLATFORM(QT) 29f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben MurdochQT_BEGIN_NAMESPACE 30f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdochclass QTouchEvent; 31f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben MurdochQT_END_NAMESPACE 32f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#endif 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 34f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#if PLATFORM(ANDROID) 358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "IntPoint.h" 36f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#endif 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 38bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#if PLATFORM(BREWMP) 39bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsentypedef unsigned short uint16; 40bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsentypedef unsigned long int uint32; 41bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#define AEEEvent uint16 42bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#endif 43bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 44cad810f21b803229eb11403f9209855525a25d57Steve Block#if PLATFORM(EFL) 45cad810f21b803229eb11403f9209855525a25d57Steve Blocktypedef struct _Eina_List Eina_List; 46cad810f21b803229eb11403f9209855525a25d57Steve Block#endif 47cad810f21b803229eb11403f9209855525a25d57Steve Block 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 50f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdochenum TouchEventType { 51f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch TouchStart 52f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch , TouchMove 53f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch , TouchEnd 54f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch , TouchCancel 55f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch}; 56f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch 57f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdochclass PlatformTouchEvent { 58f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdochpublic: 59f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch PlatformTouchEvent() 60f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch : m_type(TouchStart) 61f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch , m_ctrlKey(false) 62f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch , m_altKey(false) 63f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch , m_shiftKey(false) 64f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch , m_metaKey(false) 6581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch , m_timestamp(0) 66f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch {} 67f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#if PLATFORM(QT) 68f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch PlatformTouchEvent(QTouchEvent*); 69f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#elif PLATFORM(ANDROID) 705aaefcaef41a898511a92306a8f66a11c0cca1d0Huahui Wu PlatformTouchEvent(const Vector<int>&, const Vector<IntPoint>&, TouchEventType, const Vector<PlatformTouchPoint::State>&, int metaState); 7191f41286e33b387859e4841711f3054bcf75c748John Reck bool hitTouchHandler() { return m_hitTouchHandler; } 7291f41286e33b387859e4841711f3054bcf75c748John Reck void setHitTouchHandler() { m_hitTouchHandler = true; } 73bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#elif PLATFORM(BREWMP) 74bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen PlatformTouchEvent(AEEEvent, uint16 wParam, uint32 dwParam); 75cad810f21b803229eb11403f9209855525a25d57Steve Block#elif PLATFORM(EFL) 76cad810f21b803229eb11403f9209855525a25d57Steve Block PlatformTouchEvent(Eina_List*, const IntPoint, TouchEventType, int metaState); 77f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#endif 78f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch 79f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch TouchEventType type() const { return m_type; } 80f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch const Vector<PlatformTouchPoint>& touchPoints() const { return m_touchPoints; } 81f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch 82f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch bool ctrlKey() const { return m_ctrlKey; } 83f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch bool altKey() const { return m_altKey; } 84f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch bool shiftKey() const { return m_shiftKey; } 85f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch bool metaKey() const { return m_metaKey; } 86f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch 8781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch // Time in seconds. 8881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch double timestamp() const { return m_timestamp; } 8981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 90dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockprotected: 91f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch TouchEventType m_type; 92f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch Vector<PlatformTouchPoint> m_touchPoints; 93f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch bool m_ctrlKey; 94f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch bool m_altKey; 95f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch bool m_shiftKey; 96f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch bool m_metaKey; 9781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch double m_timestamp; 9891f41286e33b387859e4841711f3054bcf75c748John Reck#if PLATFORM(ANDROID) 9991f41286e33b387859e4841711f3054bcf75c748John Reck bool m_hitTouchHandler; 10091f41286e33b387859e4841711f3054bcf75c748John Reck#endif 101f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch}; 102f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch 103f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch} 1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // ENABLE(TOUCH_EVENTS) 1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // PlatformTouchEvent_h 108