[NUI] Modify to pass userData object to GestureDetectorManager (#1932)
authorJoogabYun <40262755+JoogabYun@users.noreply.github.com>
Wed, 14 Oct 2020 05:54:22 +0000 (14:54 +0900)
committerGitHub <noreply@github.com>
Wed, 14 Oct 2020 05:54:22 +0000 (14:54 +0900)
Co-authored-by: TizenAPI-Bot <37820187+TizenAPI-Bot@users.noreply.github.com>
src/Tizen.NUI/src/public/Events/GestureDetectorManager.cs
test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/TouchGestureSample.cs

index 1e3d0bb..34b8a1b 100755 (executable)
@@ -37,7 +37,7 @@ namespace Tizen.NUI.Events
       ///  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)
       {
       }
 
@@ -45,7 +45,7 @@ namespace Tizen.NUI.Events
       ///  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)
       {
       }
 
@@ -53,7 +53,7 @@ namespace Tizen.NUI.Events
       ///  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)
       {
       }
 
@@ -61,7 +61,7 @@ namespace Tizen.NUI.Events
       ///  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)
       {
       }
     }
@@ -71,6 +71,7 @@ namespace Tizen.NUI.Events
     private LongPressGestureDetector mLongGestureDetector;
     private PinchGestureDetector mPinchGestureDetector;
     private PanGestureDetector mPanGestureDetector;
+    private object mUserData;
 
     /// <summary>
     ///  Creates a GestureDetectorManager with the user listener.
@@ -107,34 +108,49 @@ namespace Tizen.NUI.Events
 
     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;
index 6e910db..e956f00 100755 (executable)
@@ -10,12 +10,21 @@ namespace Tizen.NUI.Samples
     {
         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",
@@ -25,7 +34,8 @@ namespace Tizen.NUI.Samples
             };
             frontView.TouchEvent += OnFrontTouchEvent;
 
-            TextLabel backView = new TextLabel
+
+            backView = new TextLabel
             {
                 Size = new Size(300, 300),
                 Text = "Back View",
@@ -37,42 +47,49 @@ namespace Tizen.NUI.Samples
             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");
           }