PlatformTouchEvent.h revision 5aaefcaef41a898511a92306a8f66a11c0cca1d0
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 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 46f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdochenum TouchEventType { 47f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch TouchStart 48f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch , TouchMove 49f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch , TouchEnd 50f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch , TouchCancel 51f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#if PLATFORM(ANDROID) 52f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch , TouchLongPress 53f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch , TouchDoubleTap 54f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#endif 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) 65f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch {} 66f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#if PLATFORM(QT) 67f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch PlatformTouchEvent(QTouchEvent*); 68f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#elif PLATFORM(ANDROID) 694ac825dd95a2c0a351748f85f8fcae2d7968c94dHuahui Wu // Changes in next line is in ANDROID but waiting to upstream to WebKit. TODO: upstream it. 705aaefcaef41a898511a92306a8f66a11c0cca1d0Huahui Wu PlatformTouchEvent(const Vector<int>&, const Vector<IntPoint>&, TouchEventType, const Vector<PlatformTouchPoint::State>&, int metaState); 71bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#elif PLATFORM(BREWMP) 72bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen PlatformTouchEvent(AEEEvent, uint16 wParam, uint32 dwParam); 73f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#endif 74f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch 75f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch TouchEventType type() const { return m_type; } 76f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch const Vector<PlatformTouchPoint>& touchPoints() const { return m_touchPoints; } 77f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch 78f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch bool ctrlKey() const { return m_ctrlKey; } 79f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch bool altKey() const { return m_altKey; } 80f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch bool shiftKey() const { return m_shiftKey; } 81f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch bool metaKey() const { return m_metaKey; } 82f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch 83dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockprotected: 84f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch TouchEventType m_type; 85f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch Vector<PlatformTouchPoint> m_touchPoints; 86f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch bool m_ctrlKey; 87f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch bool m_altKey; 88f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch bool m_shiftKey; 89f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch bool m_metaKey; 90f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch}; 91f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch 92f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch} 938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // ENABLE(TOUCH_EVENTS) 958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // PlatformTouchEvent_h 97