[DllImport(lib, EntryPoint = "efl_util_gesture_grab")]
internal static extern ErrorCode GestureGrab(IntPtr gestureHandler, IntPtr gestureData);
+ [DllImport(lib, EntryPoint = "efl_util_gesture_grab_mode_set")]
+ internal static extern ErrorCode SetGestureGrabMode(IntPtr gestureHandler, IntPtr gestureData, int mode);
+
[DllImport(lib, EntryPoint = "efl_util_gesture_ungrab")]
internal static extern ErrorCode GestureUngrab(IntPtr gestureHandler, IntPtr gestureData);
Partial,
}
+ /// <summary>
+ /// Enumeration of gesture grab modes.
+ /// </summary>
+ /// This enum is need to be hidden as inhouse API.
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public enum GestureGrabMode
+ {
+ /// <summary>
+ /// mode none.
+ /// </summary>
+ None,
+
+ /// <summary>
+ /// mode exclusive.
+ /// </summary>
+ Exclusive,
+
+ /// <summary>
+ /// mode shared.
+ /// </summary>
+ Shared,
+ }
+
/// <summary>
/// Class for the Tizen Input Gesture.
/// </summary>
Log.Debug(LogTag, "GrabGesture");
}
+ /// <summary>
+ /// Set grab mode of global gesture
+ /// </summary>
+ /// <param name="data">gesture data to grab</param>
+ /// <param name="mode"> The mode of gesture grab</param>
+ /// <exception cref="ArgumentException">Thrown when failed of invalid argument.</exception>
+ public void SetGestureGrabMode(IntPtr data, GestureGrabMode mode)
+ {
+ if (data == IntPtr.Zero)
+ {
+ throw new ArgumentException("gesture data is not valid.");
+ }
+ Interop.InputGesture.ErrorCode res = Interop.InputGesture.SetGestureGrabMode(_handler, data, (int)mode);
+ ErrorCodeThrow(res);
+ Log.Debug(LogTag, "SetGestureGrabMode");
+ }
+
/// <summary>
/// Ungrabs a global gesture.
/// </summary>
palmCoverGrabbed = false;
}
}
+ if (e.Key.State == Key.StateType.Down && (e.Key.KeyPressedName == "G" || e.Key.KeyPressedName == "g"))
+ {
+ if (edgeSwipeG == IntPtr.Zero)
+ edgeSwipeG = inputGesture.CreateEdgeSwipeData(1, GestureEdge.Left);
+
+ if (edgeSwipeG == IntPtr.Zero)
+ {
+ centerLabel.Text = "'G' Key Pressed. edgeSwipeG NULL!!";
+ return;
+ }
+
+ if (!edgeSwipeGrabbed)
+ {
+ inputGesture.SetGestureGrabMode(edgeSwipeG, GestureGrabMode.Shared);
+ inputGesture.GrabGesture(edgeSwipeG);
+ centerLabel.Text = "'G' Key Pressed. edgeSwipe Shared Grabbed";
+
+ inputGesture.EdgeSwipeEventHandler += _edgeSwipeEventHandler;
+ edgeSwipeGrabbed = true;
+ }
+ else
+ {
+ inputGesture.UngrabGesture(edgeSwipeG);
+ centerLabel.Text = "'G' Key Pressed. edgeSwipe Ungrabbed";
+ edgeSwipeGrabbed = false;
+ }
+ }
}
private bool OnTouchEvent(object sender, View.TouchEventArgs e)