refactoring gesture module
[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 class _TouchFlickGestureDetector;
39 class _TouchLongPressGestureDetector;
40 class _TouchPinchGestureDetector;
41 class _TouchTapGestureDetector;
42 }} // Tizen::Ui
43
44 namespace Tizen { namespace Web { namespace Controls
45 {
46
47 class _Web;
48
49 class _TapGestureState
50         : public Tizen::Ui::_ITouchEventListener
51 {
52 public:
53         _TapGestureState(_Web* pWeb);
54         
55         virtual ~_TapGestureState(void);
56
57         bool OnLongPressGestureDetected(Tizen::Ui::_TouchLongPressGestureDetector& gesture);
58
59         bool OnTapGestureDetected(Tizen::Ui::_TouchTapGestureDetector& gesture);
60
61         virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
62
63         virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
64
65         virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
66
67         virtual bool OnTouchCanceled(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
68
69 private:
70         _Web* __pWebCore;
71
72         bool __longPressed;
73
74         bool __doubleTapped;
75 };
76
77
78 class _PanningGestureState
79         : public Tizen::Ui::_ITouchEventListener
80 {
81 public:
82         _PanningGestureState(_Web* pWeb);
83         
84         virtual ~_PanningGestureState(void);
85
86         virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
87
88         virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
89
90         virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
91
92         virtual bool OnTouchCanceled(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
93
94 private:
95         _Web* __pWebCore;
96 };
97
98 class _FlickGestureState
99         : public Tizen::Ui::_ITouchEventListener
100 {
101 public:
102         _FlickGestureState(_Web* pWeb);
103         
104         virtual ~_FlickGestureState(void);
105
106         bool OnFlickGestureDetected(Tizen::Ui::_TouchFlickGestureDetector& gesture);
107
108         virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
109
110         virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
111
112         virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
113
114         virtual bool OnTouchCanceled(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
115
116 private:
117         _Web* __pWebCore;
118
119         Tizen::Graphics::Point __velocity;
120 };
121
122 class _PinchGestureState
123         : public Tizen::Ui::_ITouchEventListener
124 {
125 public:
126         _PinchGestureState(_Web* pWeb);
127
128         virtual ~_PinchGestureState(void);
129
130         bool OnPinchGestureStarted(Tizen::Ui::_TouchPinchGestureDetector& gesture);
131
132         bool OnPinchGestureChanged(Tizen::Ui::_TouchPinchGestureDetector& gesture);
133
134         bool OnPinchGestureFinished(Tizen::Ui::_TouchPinchGestureDetector& gesture);
135
136         virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
137
138         virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
139
140         virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
141
142         virtual bool OnTouchCanceled(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
143
144 private:
145         _Web* __pWebCore;
146
147         double __standardScale;
148 };
149
150 }}} // Tizen::Web::Controls
151 #endif // _FWEB_CTRL_INTERNAL_GESTURE_STATE_H_