1/*
2    Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)
3
4    This library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Library General Public
6    License as published by the Free Software Foundation; either
7    version 2 of the License, or (at your option) any later version.
8
9    This library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Library General Public License for more details.
13
14    You should have received a copy of the GNU Library General Public License
15    along with this library; see the file COPYING.LIB.  If not, write to
16    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17    Boston, MA 02110-1301, USA.
18*/
19
20#ifndef PlatformTouchEvent_h
21#define PlatformTouchEvent_h
22
23#include "PlatformEvent.h"
24#include "PlatformTouchPoint.h"
25#include <wtf/Vector.h>
26
27#if ENABLE(TOUCH_EVENTS)
28
29#if PLATFORM(QT)
30QT_BEGIN_NAMESPACE
31class QTouchEvent;
32QT_END_NAMESPACE
33#endif
34
35#if PLATFORM(BLACKBERRY)
36namespace BlackBerry {
37namespace Platform {
38class TouchEvent;
39};
40};
41#endif
42
43namespace WebCore {
44
45
46class PlatformTouchEvent : public PlatformEvent {
47public:
48    PlatformTouchEvent()
49        : PlatformEvent(PlatformEvent::TouchStart)
50#if PLATFORM(BLACKBERRY)
51        , m_rotation(0)
52        , m_scale(1)
53        , m_doubleTap(false)
54        , m_touchHold(false)
55#endif
56    {
57    }
58
59#if PLATFORM(BLACKBERRY)
60    explicit PlatformTouchEvent(BlackBerry::Platform::TouchEvent*);
61#endif
62
63    const Vector<PlatformTouchPoint>& touchPoints() const { return m_touchPoints; }
64
65#if PLATFORM(BLACKBERRY)
66    float rotation() const { return m_rotation; }
67    float scale() const { return m_scale; }
68    bool doubleTap() const { return m_doubleTap; }
69    bool touchHold() const { return m_touchHold; }
70#endif
71
72protected:
73    Vector<PlatformTouchPoint> m_touchPoints;
74#if PLATFORM(BLACKBERRY)
75    float m_rotation;
76    float m_scale;
77    bool m_doubleTap;
78    bool m_touchHold;
79#endif
80};
81
82}
83
84#endif // ENABLE(TOUCH_EVENTS)
85
86#endif // PlatformTouchEvent_h
87