[NUI] CanvasView::DrawableGroup: Add RemoveDrawable method
authorJunsuChoi <jsuya.choi@samsung.com>
Mon, 2 Aug 2021 05:53:02 +0000 (14:53 +0900)
committerdongsug-song <35130733+dongsug-song@users.noreply.github.com>
Wed, 18 Aug 2021 03:10:44 +0000 (12:10 +0900)
Add a method to selectively remove the added drawable.

src/Tizen.NUI/src/internal/Interop/Interop.DrawableGroup.cs
src/Tizen.NUI/src/public/BaseComponents/VectorGraphics/DrawableGroup.cs

index ae68e40..81c3602 100755 (executable)
@@ -28,6 +28,10 @@ namespace Tizen.NUI
             [return: global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.U1)]
             public static extern bool AddDrawable(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
 
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_DrawableGroup_RemoveDrawable")]
+            [return: global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.U1)]
+            public static extern bool RemoveDrawable(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
             [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_DrawableGroup_RemoveAllDrawables")]
             [return: global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.U1)]
             public static extern bool RemoveAllDrawables(global::System.Runtime.InteropServices.HandleRef jarg1);
index 3bffc92..2c86635 100755 (executable)
@@ -64,6 +64,24 @@ namespace Tizen.NUI.BaseComponents.VectorGraphics
         }
 
         /// <summary>
+        /// Remove drawable object to the DrawableGroup.
+        /// This method is similar to deregistration.
+        /// </summary>
+        /// <param name="drawable">Drawable object</param>
+        /// <exception cref="ArgumentNullException"> Thrown when drawable is null. </exception>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void RemoveDrawable(Drawable drawable)
+        {
+            if (drawable == null)
+            {
+                throw new ArgumentNullException(nameof(drawable));
+            }
+            Interop.DrawableGroup.RemoveDrawable(View.getCPtr(this), BaseHandle.getCPtr(drawable));
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            drawables.Remove(drawable);
+        }
+
+        /// <summary>
         /// Clears the drawable object added to the DrawableGroup. 
         /// This method does not free the memory of the added drawable object.
         /// </summary>