/// TapGestureDetector event callback.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- public virtual void OnTap(object sender, TapGestureDetector.DetectedEventArgs e)
+ public virtual void OnTap(object sender, TapGestureDetector.DetectedEventArgs e, object userData)
{
}
/// LongPressGestureDetector event callback.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- public virtual void OnLongPress(object sender, LongPressGestureDetector.DetectedEventArgs e)
+ public virtual void OnLongPress(object sender, LongPressGestureDetector.DetectedEventArgs e, object userData)
{
}
/// PanGestureDetector event callback.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- public virtual void OnPan(object sender, PanGestureDetector.DetectedEventArgs e)
+ public virtual void OnPan(object sender, PanGestureDetector.DetectedEventArgs e, object userData)
{
}
/// PinchGestureDetector event callback.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- public virtual void OnPinch(object sender, PinchGestureDetector.DetectedEventArgs e)
+ public virtual void OnPinch(object sender, PinchGestureDetector.DetectedEventArgs e, object userData)
{
}
}
private LongPressGestureDetector mLongGestureDetector;
private PinchGestureDetector mPinchGestureDetector;
private PanGestureDetector mPanGestureDetector;
+ private object mUserData;
/// <summary>
/// Creates a GestureDetectorManager with the user listener.
private void InternalOnTap(object sender, TapGestureDetector.DetectedEventArgs e)
{
- mListener.OnTap(sender, e);
+ mListener.OnTap(sender, e, mUserData);
mTapGestureDetector.Detected -= InternalOnTap;
}
private void InternalOnLongPress(object sender, LongPressGestureDetector.DetectedEventArgs e)
{
- mListener.OnLongPress(sender, e);
+ mListener.OnLongPress(sender, e, mUserData);
mLongGestureDetector.Detected -= InternalOnLongPress;
}
private void InternalOnPan(object sender, PanGestureDetector.DetectedEventArgs e)
{
- mListener.OnPan(sender, e);
+ mListener.OnPan(sender, e, mUserData);
mPanGestureDetector.Detected -= InternalOnPan;
}
private void InternalOnPinch(object sender, PinchGestureDetector.DetectedEventArgs e)
{
- mListener.OnPinch(sender, e);
+ mListener.OnPinch(sender, e, mUserData);
mPinchGestureDetector.Detected -= InternalOnPinch;
}
/// <summary>
/// Gestures also work only when there is a touch event.
/// </summary>
+ /// <param name="sender">The actor who delivered the touch event.</param>
+ /// <param name="e">The TouchEventArgs</param>
[EditorBrowsable(EditorBrowsableState.Never)]
public void FeedTouchEvent(object sender, View.TouchEventArgs e)
{
+ FeedTouchEvent(sender, e, null);
+ }
+
+ /// <summary>
+ /// Gestures also work only when there is a touch event.
+ /// </summary>
+ /// <param name="sender">The actor who delivered the touch event.</param>
+ /// <param name="e">The TouchEventArgs</param>
+ /// <param name="userData">The user data object</param>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public void FeedTouchEvent(object sender, View.TouchEventArgs e, object userData)
+ {
+ mUserData = userData;
mTapGestureDetector.Detected -= InternalOnTap;
mLongGestureDetector.Detected -= InternalOnLongPress;
mPanGestureDetector.Detected -= InternalOnPan;
{
private View root;
GestureDetectorManager mGestureDetector;
+ private TextLabel frontView;
+ private TextLabel backView;
+
+ public void ChangeText()
+ {
+ backView.Text = "From OnTap BackView";
+ }
public void Activate()
{
Window window = NUIApplication.GetDefaultWindow();
+ root = new View();
- TextLabel frontView = new TextLabel
+
+ frontView = new TextLabel
{
Size = new Size(300, 300),
Text = "Front View",
};
frontView.TouchEvent += OnFrontTouchEvent;
- TextLabel backView = new TextLabel
+
+ backView = new TextLabel
{
Size = new Size(300, 300),
Text = "Back View",
mGestureDetector = new GestureDetectorManager(backView, new MyGestureListener());
backView.TouchEvent += OnBackTouchEvent;
- window.Add(backView);
- window.Add(frontView);
+ backView.Add(frontView);
+
+ root.Add(backView);
+ window.Add(root);
}
private bool OnFrontTouchEvent(object source, View.TouchEventArgs e)
{
Tizen.Log.Error("NUI", $"OnFrontTouchEvent {e.Touch.GetState(0)}\n");
- return false;
+ return true;
}
private bool OnBackTouchEvent(object source, View.TouchEventArgs e)
{
Tizen.Log.Error("NUI", $"OnBackTouchEvent {e.Touch.GetState(0)}\n");
- mGestureDetector.FeedTouchEvent(source, e);
+ mGestureDetector.FeedTouchEvent(source, e, this);
return false;
}
class MyGestureListener : GestureDetectorManager.GestureListener
{
- public override void OnTap(object sender, TapGestureDetector.DetectedEventArgs e)
+ public override void OnTap(object sender, TapGestureDetector.DetectedEventArgs e, object userData)
{
Tizen.Log.Error("NUI", $"OnTap \n");
+ if(userData != null)
+ {
+ TouchGestureSample sample = (TouchGestureSample) userData;
+ sample.ChangeText();
+ }
}
- public override void OnPan(object sender, PanGestureDetector.DetectedEventArgs e)
+ public override void OnPan(object sender, PanGestureDetector.DetectedEventArgs e, object userData)
{
Tizen.Log.Error("NUI", $"OnPan \n");
}
- public override void OnPinch(object sender, PinchGestureDetector.DetectedEventArgs e)
+ public override void OnPinch(object sender, PinchGestureDetector.DetectedEventArgs e, object userData)
{
Tizen.Log.Error("NUI", $"OnPinch \n");
}
- public override void OnLongPress(object sender, LongPressGestureDetector.DetectedEventArgs e)
+ public override void OnLongPress(object sender, LongPressGestureDetector.DetectedEventArgs e, object userData)
{
Tizen.Log.Error("NUI", $"OnLongPress \n");
}