Merge "change popup button negative,positive" into tizen_2.2
[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         Tizen::Graphics::FloatPoint __pressedPosition;
77 };
78
79
80 class _PanningGestureState
81         : public Tizen::Ui::_ITouchEventListener
82 {
83 public:
84         _PanningGestureState(_Web* pWeb);
85         
86         virtual ~_PanningGestureState(void);
87
88         void InitializeTextSelectionStatus(void);
89
90         virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
91
92         virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
93
94         virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
95
96         virtual bool OnTouchCanceled(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
97
98 private:
99         _Web* __pWebCore;
100
101         bool __textSelected;
102
103         bool __textChanged;
104
105         Tizen::Base::String __selectedText;
106 };
107
108 class _FlickGestureState
109         : public Tizen::Ui::_ITouchEventListener
110 {
111 public:
112         _FlickGestureState(_Web* pWeb);
113         
114         virtual ~_FlickGestureState(void);
115
116         bool OnFlickGestureDetected(Tizen::Ui::_TouchFlickGestureDetector& gesture);
117
118         virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
119
120         virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
121
122         virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
123
124         virtual bool OnTouchCanceled(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
125
126 private:
127         _Web* __pWebCore;
128
129         Tizen::Graphics::Point __velocity;
130 };
131
132 class _PinchGestureState
133         : public Tizen::Ui::_ITouchEventListener
134 {
135 public:
136         _PinchGestureState(_Web* pWeb);
137
138         virtual ~_PinchGestureState(void);
139
140         bool OnPinchGestureStarted(Tizen::Ui::_TouchPinchGestureDetector& gesture);
141
142         bool OnPinchGestureChanged(Tizen::Ui::_TouchPinchGestureDetector& gesture);
143
144         bool OnPinchGestureFinished(Tizen::Ui::_TouchPinchGestureDetector& gesture);
145
146         virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
147
148         virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
149
150         virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
151
152         virtual bool OnTouchCanceled(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
153
154 private:
155         _Web* __pWebCore;
156
157         double __standardScale;
158 };
159
160 }}} // Tizen::Web::Controls
161 #endif // _FWEB_CTRL_INTERNAL_GESTURE_STATE_H_