Tizen 2.1 base
[framework/osp/web.git] / src / controls / FWebCtrl_GestureState.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 /**
19  * @file                FWebCtrl_GestureState.h
20  * @brief               The file contains the declaration of _TapGestureState, _PanningGestureState, _FlickGestureState and _PinchGestureState class.
21  *
22  * The file contains the declaration of _TapGestureState, _PanningGestureState, _FlickGestureState and _PinchGestureState  class.
23  */
24 #ifndef _FWEB_CTRL_INTERNAL_GESTURE_STATE_H_
25 #define _FWEB_CTRL_INTERNAL_GESTURE_STATE_H_
26
27 #include <FUi_ITouchEventListener.h>
28
29 namespace Tizen { namespace Graphics
30 {
31 class Point;
32 }} // Tizen::Graphics
33
34 namespace Tizen { namespace Ui
35 {
36 class _Control;
37 class _TouchInfo;
38 }} // Tizen::Ui
39
40 namespace Tizen { namespace Web { namespace Controls
41 {
42
43 class _Web;
44
45 class _PinchGestureState
46         : public Tizen::Ui::_ITouchEventListener
47 {
48 public:
49         _PinchGestureState(_Web* pWeb);
50         
51         virtual ~_PinchGestureState(void);
52
53         void InitializeFactor(void);
54
55         Tizen::Graphics::Point GetCenterPoint(const Tizen::Graphics::Point& firstFinger, const Tizen::Graphics::Point& secondFinger);
56
57         double GetZoomFactor(const Tizen::Graphics::Point& firstFinger, const Tizen::Graphics::Point& secondFinger);
58
59         virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
60
61         virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
62
63         virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
64
65         virtual bool OnTouchCanceled(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
66
67 private:
68         _Web* __pWebCore;
69
70         int __baseDistance;
71
72         int __distanceTolerance;
73 };
74
75 class _TapGestureState
76         : public Tizen::Ui::_ITouchEventListener
77 {
78 public:
79         _TapGestureState(_Web* pWeb, _PinchGestureState* pPinchListener);
80         
81         virtual ~_TapGestureState(void);
82
83         void OnLongPressGestureDetected(const Tizen::Ui::_TouchLongPressGestureDetector& gesture);
84
85         virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
86
87         virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
88
89         virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
90
91         virtual bool OnTouchCanceled(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
92
93 private:
94         _Web* __pWebCore;
95
96         _PinchGestureState* __pPinchListener;
97
98         bool __longPressed;
99 };
100
101 class _DoubleTapGestureState
102         : public Tizen::Ui::_ITouchEventListener
103 {
104 public:
105         _DoubleTapGestureState(_Web* pWeb);
106         
107         virtual ~_DoubleTapGestureState(void);
108
109         virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
110
111         virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
112
113         virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
114
115         virtual bool OnTouchCanceled(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
116
117 private:
118         _Web* __pWebCore;
119 };
120
121 class _PanningGestureState
122         : public Tizen::Ui::_ITouchEventListener
123 {
124 public:
125         _PanningGestureState(_Web* pWeb, _PinchGestureState* pPinchListener);
126         
127         virtual ~_PanningGestureState(void);
128
129         virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
130
131         virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
132
133         virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
134
135         virtual bool OnTouchCanceled(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
136
137 private:
138         _Web* __pWebCore;
139
140         _PinchGestureState* __pPinchListener;
141 };
142
143 class _FlickGestureState
144         : public Tizen::Ui::_ITouchEventListener
145 {
146 public:
147         _FlickGestureState(_Web* pWeb);
148         
149         virtual ~_FlickGestureState(void);
150
151         void OnFlickGestureDetected(const Tizen::Ui::_TouchFlickGestureDetector& gesture);
152
153         virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
154
155         virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
156
157         virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
158
159         virtual bool OnTouchCanceled(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
160
161 private:
162         _Web* __pWebCore;
163
164         Tizen::Graphics::Point __velocity;
165 };
166
167 }}} // Tizen::Web::Controls
168 #endif // _FWEB_CTRL_INTERNAL_GESTURE_STATE_H_