2 * Copyright(c) 2017 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
22 /// A PanGesture is emitted when the user moves one or more fingers in a particular direction.<br />
23 /// A pan gesture will end in the following ways:<br />
24 /// - User releases the primary finger (the first touch).<br />
25 /// - User has more fingers on the screen than the maximum specified.<br />
26 /// - User has less fingers on the screen than the minimum specified.<br />
27 /// - Cancelled by the system.<br />
28 /// A pan gesture will continue to be sent to the actor under than initial pan until it ends.<br />
30 /// <since_tizen> 3 </since_tizen>
31 public class PanGesture : Gesture
33 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
35 internal PanGesture(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.PanGesture_SWIGUpcast(cPtr), cMemoryOwn)
37 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
40 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(PanGesture obj)
42 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
48 /// <since_tizen> 3 </since_tizen>
49 protected override void Dispose(DisposeTypes type)
56 if(type == DisposeTypes.Explicit)
59 //Release your own managed resources here.
60 //You should release all of your own disposable objects here.
63 //Release your own unmanaged resources here.
64 //You should not access any managed member here except static instance.
65 //because the execution order of Finalizes is non-deterministic.
67 if (swigCPtr.Handle != global::System.IntPtr.Zero)
72 NDalicPINVOKE.delete_PanGesture(swigCPtr);
74 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
81 internal static PanGesture GetPanGestureFromPtr(global::System.IntPtr cPtr)
83 PanGesture ret = new PanGesture(cPtr, false);
84 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
89 /// The velocity at which the user is moving their fingers.<br />
90 /// This is represented as a Vector2 and is the pixel movement per millisecond.<br />
91 /// A positive x value shows that the user is panning to the right, a negative x value means the opposite.<br />
92 /// A positive y value shows that the user is panning downwards, a negative y values means upwards.<br />
94 /// <since_tizen> 3 </since_tizen>
95 public Vector2 Velocity
104 /// This is a Vector2 showing how much the user has panned (dragged) since the last pan gesture or,
105 /// if the gesture has just started, then the amount panned since the user touched the screen.<br />
106 /// A positive x value shows that the user is panning to the right, a negative x value means the opposite.<br />
107 /// A positive y value shows that the user is panning downwards, a negative y value means upwards.<br />
109 /// <since_tizen> 3 </since_tizen>
110 public Vector2 Displacement
119 /// The current touch position of the primary touch point in local actor coordinates.
121 /// <since_tizen> 3 </since_tizen>
122 public Vector2 Position
131 /// The velocity at which the user is moving their fingers.<br />
132 /// This is represented as a Vector2 and is the pixel movement per millisecond.<br />
133 /// A positive x value shows that the user is panning to the right, a negative x value means the opposite.<br />
134 /// A positive y value shows that the user is panning downwards, a negative y values means upwards.<br />
135 /// This value represents the screen coordinates.<br />
137 /// <since_tizen> 3 </since_tizen>
138 public Vector2 ScreenVelocity
142 return screenVelocity;
147 /// This is a Vector2 showing how much the user has panned (dragged) since the last pan gesture or,
148 /// if the gesture has just started, then the amount panned since the user touched the screen.<br />
149 /// A positive x value shows that the user is panning to the right, a negative x value means the opposite.<br />
150 /// A positive y value shows that the user is panning downwards, a negative y value means upwards.<br />
151 /// This value is in screen coordinates.<br />
153 /// <since_tizen> 3 </since_tizen>
154 public Vector2 ScreenDisplacement
158 return screenDisplacement;
163 /// The current touch position of the primary touch point in screen coordinates.
165 /// <since_tizen> 3 </since_tizen>
166 public Vector2 ScreenPosition
170 return screenPosition;
175 /// The total number of fingers touching the screen in a pan gesture.
177 /// <since_tizen> 3 </since_tizen>
178 public uint NumberOfTouches
182 return numberOfTouches;
187 /// The default constructor.
189 /// <since_tizen> 3 </since_tizen>
190 public PanGesture() : this(NDalicPINVOKE.new_PanGesture__SWIG_0(), true)
192 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
198 /// <param name="state">The state of the gesture</param>
199 internal PanGesture(Gesture.StateType state) : this(NDalicPINVOKE.new_PanGesture__SWIG_1((int)state), true)
201 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
205 private Vector2 velocity
209 NDalicPINVOKE.PanGesture_velocity_set(swigCPtr, Vector2.getCPtr(value));
210 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
214 global::System.IntPtr cPtr = NDalicPINVOKE.PanGesture_velocity_get(swigCPtr);
215 Vector2 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector2(cPtr, false);
216 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
221 private Vector2 displacement
225 NDalicPINVOKE.PanGesture_displacement_set(swigCPtr, Vector2.getCPtr(value));
226 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
230 global::System.IntPtr cPtr = NDalicPINVOKE.PanGesture_displacement_get(swigCPtr);
231 Vector2 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector2(cPtr, false);
232 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
237 private Vector2 position
241 NDalicPINVOKE.PanGesture_position_set(swigCPtr, Vector2.getCPtr(value));
242 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
246 global::System.IntPtr cPtr = NDalicPINVOKE.PanGesture_position_get(swigCPtr);
247 Vector2 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector2(cPtr, false);
248 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
253 private Vector2 screenVelocity
257 NDalicPINVOKE.PanGesture_screenVelocity_set(swigCPtr, Vector2.getCPtr(value));
258 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
262 global::System.IntPtr cPtr = NDalicPINVOKE.PanGesture_screenVelocity_get(swigCPtr);
263 Vector2 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector2(cPtr, false);
264 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
269 private Vector2 screenDisplacement
273 NDalicPINVOKE.PanGesture_screenDisplacement_set(swigCPtr, Vector2.getCPtr(value));
274 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
278 global::System.IntPtr cPtr = NDalicPINVOKE.PanGesture_screenDisplacement_get(swigCPtr);
279 Vector2 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector2(cPtr, false);
280 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
285 private Vector2 screenPosition
289 NDalicPINVOKE.PanGesture_screenPosition_set(swigCPtr, Vector2.getCPtr(value));
290 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
294 global::System.IntPtr cPtr = NDalicPINVOKE.PanGesture_screenPosition_get(swigCPtr);
295 Vector2 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector2(cPtr, false);
296 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
301 private uint numberOfTouches
305 NDalicPINVOKE.PanGesture_numberOfTouches_set(swigCPtr, value);
306 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
310 uint ret = NDalicPINVOKE.PanGesture_numberOfTouches_get(swigCPtr);
311 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
317 /// Returns the speed at which the user is moving their fingers.<br />
318 /// This is the pixel movement per millisecond.<br />
320 /// <returns>The speed of the pan (in pixels per millisecond).</returns>
321 /// <since_tizen> 3 </since_tizen>
322 public float GetSpeed()
324 float ret = NDalicPINVOKE.PanGesture_GetSpeed(swigCPtr);
325 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
330 /// Returns the distance the user has panned (dragged) since the last pan gesture or,
331 /// if the gesture has just started, then the distance moved since the user touched the screen.<br />
332 /// This is always a positive value.<br />
334 /// <returns>The distance, as a float, a user's finger has panned.</returns>
335 /// <since_tizen> 3 </since_tizen>
336 public float GetDistance()
338 float ret = NDalicPINVOKE.PanGesture_GetDistance(swigCPtr);
339 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
344 /// Returns the speed at which the user is moving their fingers relative to screen coordinates.<br />
345 /// This is the pixel movement per millisecond.<br />
347 /// <returns>The speed of the pan (in pixels per millisecond).</returns>
348 /// <since_tizen> 3 </since_tizen>
349 public float GetScreenSpeed()
351 float ret = NDalicPINVOKE.PanGesture_GetScreenSpeed(swigCPtr);
352 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
357 /// Returns the distance the user has panned (dragged) since the last pan gesture in screen
358 /// coordinates or, if the gesture has just started, then the distance in screen coordinates moved
359 /// since the user touched the screen.<br />
360 /// This is always a positive value.<br />
362 /// <returns>The distance, as a float, a user's finger has panned.</returns>
363 /// <since_tizen> 3 </since_tizen>
364 public float GetScreenDistance()
366 float ret = NDalicPINVOKE.PanGesture_GetScreenDistance(swigCPtr);
367 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();