Merge branch 'devel/master' into tizen
[platform/core/uifw/dali-core.git] / dali / internal / event / events / gesture-requests.h
1 #ifndef DALI_INTERNAL_GESTURE_REQUESTS_H
2 #define DALI_INTERNAL_GESTURE_REQUESTS_H
3
4 /*
5  * Copyright (c) 2019 Samsung Electronics Co., Ltd.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  */
20
21 // INTERNAL INCLUDES
22 #include <dali/public-api/events/gesture.h>
23 #include <dali/devel-api/events/gesture-devel.h>
24
25 namespace Dali
26 {
27
28 namespace Internal
29 {
30
31 /**
32  * This structure specifies the gesture type required (or no longer required) by Core.
33  */
34 struct GestureRequest
35 {
36   // Creation & Destruction
37
38   /**
39    * Default Constructor
40    * @param[in]  typeRequired  The gesture type required
41    */
42   GestureRequest( DevelGesture::Type typeRequired )
43   : type( typeRequired )
44   {
45   }
46
47   /**
48    * @copydoc GestureRequest( DevelGesture::Type )
49    */
50   GestureRequest( Gesture::Type typeRequired )
51   : GestureRequest( static_cast< DevelGesture::Type >( typeRequired ) )
52   {
53   }
54
55   /**
56    * Virtual destructor
57    */
58   virtual ~GestureRequest() = default;
59
60   // Data Members
61
62   DevelGesture::Type type; ///< The type of gesture required.
63 };
64
65 /**
66  * This is used by Core when a pan gesture is required.
67  */
68 struct PanGestureRequest : public GestureRequest
69 {
70   // Creation & Destruction
71
72   /**
73    * Default Constructor
74    */
75   PanGestureRequest()
76   : GestureRequest(Gesture::Pan),
77     minTouches(1),
78     maxTouches(1)
79   {
80   }
81
82   /**
83    * Virtual destructor
84    */
85   virtual ~PanGestureRequest()
86   {
87   }
88
89   // Data Members
90
91   unsigned int minTouches; ///< The minimum number of touch points required for a pan gesture.
92   unsigned int maxTouches; ///< The maximum number of touch points required for a pan gesture.
93 };
94
95 /**
96  * This is used by Core when a tap gesture is required.
97  */
98 struct TapGestureRequest : public GestureRequest
99 {
100   // Creation & Destruction
101
102   /**
103    * Default Constructor
104    */
105   TapGestureRequest()
106   : GestureRequest(Gesture::Tap),
107     minTaps(1),
108     maxTaps(1),
109     minTouches(1),
110     maxTouches(1)
111   {
112   }
113
114   /**
115    * Virtual destructor
116    */
117   virtual ~TapGestureRequest()
118   {
119   }
120
121   // Data Members
122
123   unsigned int minTaps;    ///< The minimum number of taps required.
124   unsigned int maxTaps;    ///< The maximum number of taps required.
125   unsigned int minTouches; ///< The minimum number of touch points required for our tap gesture.
126   unsigned int maxTouches; ///< The maximum number of touch points required for our tap gesture.
127 };
128
129 /**
130  * This is used by Core when a long press gesture is required.
131  */
132 struct LongPressGestureRequest : public GestureRequest
133 {
134   // Creation & Destruction
135
136   /**
137    * Default Constructor
138    */
139   LongPressGestureRequest()
140   : GestureRequest(Gesture::LongPress),
141     minTouches(1),
142     maxTouches(1)
143   {
144   }
145
146   /**
147    * Virtual destructor
148    */
149   virtual ~LongPressGestureRequest()
150   {
151   }
152
153   // Data Members
154
155   unsigned int minTouches; ///< The minimum number of touch points required for a long press gesture.
156   unsigned int maxTouches; ///< The maximum number of touch points required for a long press gesture.
157 };
158
159 } // namespace Internal
160
161 } // namespace Dali
162
163 #endif // DALI_INTERNAL_GESTURE_REQUESTS_H