2 * Copyright(c) 2021 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.
18 using System.Runtime.InteropServices;
19 using Tizen.NUI.BaseComponents;
20 using System.ComponentModel;
25 /// This class emits a signals when a pan gesture occurs.<br />
27 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
28 [EditorBrowsable(EditorBrowsableState.Never)]
29 public class PanGestureDetector : GestureDetector
32 /// Creates an initialized PanGestureDetector.
34 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
35 [EditorBrowsable(EditorBrowsableState.Never)]
36 public PanGestureDetector() : this(Interop.PanGestureDetector.New(), true)
38 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
43 /// The copy constructor.
45 /// <param name="handle">A reference to the copied handle</param>
46 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
47 [EditorBrowsable(EditorBrowsableState.Never)]
48 public PanGestureDetector(PanGestureDetector handle) : this(Interop.PanGestureDetector.NewPanGestureDetector(PanGestureDetector.getCPtr(handle)), true)
50 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
53 internal PanGestureDetector(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
57 private DaliEventHandler<object, DetectedEventArgs> detectedEventHandler;
58 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
59 private delegate void DetectedCallbackType(IntPtr actor, IntPtr panGesture);
60 private DetectedCallbackType detectedCallback;
63 /// This signal is emitted when the specified pan is detected on the attached view.
65 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
66 [EditorBrowsable(EditorBrowsableState.Never)]
67 public event DaliEventHandler<object, DetectedEventArgs> Detected
71 if (detectedEventHandler == null)
73 detectedCallback = OnPanGestureDetected;
74 DetectedSignal().Connect(detectedCallback);
77 detectedEventHandler += value;
82 detectedEventHandler -= value;
84 if (detectedEventHandler == null && DetectedSignal().Empty() == false)
86 DetectedSignal().Disconnect(detectedCallback);
92 /// For a left pan (-PI Radians).
94 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
95 [EditorBrowsable(EditorBrowsableState.Never)]
96 public static Radian DirectionLeft
100 global::System.IntPtr cPtr = Interop.PanGestureDetector.DirectionLeftGet();
101 Radian ret = (cPtr == global::System.IntPtr.Zero) ? null : new Radian(cPtr, false);
102 if (NDalicPINVOKE.SWIGPendingException.Pending) throw new InvalidOperationException("FATAL: get Exception", NDalicPINVOKE.SWIGPendingException.Retrieve());
108 /// For a right pan (0 Radians).
110 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
111 [EditorBrowsable(EditorBrowsableState.Never)]
112 public static Radian DirectionRight
116 global::System.IntPtr cPtr = Interop.PanGestureDetector.DirectionRightGet();
117 Radian ret = (cPtr == global::System.IntPtr.Zero) ? null : new Radian(cPtr, false);
118 if (NDalicPINVOKE.SWIGPendingException.Pending) throw new InvalidOperationException("FATAL: get Exception", NDalicPINVOKE.SWIGPendingException.Retrieve());
124 /// For an up pan (-0.5 * PI Radians).
126 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
127 [EditorBrowsable(EditorBrowsableState.Never)]
128 public static Radian DirectionUp
132 global::System.IntPtr cPtr = Interop.PanGestureDetector.DirectionUpGet();
133 Radian ret = (cPtr == global::System.IntPtr.Zero) ? null : new Radian(cPtr, false);
134 if (NDalicPINVOKE.SWIGPendingException.Pending) throw new InvalidOperationException("FATAL: get Exception", NDalicPINVOKE.SWIGPendingException.Retrieve());
140 /// For a down pan (0.5 * PI Radians).
142 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
143 [EditorBrowsable(EditorBrowsableState.Never)]
144 public static Radian DirectionDown
148 global::System.IntPtr cPtr = Interop.PanGestureDetector.DirectionDownGet();
149 Radian ret = (cPtr == global::System.IntPtr.Zero) ? null : new Radian(cPtr, false);
150 if (NDalicPINVOKE.SWIGPendingException.Pending) throw new InvalidOperationException("FATAL: get Exception", NDalicPINVOKE.SWIGPendingException.Retrieve());
156 /// For a left and right pan (PI Radians). Useful for AddDirection().
158 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
159 [EditorBrowsable(EditorBrowsableState.Never)]
160 public static Radian DirectionHorizontal
164 global::System.IntPtr cPtr = Interop.PanGestureDetector.DirectionHorizontalGet();
165 Radian ret = (cPtr == global::System.IntPtr.Zero) ? null : new Radian(cPtr, false);
166 if (NDalicPINVOKE.SWIGPendingException.Pending) throw new InvalidOperationException("FATAL: get Exception", NDalicPINVOKE.SWIGPendingException.Retrieve());
172 /// For an up and down pan (-0.5 * PI Radians). Useful for AddDirection().
174 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
175 [EditorBrowsable(EditorBrowsableState.Never)]
176 public static Radian DirectionVertical
180 global::System.IntPtr cPtr = Interop.PanGestureDetector.DirectionVerticalGet();
181 Radian ret = (cPtr == global::System.IntPtr.Zero) ? null : new Radian(cPtr, false);
182 if (NDalicPINVOKE.SWIGPendingException.Pending) throw new InvalidOperationException("FATAL: get Exception", NDalicPINVOKE.SWIGPendingException.Retrieve());
188 /// The default threshold is PI * 0.25 radians (or 45 degrees).
190 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
191 [EditorBrowsable(EditorBrowsableState.Never)]
192 public static Radian DefaultThreshold
196 global::System.IntPtr cPtr = Interop.PanGestureDetector.DefaultThresholdGet();
197 Radian ret = (cPtr == global::System.IntPtr.Zero) ? null : new Radian(cPtr, false);
198 if (NDalicPINVOKE.SWIGPendingException.Pending) throw new InvalidOperationException("FATAL: get Exception", NDalicPINVOKE.SWIGPendingException.Retrieve());
204 /// Retrieves the screen position.
206 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
207 [EditorBrowsable(EditorBrowsableState.Never)]
208 public Vector2 ScreenPosition
212 Vector2 temp = new Vector2(0.0f, 0.0f);
213 if (NDalicPINVOKE.SWIGPendingException.Pending) throw new InvalidOperationException("FATAL: get Exception", NDalicPINVOKE.SWIGPendingException.Retrieve());
219 /// Retrieves the screen displacement.
221 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
222 [EditorBrowsable(EditorBrowsableState.Never)]
223 public Vector2 ScreenDisplacement
227 Vector2 temp = new Vector2(0.0f, 0.0f);
228 var pValue = Tizen.NUI.Object.GetProperty(SwigCPtr, PanGestureDetector.Property.ScreenDisplacement);
236 /// Retrieves the screen velocity.
238 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
239 [EditorBrowsable(EditorBrowsableState.Never)]
240 public Vector2 ScreenVelocity
244 Vector2 temp = new Vector2(0.0f, 0.0f);
245 var pValue = Tizen.NUI.Object.GetProperty(SwigCPtr, PanGestureDetector.Property.ScreenVelocity);
253 /// Retrieves the local position.
255 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
256 [EditorBrowsable(EditorBrowsableState.Never)]
257 public Vector2 LocalPosition
261 Vector2 temp = new Vector2(0.0f, 0.0f);
262 var pValue = Tizen.NUI.Object.GetProperty(SwigCPtr, PanGestureDetector.Property.LocalPosition);
270 /// Retrieves the local displacement
272 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
273 [EditorBrowsable(EditorBrowsableState.Never)]
274 public Vector2 LocalDisplacement
278 Vector2 temp = new Vector2(0.0f, 0.0f);
279 var pValue = Tizen.NUI.Object.GetProperty(SwigCPtr, PanGestureDetector.Property.LocalDisplacement);
287 /// Retrieves the local velocity.
289 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
290 [EditorBrowsable(EditorBrowsableState.Never)]
291 public Vector2 LocalVelocity
295 Vector2 temp = new Vector2(0.0f, 0.0f);
296 var pValue = Tizen.NUI.Object.GetProperty(SwigCPtr, PanGestureDetector.Property.LocalVelocity);
304 /// Retrieves the panning flag.
306 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
307 [EditorBrowsable(EditorBrowsableState.Never)]
313 var pValue = Tizen.NUI.Object.GetProperty(SwigCPtr, PanGestureDetector.Property.PANNING);
314 pValue.Get(out temp);
321 /// This is the minimum number of touches required for the pan gesture to be detected.
323 /// <param name="minimum">Minimum touches required</param>
324 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
325 [EditorBrowsable(EditorBrowsableState.Never)]
326 public void SetMinimumTouchesRequired(uint minimum)
328 Interop.PanGestureDetector.SetMinimumTouchesRequired(SwigCPtr, minimum);
329 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
333 /// This is the maximum number of touches required for the pan gesture to be detected.
335 /// <param name="maximum">Maximum touches required</param>
336 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
337 [EditorBrowsable(EditorBrowsableState.Never)]
338 public void SetMaximumTouchesRequired(uint maximum)
340 Interop.PanGestureDetector.SetMaximumTouchesRequired(SwigCPtr, maximum);
341 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
345 /// Set a maximum duration of motion event that is able to live on the pan gesture event queue.
346 /// If duration exceed it, the motion event is discarded.
348 /// <param name="maximumAgeMilliSecond">Maximum age of motion events as milliseconds</param>
349 [EditorBrowsable(EditorBrowsableState.Never)]
350 public void SetMaximumMotionEventAge(uint maximumAgeMilliSecond)
352 Interop.PanGestureDetector.SetMaximumMotionEventAge(SwigCPtr, maximumAgeMilliSecond);
353 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
357 /// Retrieves the minimum number of touches required for the pan gesture to be detected.
359 /// <returns>The minimum touches required</returns>
360 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
361 [EditorBrowsable(EditorBrowsableState.Never)]
362 public uint GetMinimumTouchesRequired()
364 uint ret = Interop.PanGestureDetector.GetMinimumTouchesRequired(SwigCPtr);
365 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
370 /// Retrieves the maximum number of touches required for the pan gesture to be detected.
372 /// <returns>The maximum touches required</returns>
373 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
374 [EditorBrowsable(EditorBrowsableState.Never)]
375 public uint GetMaximumTouchesRequired()
377 uint ret = Interop.PanGestureDetector.GetMaximumTouchesRequired(SwigCPtr);
378 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
383 /// Retrieves the maximum age for the pan gesture motion as milliseconds.
385 /// <returns>The maximum age of motion events as milliseconds</returns>
386 [EditorBrowsable(EditorBrowsableState.Never)]
387 public uint GetMaximumMotionEventAge()
389 uint ret = Interop.PanGestureDetector.GetMaximumMotionEventAge(SwigCPtr);
390 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
395 /// The pan gesture is only emitted if the pan occurs in the direction specified by this method with a +/- threshold allowance.<br />
396 /// If an angle of 0.0 degrees is specified and the threshold is 45 degrees then the acceptable direction range is from -45 to 45 degrees.<br />
397 /// The angle added using this API is only checked when the gesture first starts, after that, this detector will emit the gesture regardless of what angle the pan is moving.
398 /// The user can add as many angles as they require.
400 /// <param name="angle">The angle that pan should be allowed</param>
401 /// <param name="threshold">The threshold around that angle</param>
402 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
403 [EditorBrowsable(EditorBrowsableState.Never)]
404 public void AddAngle(Radian angle, Radian threshold)
406 Interop.PanGestureDetector.AddAngle(SwigCPtr, Radian.getCPtr(angle), Radian.getCPtr(threshold));
407 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
411 /// The pan gesture is only emitted if the pan occurs in the direction specified by this method with a +/- threshold allowance. The default threshold (PI * 0.25) is used.<br />
412 /// The angle added using this API is only checked when the gesture first starts, after that, this detector will emit the gesture regardless of what angle the pan is moving.<br />
413 /// The user can add as many angles as they require.<br />
415 /// <param name="angle">The angle that pan should be allowed</param>
416 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
417 [EditorBrowsable(EditorBrowsableState.Never)]
418 public void AddAngle(Radian angle)
420 Interop.PanGestureDetector.AddAngle(SwigCPtr, Radian.getCPtr(angle));
421 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
425 /// A helper method for adding bi-directional angles where the pan should take place.<br />
426 /// In other words, if 0 is requested, then PI will also be added so that we have both left and right scrolling.<br />
428 /// <param name="direction">The direction of panning required</param>
429 /// <param name="threshold">The threshold</param>
430 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
431 [EditorBrowsable(EditorBrowsableState.Never)]
432 public void AddDirection(Radian direction, Radian threshold)
434 Interop.PanGestureDetector.AddDirection(SwigCPtr, Radian.getCPtr(direction), Radian.getCPtr(threshold));
435 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
439 /// A helper method for adding bi-directional angles where the pan should take place.
440 /// In other words, if 0 is requested, then PI will also be added so that we have both left and right scrolling.<br />
441 /// The default threshold (PI * 0.25) is used.
443 /// <param name="direction">The direction of panning required</param>
444 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
445 [EditorBrowsable(EditorBrowsableState.Never)]
446 public void AddDirection(Radian direction)
448 Interop.PanGestureDetector.AddDirection(SwigCPtr, Radian.getCPtr(direction));
449 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
453 /// Returns the count of angles that this pan gesture detector emits a signal.
455 /// <returns>The gesture detector has been initialized.</returns>
456 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
457 [EditorBrowsable(EditorBrowsableState.Never)]
458 public uint GetAngleCount()
460 uint ret = Interop.PanGestureDetector.GetAngleCount(SwigCPtr);
461 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
466 /// Clears any directional angles that are used by the gesture detector.
468 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
469 [EditorBrowsable(EditorBrowsableState.Never)]
470 public void ClearAngles()
472 Interop.PanGestureDetector.ClearAngles(SwigCPtr);
473 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
477 /// Removes the angle specified from the container. This will only remove the first instance of the angle found from the container.
479 /// <param name="angle">The angle to remove</param>
480 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
481 [EditorBrowsable(EditorBrowsableState.Never)]
482 public void RemoveAngle(Radian angle)
484 Interop.PanGestureDetector.RemoveAngle(SwigCPtr, Radian.getCPtr(angle));
485 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
489 /// Removes the two angles that make up the direction from the container.
491 /// <param name="direction">The direction to remove</param>
492 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
493 [EditorBrowsable(EditorBrowsableState.Never)]
494 public void RemoveDirection(Radian direction)
496 Interop.PanGestureDetector.RemoveDirection(SwigCPtr, Radian.getCPtr(direction));
497 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
501 /// Allows setting of the pan properties that are returned in constraints.
503 /// <param name="pan">The pan gesture to set</param>
504 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
505 [EditorBrowsable(EditorBrowsableState.Never)]
506 public static void SetPanGestureProperties(PanGesture pan)
508 Interop.PanGestureDetector.SetPanGestureProperties(PanGesture.getCPtr(pan));
509 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
512 internal static PanGestureDetector GetPanGestureDetectorFromPtr(global::System.IntPtr cPtr)
514 PanGestureDetector ret = new PanGestureDetector(cPtr, false);
515 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
519 internal new static PanGestureDetector DownCast(BaseHandle handle)
521 PanGestureDetector ret = Registry.GetManagedBaseHandleFromNativePtr(handle) as PanGestureDetector;
522 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
526 internal AngleThresholdPair GetAngle(uint index)
528 AngleThresholdPair ret = new AngleThresholdPair(Interop.PanGestureDetector.GetAngle(SwigCPtr, index), true);
529 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
533 internal PanGestureDetector Assign(PanGestureDetector rhs)
535 PanGestureDetector ret = new PanGestureDetector(Interop.PanGestureDetector.Assign(SwigCPtr, PanGestureDetector.getCPtr(rhs)), false);
536 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
540 internal PanGestureDetectedSignal DetectedSignal()
542 PanGestureDetectedSignal ret = new PanGestureDetectedSignal(Interop.PanGestureDetector.DetectedSignal(SwigCPtr), false);
543 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
547 /// This will not be public opened.
548 [EditorBrowsable(EditorBrowsableState.Never)]
549 protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
551 if (detectedCallback != null)
553 DetectedSignal().Disconnect(detectedCallback);
556 Interop.PanGestureDetector.DeletePanGestureDetector(swigCPtr);
559 private void OnPanGestureDetected(IntPtr actor, IntPtr panGesture)
561 if (detectedEventHandler != null)
563 DetectedEventArgs e = new DetectedEventArgs();
565 // Populate all members of "e" (PanGestureEventArgs) with real data
566 e.View = Registry.GetManagedBaseHandleFromNativePtr(actor) as View;
569 e.View = Registry.GetManagedBaseHandleFromRefObject(actor) as View;
572 e.PanGesture = Tizen.NUI.PanGesture.GetPanGestureFromPtr(panGesture);
573 detectedEventHandler(this, e);
578 /// Event arguments that are passed via the PanGestureEvent signal.
580 /// <since_tizen> 5 </since_tizen>
581 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
582 [EditorBrowsable(EditorBrowsableState.Never)]
583 public class DetectedEventArgs : EventArgs
586 private PanGesture panGesture;
587 private bool handled = true;
590 /// The attached view.
592 /// <since_tizen> 5 </since_tizen>
593 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
594 [EditorBrowsable(EditorBrowsableState.Never)]
610 /// <since_tizen> 5 </since_tizen>
611 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
612 [EditorBrowsable(EditorBrowsableState.Never)]
613 public PanGesture PanGesture
626 /// Gets or sets a value that indicates whether the event handler has completely handled the event or whether the system should continue its own processing.
628 [EditorBrowsable(EditorBrowsableState.Never)]
635 Interop.Actor.SetNeedGesturePropagation(View.getCPtr(view), !value);
636 if (NDalicPINVOKE.SWIGPendingException.Pending)
637 throw NDalicPINVOKE.SWIGPendingException.Retrieve();
642 internal class Property
644 internal static readonly int ScreenPosition = Interop.PanGestureDetector.ScreenPositionGet();
645 internal static readonly int ScreenDisplacement = Interop.PanGestureDetector.ScreenDisplacementGet();
646 internal static readonly int ScreenVelocity = Interop.PanGestureDetector.ScreenVelocityGet();
647 internal static readonly int LocalPosition = Interop.PanGestureDetector.LocalPositionGet();
648 internal static readonly int LocalDisplacement = Interop.PanGestureDetector.LocalDisplacementGet();
649 internal static readonly int LocalVelocity = Interop.PanGestureDetector.LocalVelocityGet();
650 internal static readonly int PANNING = Interop.PanGestureDetector.PanningGet();