1f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch/*
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*/
19f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch
20f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#ifndef PlatformTouchPoint_h
21f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#define PlatformTouchPoint_h
22f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch
23f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#include "IntPoint.h"
24f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#include <wtf/Vector.h>
25f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch
26f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#if ENABLE(TOUCH_EVENTS)
27f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch
28f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#if PLATFORM(QT)
29f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#include <QTouchEvent>
30f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#endif
31f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch
32f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdochnamespace WebCore {
33f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch
34f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdochclass PlatformTouchEvent;
35f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch
36f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdochclass PlatformTouchPoint {
37f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdochpublic:
38f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch    enum State {
39f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch        TouchReleased,
40f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch        TouchPressed,
41f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch        TouchMoved,
4202d657c513b78a755390e1c5bcf35f6f35f466caBen Murdoch        TouchStationary,
43cad810f21b803229eb11403f9209855525a25d57Steve Block        TouchCancelled,
44cad810f21b803229eb11403f9209855525a25d57Steve Block        TouchStateEnd // Placeholder: must remain the last item.
45f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch    };
46f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch
47f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#if PLATFORM(QT)
48f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch    PlatformTouchPoint(const QTouchEvent::TouchPoint&);
49e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block    PlatformTouchPoint() {};
50f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#elif PLATFORM(ANDROID)
5117a554651c9530d8c0e0a2c1e04b9b7c2f683bd6Huahui Wu    PlatformTouchPoint(unsigned id, const IntPoint& windowPos, State);
52bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#elif PLATFORM(BREWMP)
53bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    PlatformTouchPoint(int id, const IntPoint& windowPos, State);
54cad810f21b803229eb11403f9209855525a25d57Steve Block#elif PLATFORM(EFL)
55cad810f21b803229eb11403f9209855525a25d57Steve Block    PlatformTouchPoint(unsigned id, const IntPoint& windowPos, State);
56f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#endif
57f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch
58cd97be1e939c83f2a837fa63c24d06231a0097d9Ben Murdoch    unsigned id() const { return m_id; }
59f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch    State state() const { return m_state; }
60f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch    IntPoint screenPos() const { return m_screenPos; }
61f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch    IntPoint pos() const { return m_pos; }
62f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch
63dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockprotected:
64cd97be1e939c83f2a837fa63c24d06231a0097d9Ben Murdoch    unsigned m_id;
65f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch    State m_state;
66f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch    IntPoint m_screenPos;
67f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch    IntPoint m_pos;
68f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch};
69f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch
70f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch}
71f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch
72f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#endif // ENABLE(TOUCH_EVENTS)
73f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch
74f5306da72ab6bb63f7ae07371e687f72a75c2fb2Ben Murdoch#endif // PlatformTouchPoint_h
75