Merge remote-tracking branch 'origin/master' into tizen
authorTizenAPI-Bot <tizenapi@samsung.com>
Tue, 5 Sep 2023 13:47:14 +0000 (13:47 +0000)
committerTizenAPI-Bot <tizenapi@samsung.com>
Tue, 5 Sep 2023 13:47:14 +0000 (13:47 +0000)
23 files changed:
src/Tizen.NUI.Components/Controls/RecyclerView/CollectionView.cs
src/Tizen.NUI.Components/Controls/SliderBindableProperty.cs
src/Tizen.NUI.Scene3D/src/internal/Interop/Interop.Light.cs
src/Tizen.NUI.Scene3D/src/public/Controls/Model.cs
src/Tizen.NUI.Scene3D/src/public/Light/Light.cs
src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionData.cs
src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/BlendShapeIndex.cs
src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/MotionIndex.cs
src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/MotionPropertyIndex.cs
src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionIndex/MotionTransformIndex.cs
src/Tizen.NUI.Scene3D/src/public/ModelMotion/MotionValue.cs
src/Tizen.NUI/src/internal/Common/SystemFontSizeChangedManager.cs [new file with mode: 0644]
src/Tizen.NUI/src/public/Accessibility/IAtspiEditableText.cs
src/Tizen.NUI/src/public/Accessibility/IAtspiSelection.cs
src/Tizen.NUI/src/public/Accessibility/IAtspiTable.cs
src/Tizen.NUI/src/public/Accessibility/IAtspiTableCell.cs
src/Tizen.NUI/src/public/Accessibility/IAtspiText.cs
src/Tizen.NUI/src/public/Accessibility/IAtspiValue.cs
src/Tizen.NUI/src/public/BaseComponents/TextEditor.cs
src/Tizen.NUI/src/public/BaseComponents/TextField.cs
src/Tizen.NUI/src/public/BaseComponents/TextLabel.cs
src/Tizen.NUI/src/public/BaseComponents/ViewEvent.cs
src/Tizen.NUI/src/public/DragAndDrop/DragAndDrop.cs

index 52adc96..9d54cd2 100755 (executable)
@@ -1321,7 +1321,8 @@ namespace Tizen.NUI.Components
 
         private void ReinitializeLayout()
         {
-            if (ItemsSource == null || ItemsLayouter == null || ItemTemplate == null)
+            var localItemsLayouter = ItemsLayouter;
+            if (ItemsSource == null || localItemsLayouter == null || ItemTemplate == null)
             {
                 return;
             }
@@ -1349,11 +1350,11 @@ namespace Tizen.NUI.Components
                 itemsLayouter.Clear();
                 ClearCache();
 
-                ItemsLayouter.Initialize(this);
+                localItemsLayouter.Initialize(this);
                 needInitalizeLayouter = false;
             }
 
-            ItemsLayouter.RequestLayout(0.0f, true);
+            localItemsLayouter.RequestLayout(0.0f, true);
 
             if (delayedScrollTo)
             {
@@ -1369,11 +1370,11 @@ namespace Tizen.NUI.Components
 
             if (ScrollingDirection == Direction.Horizontal)
             {
-                ContentContainer.SizeWidth = (float)ItemsLayouter?.CalculateLayoutOrientationSize();
+                ContentContainer.SizeWidth = (float)localItemsLayouter.CalculateLayoutOrientationSize();
             }
             else
             {
-                ContentContainer.SizeHeight = (float)ItemsLayouter?.CalculateLayoutOrientationSize();
+                ContentContainer.SizeHeight = (float)localItemsLayouter.CalculateLayoutOrientationSize();
             }
         }
 
index d11c2a5..ec36b19 100755 (executable)
@@ -352,9 +352,9 @@ namespace Tizen.NUI.Components
         public static readonly BindableProperty LowIndicatorSizeProperty = BindableProperty.Create(nameof(LowIndicatorSize), typeof(Size), typeof(Slider), null, propertyChanged: (bindable, oldValue, newValue) =>
         {
             var instance = (Slider)bindable;
-            if (newValue != null)
+            if (newValue as Size is var nVal && nVal != null)
             {
-                instance.InternalLowIndicatorSize = newValue as Size;
+                instance.InternalLowIndicatorSize = nVal;
             }
         },
         defaultValueCreator: (bindable) =>
@@ -370,9 +370,9 @@ namespace Tizen.NUI.Components
         public static readonly BindableProperty HighIndicatorSizeProperty = BindableProperty.Create(nameof(HighIndicatorSize), typeof(Size), typeof(Slider), null, propertyChanged: (bindable, oldValue, newValue) =>
         {
             var instance = (Slider)bindable;
-            if (newValue != null)
+            if (newValue as Size is var nVal && nVal != null)
             {
-                instance.InternalHighIndicatorSize = newValue as Size;
+                instance.InternalHighIndicatorSize = nVal;
             }
         },
         defaultValueCreator: (bindable) =>
@@ -388,9 +388,9 @@ namespace Tizen.NUI.Components
         public static readonly BindableProperty ValueIndicatorSizeProperty = BindableProperty.Create(nameof(ValueIndicatorSize), typeof(Size), typeof(Slider), null, propertyChanged: (bindable, oldValue, newValue) =>
         {
             var instance = (Slider)bindable;
-            if (newValue != null)
+            if (newValue as Size is var nVal && nVal != null)
             {
-                instance.InternalValueIndicatorSize = newValue as Size;
+                instance.InternalValueIndicatorSize = nVal;
             }
         },
         defaultValueCreator: (bindable) =>
index db80aea..c320a17 100755 (executable)
@@ -43,8 +43,34 @@ namespace Tizen.NUI.Scene3D
             [return: global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.U1)]
             public static extern bool IsEnabled(global::System.Runtime.InteropServices.HandleRef light);
 
-            [global::System.Runtime.InteropServices.DllImport(Libraries.Scene3D, EntryPoint = "CSharp_Dali_SceneView_GetMaximumEnabledLightCount")]
+            [global::System.Runtime.InteropServices.DllImport(Libraries.Scene3D, EntryPoint = "CSharp_Dali_Light_GetMaximumEnabledLightCount")]
             public static extern uint GetMaximumEnabledLightCount();
+
+            [global::System.Runtime.InteropServices.DllImport(Libraries.Scene3D, EntryPoint = "CSharp_Dali_Light_EnableShadow")]
+            public static extern void EnableShadow(global::System.Runtime.InteropServices.HandleRef light, bool enable);
+
+            [global::System.Runtime.InteropServices.DllImport(Libraries.Scene3D, EntryPoint = "CSharp_Dali_Light_IsShadowEnabled")]
+            [return: global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.U1)]
+            public static extern bool IsShadowEnabled(global::System.Runtime.InteropServices.HandleRef light);
+
+            [global::System.Runtime.InteropServices.DllImport(Libraries.Scene3D, EntryPoint = "CSharp_Dali_Light_EnableShadowSoftFiltering")]
+            public static extern void EnableShadowSoftFiltering(global::System.Runtime.InteropServices.HandleRef light, bool enable);
+
+            [global::System.Runtime.InteropServices.DllImport(Libraries.Scene3D, EntryPoint = "CSharp_Dali_Light_IsShadowSoftFilteringEnabled")]
+            [return: global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.U1)]
+            public static extern bool IsShadowSoftFilteringEnabled(global::System.Runtime.InteropServices.HandleRef light);
+
+            [global::System.Runtime.InteropServices.DllImport(Libraries.Scene3D, EntryPoint = "CSharp_Dali_Light_SetShadowIntensity")]
+            public static extern void SetShadowIntensity(global::System.Runtime.InteropServices.HandleRef light, float shadowIntensity);
+
+            [global::System.Runtime.InteropServices.DllImport(Libraries.Scene3D, EntryPoint = "CSharp_Dali_Light_GetShadowIntensity")]
+            public static extern float GetShadowIntensity(global::System.Runtime.InteropServices.HandleRef light);
+
+            [global::System.Runtime.InteropServices.DllImport(Libraries.Scene3D, EntryPoint = "CSharp_Dali_Light_SetShadowBias")]
+            public static extern void SetShadowBias(global::System.Runtime.InteropServices.HandleRef light, float shadowIntensity);
+
+            [global::System.Runtime.InteropServices.DllImport(Libraries.Scene3D, EntryPoint = "CSharp_Dali_Light_GetShadowBias")]
+            public static extern float GetShadowBias(global::System.Runtime.InteropServices.HandleRef light);
         }
     }
 }
index b3aff77..484a7dd 100755 (executable)
@@ -513,10 +513,9 @@ namespace Tizen.NUI.Scene3D
         /// Generate animation by MotionData.
         /// If there is no animatable item for MotionData, return null.
         /// </summary>
-        /// <param name="motionData">Inputed list of pair of MotionIndex and MotionValue, and duration.</param>
-        /// <returns>Generated animation by input motion data, or null if there is no animatable item exist about inputed motionData</returns>
-        // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API)
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <param name="motionData">Source motion data.</param>
+        /// <returns>Generated animation from then given motion data, or null if there is no animatable item in <paramref name="motionData"/></returns>
+        /// <since_tizen> 11 </since_tizen>
         public Animation GenerateMotionDataAnimation(MotionData motionData)
         {
             global::System.IntPtr cPtr = Interop.Model.GenerateMotionDataAnimation(SwigCPtr, MotionData.getCPtr(motionData));
@@ -546,13 +545,12 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Prototype of MotionData setter.
-        /// Note that this API didn't apply KeyFrames animation.
+        /// Set values from MotionData.
+        /// Note that this method doesn not apply KeyFrames animation.
         /// If you want to apply the animation, please use <see cref="GenerateMotionDataAnimation(MotionData)"/> and play the result.
         /// </summary>
-        /// <param name="motionData">Inputed list of pair of MotionIndex and MotionValue.</param>
-        // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API)
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <param name="motionData">Source motion data.</param>
+        /// <since_tizen> 11 </since_tizen>
         public void SetMotionData(MotionData motionData)
         {
             Interop.Model.SetMotionData(SwigCPtr, MotionData.getCPtr(motionData));
index 52ffc74..2c35416 100755 (executable)
@@ -118,5 +118,109 @@ namespace Tizen.NUI.Scene3D
                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             }
         }
+
+        /// <summary>
+        /// Make the light enable shadow for this light or not.
+        /// NUI.Scene3D generates shadow by using shadow map.
+        /// For the Directional Light, the shadow map is created to cover view frustum of current selected camera.
+        /// This means that if the distance between the near and far planes is too large,
+        /// the shadow map has to cover an unnecessarily large area. This results in lower shadow quality.
+        /// </summary>
+        /// <remarks>
+        /// This light should be already turned on in the SceneView.
+        /// (When true) If there is previous light already enabled shadow in the SceneView, this function call is ignored.
+        /// (When false, and this light is currently used for shader)
+        /// If there are other lights those are turned on and shadow enabled, one of the light will be used for shadow automatically.
+        /// </remarks>
+        // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API)
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public bool IsShadowEnabled
+        {
+            get
+            {
+
+                bool isEnabled = Interop.Light.IsShadowEnabled(SwigCPtr);
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+                return isEnabled;
+            }
+            set
+            {
+                Interop.Light.EnableShadow(SwigCPtr, value);
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            }
+        }
+
+        /// <summary>
+        /// Make the shadow edge soften or not.
+        /// Basically the shadow is hard shadow that has sharp edge.
+        /// This method enables soft filtering to make the sharp edge to smoothing.
+        /// </summary>
+        /// <remarks>
+        /// This soft filtering requires expensive computation power.
+        /// </remarks>
+        // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API)
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public bool IsShadowSoftFilteringEnabled
+        {
+            get
+            {
+
+                bool isEnabled = Interop.Light.IsShadowSoftFilteringEnabled(SwigCPtr);
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+                return isEnabled;
+            }
+            set
+            {
+                Interop.Light.EnableShadowSoftFiltering(SwigCPtr, value);
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            }
+        }
+
+        /// <summary>
+        /// Sets and gets shadow intensity.
+        /// If the intensity is larger, the shadow area will be darker.
+        /// The intensity value is between [0, 1].
+        /// Default value is 0.5
+        /// </summary>
+        // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API)
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public float ShadowIntensity
+        {
+            get
+            {
+
+                float shadowIntensity = Interop.Light.GetShadowIntensity(SwigCPtr);
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+                return shadowIntensity;
+            }
+            set
+            {
+                Interop.Light.SetShadowIntensity(SwigCPtr, value);
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            }
+        }
+
+        /// <summary>
+        /// Sets and gets shadow bias.
+        /// Shadow bias is an offset value to remove shadow acne that is a visual artifact can be shown on the Shadow
+        /// Default value is 0.001
+        /// </summary>
+        // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API)
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public float ShadowBias
+        {
+            get
+            {
+
+                float shadowBias = Interop.Light.GetShadowBias(SwigCPtr);
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+                return shadowBias;
+            }
+            set
+            {
+                Interop.Light.SetShadowBias(SwigCPtr, value);
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            }
+        }
     }
 }
index 6769d07..26f8a4c 100644 (file)
@@ -26,8 +26,13 @@ namespace Tizen.NUI.Scene3D
     /// List of model motion definitions.
     /// Each motion has pair of <see cref="MotionIndex"/> and <see cref="MotionValue"/>.
     /// MotionIndex is abstract class that specify the target of motion.
-    /// MotionValue is target value of motion. It can be KeyFrames.
-    ///
+    /// MotionValue is destination value of target for the motion. It can be expressed with <see cref="Tizen.NUI.PropertyValue"/> or <see cref="Tizen.NUI.KeyFrames"/>.
+    /// </summary>
+    /// <remarks>
+    /// We don't check duplicated MotionIndex internally.
+    /// We don't check MotionValue type is matched with MotionIndex.
+    /// </remarks>
+    /// <example>
     /// We can generate list of motions by MotionIndex and MotionValue classes.
     ///
     /// <code>
@@ -47,7 +52,8 @@ namespace Tizen.NUI.Scene3D
     /// // Make MotionIndex with BlendShapeIndex
     /// motionData.Add(new BlendShapeIndex(new PropertyKey("nodeName"), new PropertyKey("blendShapeName")), motionData.GetValue(1u));
     /// </code>
-    ///
+    /// </example>
+    /// <example>
     /// We can request to load MotionData from file or buffer asynchronously.
     /// If load completed, <see cref="LoadCompleted"/> event will be invoked.
     /// If we try to load before LoadCompleted event invoked, previous load request cancel and only latest request loaded.
@@ -65,7 +71,8 @@ namespace Tizen.NUI.Scene3D
     ///     /// Do something.
     /// }
     /// </code>
-    ///
+    /// </example>
+    /// <example>
     /// We can generate animation of Scene3D.Model from MotionData class.
     /// Or, just set values.
     ///
@@ -77,12 +84,8 @@ namespace Tizen.NUI.Scene3D
     /// // Set values from loaded Model.
     /// model2.SetMotionData(motionData);
     /// </code>
-    /// </summary>
-    /// <remark>
-    /// We don't check duplicated MotionIndex internally.
-    /// We don't check MotionValue type is matched with MotionIndex.
-    /// </remark>
-    [EditorBrowsable(EditorBrowsableState.Never)]
+    /// </example>
+    /// <since_tizen> 11 </since_tizen>
     public class MotionData : BaseHandle
     {
         private EventHandler loadCompletedEventHandler;
@@ -91,9 +94,9 @@ namespace Tizen.NUI.Scene3D
         private delegate void LoadCompletedCallbackType(IntPtr motionData);
 
         /// <summary>
-        /// Create an initialized motion data.
+        /// Create an initialized, empty motion data.
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public MotionData() : this(Interop.MotionData.MotionDataNew(), true)
         {
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
@@ -102,9 +105,9 @@ namespace Tizen.NUI.Scene3D
         /// <summary>
         /// Create an initialized motion data with duration.
         /// </summary>
-        /// <param name="durationMilliSeconds">Duration of this motion data when it be generated as Animation in milliseconds.</param>
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        public MotionData(int durationMilliSeconds) : this(Interop.MotionData.MotionDataNew(MilliSecondsToSeconds(durationMilliSeconds)), true)
+        /// <param name="durationMilliseconds">Duration of an Animation generated from this motion data, in milliseconds.</param>
+        /// <since_tizen> 11 </since_tizen>
+        public MotionData(int durationMilliseconds) : this(Interop.MotionData.MotionDataNew(MillisecondsToSeconds(durationMilliseconds)), true)
         {
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
@@ -113,7 +116,7 @@ namespace Tizen.NUI.Scene3D
         /// Copy constructor.
         /// </summary>
         /// <param name="motionData">Source object to copy.</param>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public MotionData(MotionData motionData) : this(Interop.MotionData.NewMotionData(MotionData.getCPtr(motionData)), true)
         {
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
@@ -136,26 +139,26 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Get or set the duration of this motion data  in milliseconds.
+        /// Get or set the duration of this motion data in milliseconds.
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public int Duration
         {
             get
             {
-                return SecondsToMilliSeconds(GetDuration());
+                return SecondsToMilliseconds(GetDuration());
             }
             set
             {
-                SetDuration(MilliSecondsToSeconds(value));
+                SetDuration(MillisecondsToSeconds(value));
             }
         }
 
         /// <summary>
-        /// Get the number of MotionIndex / MotionValue pair list what this hold.
+        /// Get the number of contained MotionIndex / MotionValue pair what this hold.
         /// </summary>
-        /// <returns>The number of motions what this hold.</returns>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <returns>The number of contained motions.</returns>
+        /// <since_tizen> 11 </since_tizen>
         public uint GetMotionCount()
         {
             uint ret = Interop.MotionData.GetMotionCount(SwigCPtr);
@@ -164,11 +167,11 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Append pair of MotionIndex and MotionValue end of list.
+        /// Append pair of MotionIndex and MotionValue to the list.
         /// </summary>
         /// <param name="index">MotionIndex to be added</param>
         /// <param name="value">MotionValue to be added</param>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public void Add(MotionIndex index, MotionValue value)
         {
             Interop.MotionData.Add(SwigCPtr, MotionIndex.getCPtr(index), MotionValue.getCPtr(value));
@@ -176,11 +179,11 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Get MotionIndex at index'th. null if invalid index inputed
+        /// Get MotionIndex at position, or null if invalid index was given.
         /// </summary>
         /// <param name="index">The index of motion data list</param>
-        /// <returns>The index'th MotionIndex. Or empty handle that doesn't have body</returns>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <returns>The MotionIndex at position. Or null.</returns>
+        /// <since_tizen> 11 </since_tizen>
         public MotionIndex GetIndex(uint index)
         {
             IntPtr cPtr = Interop.MotionData.GetIndex(SwigCPtr, index);
@@ -198,15 +201,21 @@ namespace Tizen.NUI.Scene3D
                 handle = new HandleRef(null, IntPtr.Zero);
             }
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+
+            if (!ret.HasBody())
+            {
+                ret.Dispose();
+                ret = null;
+            }
             return ret;
         }
 
         /// <summary>
-        /// Get MotionValue at index'th. null if invalid index inputed
+        /// Get MotionValue at position, or null if invalid index was given.
         /// </summary>
         /// <param name="index">The index of motion data list</param>
-        /// <returns>The index'th MotionValue. Or empty handle that doesn't have body</returns>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <returns>The MotionValue at position. Or null.</returns>
+        /// <since_tizen> 11 </since_tizen>
         public MotionValue GetValue(uint index)
         {
             IntPtr cPtr = Interop.MotionData.GetValue(SwigCPtr, index);
@@ -224,22 +233,29 @@ namespace Tizen.NUI.Scene3D
                 handle = new HandleRef(null, IntPtr.Zero);
             }
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+
+            if (!ret.HasBody())
+            {
+                ret.Dispose();
+                ret = null;
+            }
             return ret;
         }
 
         /// <summary>
         /// Load motion capture animation.
-        /// Scale is additional scale factor of motion capture animation. It is possible that
-        /// Model's scale may not matched with motion capture animation scale.
-        /// If scale is null, default use as Vector3.ONE
         /// We support bvh format.
-        /// After load completed, <see cref="LoadCompleted"/> event will be invoked.
+        /// After load completes, <see cref="LoadCompleted"/> event will be invoked.
         /// </summary>
+        /// <remarks>
+        /// Scale is additional scale factor of motion capture animation. It is possible that
+        /// Model's scale may not match with motion capture animation scale.
+        /// If scale is null, default value will be used: <cref name="Vector3.ONE"/>
+        /// </remarks>
         /// <param name="motionCaptureFilename">Name of motion capture format file.</param>
         /// <param name="scale">Scale value of motion capture animation match with model.</param>
         /// <param name="synchronousLoad">Load synchronously or not. Default is async load.</param>
-        // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API)
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public void LoadMotionCaptureAnimation(string motionCaptureFilename, Vector3 scale = null, bool synchronousLoad = false)
         {
             Interop.MotionData.LoadMotionCaptureAnimation(SwigCPtr, motionCaptureFilename, Vector3.getCPtr(scale), synchronousLoad);
@@ -247,18 +263,19 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Load motion capture animation.
-        /// Scale is additional scale factor of motion capture animation. It is possible that
-        /// Model's scale may not matched with motion capture animation scale.
-        /// If scale is null, default use as Vector3.ONE
+        /// Load motion capture animation from string.
         /// We support bvh format.
-        /// After load completed, <see cref="LoadCompleted"/> event will be invoked.
+        /// After load completes, <see cref="LoadCompleted"/> event will be invoked.
         /// </summary>
-        /// <param name="motionCaptureBuffer">Contents of motion capture format file.</param>
+        /// <remarks>
+        /// Scale is additional scale factor of motion capture animation. It is possible that
+        /// Model's scale may not match with motion capture animation scale.
+        /// If scale is null, default value will be used: <cref name="Vector3.ONE"/>
+        /// </remarks>
+        /// <param name="motionCaptureBuffer">Contents of motion capture format string.</param>
         /// <param name="scale">Scale value of motion capture animation match with model.</param>
         /// <param name="synchronousLoad">Load synchronously or not. Default is async load.</param>
-        // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API)
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public void LoadMotionCaptureAnimationFromBuffer(string motionCaptureBuffer, Vector3 scale = null, bool synchronousLoad = false)
         {
             Interop.MotionData.LoadMotionCaptureAnimationFromBuffer(SwigCPtr, motionCaptureBuffer, motionCaptureBuffer.Length, Vector3.getCPtr(scale), synchronousLoad);
@@ -271,8 +288,7 @@ namespace Tizen.NUI.Scene3D
         /// </summary>
         /// <param name="blendShapeFilename">Name of json format file what we predefined.</param>
         /// <param name="synchronousLoad">Load synchronously or not. Default is async load.</param>
-        // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API)
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public void LoadBlendShapeAnimation(string blendShapeFilename, bool synchronousLoad = false)
         {
             Interop.MotionData.LoadBlendShapeAnimation(SwigCPtr, blendShapeFilename, synchronousLoad);
@@ -285,8 +301,7 @@ namespace Tizen.NUI.Scene3D
         /// </summary>
         /// <param name="blendShapeBuffer">Contents of json format file what we predefined.</param>
         /// <param name="synchronousLoad">Load synchronously or not. Default is async load.</param>
-        // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API)
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public void LoadBlendShapeAnimationFromBuffer(string blendShapeBuffer, bool synchronousLoad = false)
         {
             Interop.MotionData.LoadBlendShapeAnimationFromBuffer(SwigCPtr, blendShapeBuffer, blendShapeBuffer.Length, synchronousLoad);
@@ -297,7 +312,7 @@ namespace Tizen.NUI.Scene3D
         /// LoadCompleted event.
         /// It will be invoked only for latest load request.
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public event EventHandler LoadCompleted
         {
             add
@@ -331,9 +346,9 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Clear all inputed values.
+        /// Removes all stored motions.
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public void Clear()
         {
             Interop.MotionData.Clear(SwigCPtr);
@@ -353,12 +368,12 @@ namespace Tizen.NUI.Scene3D
             return ret;
         }
 
-        private static float MilliSecondsToSeconds(int millisec)
+        private static float MillisecondsToSeconds(int millisec)
         {
             return (float)millisec / 1000.0f;
         }
 
-        private static int SecondsToMilliSeconds(float sec)
+        private static int SecondsToMilliseconds(float sec)
         {
             return (int)(sec * 1000);
         }
index de59586..3455953 100644 (file)
@@ -26,9 +26,11 @@ namespace Tizen.NUI.Scene3D
     /// Specialized <see cref="MotionIndex"/> to control blend shape.
     /// We can control the blend shape by index (when we set BlendShapeId as IndexKey),
     /// or by name (when we set BlendShapeId as StringKey).
-    ///
+    /// </summary>
+    /// <remarks>
     /// <see cref="MotionValue"/> should be float type.
-    ///
+    /// </remarks>
+    /// <example>
     /// <code>
     /// BlendShapeIndex blendShapeIndex0 = new BlendShapeIndex(new PropertyKey("nodeName"), new PropertyKey(0u));
     /// BlendShapeIndex blendShapeIndex1 = new BlendShapeIndex(new PropertyKey("nodeName"), new PropertyKey("Target_1"));
@@ -38,7 +40,8 @@ namespace Tizen.NUI.Scene3D
     /// blendShapeIndex2.ModelNodeId = new PropertyKey("nodeName");
     /// blendShapeIndex2.BlendShapeId = new PropertyKey("Target_2");
     /// </code>
-    ///
+    /// </example>
+    /// <example>
     /// Specially, if ModelNodeId is invalid and BlendShapeId is StringKey,
     /// It will control all ModelNode that has the inputed blend shape name.
     ///
@@ -50,42 +53,66 @@ namespace Tizen.NUI.Scene3D
     /// BlendShapeIndex blendShapeIndex0 = new BlendShapeIndex(new PropertyKey("node0"), new PropertyKey("Smile"));
     /// BlendShapeIndex blendShapeIndex1 = new BlendShapeIndex(new PropertyKey("node1"), new PropertyKey("Smile"));
     /// </code>
-    /// </summary>
-    [EditorBrowsable(EditorBrowsableState.Never)]
+    /// </example>
+    /// <since_tizen> 11 </since_tizen>
     public class BlendShapeIndex : MotionIndex
     {
         /// <summary>
         /// Create an initialized blend shape index.
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public BlendShapeIndex() : this(Interop.MotionIndex.BlendShapeIndexNew(), true)
         {
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
 
         /// <summary>
-        /// Create an initialized blend shape index with invalid node id, and input blend shape id.
+        /// Create an initialized blend shape index with invalid node ID, and given blend shape ID.
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <param name="blendShapeId">Blend shape ID for this motion index</param>
+        /// <since_tizen> 11 </since_tizen>
         public BlendShapeIndex(PropertyKey blendShapeId) : this(Interop.MotionIndex.BlendShapeIndexNew(PropertyKey.getCPtr(blendShapeId)), true)
         {
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
 
         /// <summary>
-        /// Create an initialized blend shape index with input node id, and input blend shape id.
+        /// Create an initialized blend shape index with given node ID and blend shape ID.
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <param name="modelNodeId">Node ID for this motion index</param>
+        /// <param name="blendShapeId">Blend shape ID for this motion index</param>
+        /// <since_tizen> 11 </since_tizen>
         public BlendShapeIndex(PropertyKey modelNodeId, PropertyKey blendShapeId) : this(Interop.MotionIndex.BlendShapeIndexNew(PropertyKey.getCPtr(modelNodeId), PropertyKey.getCPtr(blendShapeId)), true)
         {
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
 
         /// <summary>
+        /// Create an initialized blend shape index with invalid node ID, and given blend shape string ID.
+        /// </summary>
+        /// <param name="blendShapeName">Blend shape string ID for this motion index</param>
+        /// <since_tizen> 11 </since_tizen>
+        public BlendShapeIndex(string blendShapeName) : this(Interop.MotionIndex.BlendShapeIndexNew(PropertyKey.getCPtr(new PropertyKey(blendShapeName))), true)
+        {
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Create an initialized blend shape index with given node string ID and blend shape string ID.
+        /// </summary>
+        /// <param name="modelNodeName">Node string ID for this motion index</param>
+        /// <param name="blendShapeName">Blend shape string ID for this motion index</param>
+        /// <since_tizen> 11 </since_tizen>
+        public BlendShapeIndex(string modelNodeName, string blendShapeName) : this(Interop.MotionIndex.BlendShapeIndexNew(PropertyKey.getCPtr(new PropertyKey(modelNodeName)), PropertyKey.getCPtr(new PropertyKey(blendShapeName))), true)
+        {
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
         /// Copy constructor.
         /// </summary>
         /// <param name="blendShapeIndex">Source object to copy.</param>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public BlendShapeIndex(BlendShapeIndex blendShapeIndex) : this(Interop.MotionIndex.NewBlendShapeIndex(BlendShapeIndex.getCPtr(blendShapeIndex)), true)
         {
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
@@ -110,7 +137,7 @@ namespace Tizen.NUI.Scene3D
         /// <summary>
         /// The key of blend shape.
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public PropertyKey BlendShapeId
         {
             get
index 8d02401..641a72c 100644 (file)
@@ -24,32 +24,31 @@ namespace Tizen.NUI.Scene3D
 {
     /// <summary>
     /// Index of motion value. It will be used to specify the target of motion applied.
-    ///
     /// There are three kinds of MotionIndex : <see cref="MotionPropertyIndex"/>, <see cref="MotionTransformIndex"/> and <see cref="BlendShapeIndex"/>.
-    /// MotionPropertyIndex will be used for control whole kind of properties.
+    /// MotionPropertyIndex will be used for control all kind of properties.
     /// The <see cref="MotionData"/> loaded from files / buffer will have this kind of MotionIndex.
-    ///
     /// MotionTransformIndex will be used for control the <see cref="ModelNode"/>'s Position / Orientation / Scale, or each components.
     /// BlendShapeIndex will be used for control some blend shape animation.
-    ///
-    /// We can use this class below cases
-    /// - ModelNodeId (string key) , MotionTransformIndex         : Target is ModelNode's transform property
-    /// - ModelNodeId (int key)    , MotionTransformIndex         : Target is ModelNode's transform property [not implemented yet]
-    /// - ModelNodeId (string key) , BlendShapeIndex (int key)    : Target is ModelNode's BlendShape
-    /// - ModelNodeId (string key) , BlendShapeIndex (string key) : Target is ModelNode's BlendShape
-    /// - ModelNodeId (int key)    , BlendShapeIndex (int key)    : Target is ModelNode's BlendShape [not implemented yet]
-    /// - ModelNodeId (int key)    , BlendShapeIndex (string key) : Target is ModelNode's BlendShape [not implemented yet]
-    /// - ModelNodeId (null)       , BlendShapeIndex (string key) : Target is all ModelNode's BlendShape
-    /// All other cases are invalid.
     /// </summary>
-    [EditorBrowsable(EditorBrowsableState.Never)]
+    /// <remarks>
+    /// We can use below cases.
+    /// <table>
+    ///  <tr><td>ModelNodeId KeyType</td><td>MotionIndex class                                 </td><td>Description                             </td></tr>
+    ///  <tr><td>KeyType.String     </td><td>MotionTransformIndex                              </td><td>Target is ModelNode's transform property</td></tr>
+    ///  <tr><td>KeyType.String     </td><td>BlendShapeIndex (with BlendShapeId KeyType.Index) </td><td>Target is ModelNode's BlendShape        </td></tr>
+    ///  <tr><td>KeyType.String     </td><td>BlendShapeIndex (with BlendShapeId KeyType.String)</td><td>Target is ModelNode's BlendShape        </td></tr>
+    ///  <tr><td>(null)             </td><td>BlendShapeIndex (with BlendShapeId KeyType.String)</td><td>Target is all ModelNode's BlendShape    </td></tr>
+    /// </table>
+    /// All other cases are invalid.
+    /// </remarks>
+    /// <since_tizen> 11 </since_tizen>
     public class MotionIndex : BaseHandle
     {
         /// <summary>
         /// Copy constructor.
         /// </summary>
         /// <param name="motionIndex">Source object to copy.</param>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public MotionIndex(MotionIndex motionIndex) : this(Interop.MotionIndex.NewMotionIndex(MotionIndex.getCPtr(motionIndex)), true)
         {
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
@@ -72,9 +71,9 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// The id of ModelNode. If you want to apply to all ModelNodes who has BlendShape string, let this value as null.
+        /// The ID of ModelNode. If you want to apply to all ModelNodes who has BlendShape string, assign null.
         /// </summary>
-         [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public PropertyKey ModelNodeId
         {
             get
index f892c35..4d30b4a 100644 (file)
@@ -23,7 +23,7 @@ using Tizen.NUI;
 namespace Tizen.NUI.Scene3D
 {
     /// <summary>
-    /// Basic <see cref="MotionIndex"/> to control Dali's Property.
+    /// Basic <see cref="MotionIndex"/> to control Property.
     /// It can control more general case.
     /// </summary>
     /// <example>
@@ -42,32 +42,45 @@ namespace Tizen.NUI.Scene3D
     ///
     /// </code>
     /// </example>
-    [EditorBrowsable(EditorBrowsableState.Never)]
+    /// <since_tizen> 11 </since_tizen>
     public class MotionPropertyIndex : MotionIndex
     {
         /// <summary>
-        /// Create an initialized blend shape index.
+        /// Create an initialized motion property index.
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public MotionPropertyIndex() : this(Interop.MotionIndex.MotionPropertyIndexNew(), true)
         {
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
 
         /// <summary>
-        /// Create an initialized blend shape index with input node id, and property id.
+        /// Create an initialized motion property index with given node ID and property ID.
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <param name="modelNodeId">Node ID for this motion index</param>
+        /// <param name="propertyId">Property ID for this motion index</param>
+        /// <since_tizen> 11 </since_tizen>
         public MotionPropertyIndex(PropertyKey modelNodeId, PropertyKey propertyId) : this(Interop.MotionIndex.MotionPropertyIndexNew(PropertyKey.getCPtr(modelNodeId), PropertyKey.getCPtr(propertyId)), true)
         {
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
 
         /// <summary>
+        /// Create an initialized motion property index with given node string ID and property string ID.
+        /// </summary>
+        /// <param name="modelNodeName">Node string ID for this motion index</param>
+        /// <param name="propertyName">Property string ID for this motion index</param>
+        /// <since_tizen> 11 </since_tizen>
+        public MotionPropertyIndex(string modelNodeName, string propertyName) : this(Interop.MotionIndex.MotionPropertyIndexNew(PropertyKey.getCPtr(new PropertyKey(modelNodeName)), PropertyKey.getCPtr(new PropertyKey(propertyName))), true)
+        {
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
         /// Copy constructor.
         /// </summary>
         /// <param name="motionPropertyIndex">Source object to copy.</param>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public MotionPropertyIndex(MotionPropertyIndex motionPropertyIndex) : this(Interop.MotionIndex.NewMotionPropertyIndex(MotionPropertyIndex.getCPtr(motionPropertyIndex)), true)
         {
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
@@ -92,7 +105,7 @@ namespace Tizen.NUI.Scene3D
         /// <summary>
         /// The key of property
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public PropertyKey PropertyId
         {
             get
index 930df04..b9c5a0d 100644 (file)
@@ -24,11 +24,12 @@ namespace Tizen.NUI.Scene3D
 {
     /// <summary>
     /// Specialized <see cref="MotionIndex"/> to control transform.
-    /// It will be used when app developer don't care about Property index list,
+    /// It will be used when app developer doesn't care about Property index list,
     /// but want to change the transform properties anyway fast enough.
-    ///
-    /// Each TransformTypes has their own matched <see cref="MotionValue"/> type.
     /// </summary>
+    /// <remarks>
+    /// Each TransformTypes has their own matched <see cref="MotionValue"/> type.
+    /// </remarks>
     /// <example>
     /// <code>
     /// MotionTransformIndex position = new MotionTransformIndex(new PropertyKey("nodeName"), MotionTransformIndex.TransformTypes.Position);
@@ -39,101 +40,113 @@ namespace Tizen.NUI.Scene3D
     /// orientation.TransformType = MotionTransformIndex.TransformTypes.Orientation;
     /// </code>
     /// </example>
-    [EditorBrowsable(EditorBrowsableState.Never)]
+    /// <since_tizen> 11 </since_tizen>
     public class MotionTransformIndex : MotionIndex
     {
         /// <summary>
-        /// The list of component types what this MotionIndex can control.
+        /// The list of transform property types what this MotionTransformIndex can control.
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessage("Naming", "CA1717:Only FlagsAttribute enums should have plural names")]
+        /// <since_tizen> 11 </since_tizen>
         public enum TransformTypes
         {
             /// <summary>
             /// Invalid type.
             /// </summary>
-            [EditorBrowsable(EditorBrowsableState.Never)]
+            /// <since_tizen> 11 </since_tizen>
             Invalid = -1,
 
             /// <summary>
             /// The position of ModelNode. MotionValue should be Vector3.
             /// </summary>
-            [EditorBrowsable(EditorBrowsableState.Never)]
+            /// <since_tizen> 11 </since_tizen>
             Position = 0,
 
             /// <summary>
             /// The x position of ModelNode. MotionValue should be float.
             /// </summary>
-            [EditorBrowsable(EditorBrowsableState.Never)]
+            /// <since_tizen> 11 </since_tizen>
             PositionX,
 
             /// <summary>
             /// The y position of ModelNode. MotionValue should be float.
             /// </summary>
-            [EditorBrowsable(EditorBrowsableState.Never)]
+            /// <since_tizen> 11 </since_tizen>
             PositionY,
 
             /// <summary>
             /// The z position of ModelNode. MotionValue should be float.
             /// </summary>
-            [EditorBrowsable(EditorBrowsableState.Never)]
+            /// <since_tizen> 11 </since_tizen>
             PositionZ,
 
             /// <summary>
             /// The orientation of ModelNode. MotionValue should be Rotation.
             /// </summary>
-            [EditorBrowsable(EditorBrowsableState.Never)]
+            /// <since_tizen> 11 </since_tizen>
             Orientation,
 
             /// <summary>
             /// The scale of ModelNode. MotionValue should be Vector3.
             /// </summary>
-            [EditorBrowsable(EditorBrowsableState.Never)]
+            /// <since_tizen> 11 </since_tizen>
             Scale,
 
             /// <summary>
             /// The x scale of ModelNode. MotionValue should be float.
             /// </summary>
-            [EditorBrowsable(EditorBrowsableState.Never)]
+            /// <since_tizen> 11 </since_tizen>
             ScaleX,
 
             /// <summary>
             /// The y scale of ModelNode. MotionValue should be float.
             /// </summary>
-            [EditorBrowsable(EditorBrowsableState.Never)]
+            /// <since_tizen> 11 </since_tizen>
             ScaleY,
 
             /// <summary>
             /// The z scale of ModelNode. MotionValue should be float.
             /// </summary>
-            [EditorBrowsable(EditorBrowsableState.Never)]
+            /// <since_tizen> 11 </since_tizen>
             ScaleZ,
         }
 
         /// <summary>
-        /// Create an initialized blend shape index.
+        /// Create an initialized motion transform index.
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public MotionTransformIndex() : this(Interop.MotionIndex.MotionTransformIndexNew(), true)
         {
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
 
         /// <summary>
-        /// Create an initialized blend shape index with input node id, and transform type.
+        /// Create an initialized motion transform index with given node ID and transform type.
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <param name="modelNodeId">Node ID for this motion index</param>
+        /// <param name="transformType">Transform property type for this motion index</param>
+        /// <since_tizen> 11 </since_tizen>
         public MotionTransformIndex(PropertyKey modelNodeId, TransformTypes transformType) : this(Interop.MotionIndex.MotionTransformIndexNew(PropertyKey.getCPtr(modelNodeId), (int)transformType), true)
         {
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
 
         /// <summary>
+        /// Create an initialized motion transform index with given node string ID, and transform type.
+        /// </summary>
+        /// <param name="modelNodeName">Node string ID for this motion index</param>
+        /// <param name="transformType">Transform property type for this motion index</param>
+        /// <since_tizen> 11 </since_tizen>
+        public MotionTransformIndex(string modelNodeName, TransformTypes transformType) : this(Interop.MotionIndex.MotionTransformIndexNew(PropertyKey.getCPtr(new PropertyKey(modelNodeName)), (int)transformType), true)
+        {
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
         /// Copy constructor.
         /// </summary>
         /// <param name="motionTransformIndex">Source object to copy.</param>
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        public MotionTransformIndex(BlendShapeIndex motionTransformIndex) : this(Interop.MotionIndex.NewMotionTransformIndex(MotionTransformIndex.getCPtr(motionTransformIndex)), true)
+        /// <since_tizen> 11 </since_tizen>
+        public MotionTransformIndex(MotionTransformIndex motionTransformIndex) : this(Interop.MotionIndex.NewMotionTransformIndex(MotionTransformIndex.getCPtr(motionTransformIndex)), true)
         {
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
@@ -155,9 +168,9 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// The component type what this MotionIndex want to control.
+        /// The transform property type what this MotionIndex want to control.
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public TransformTypes TransformType
         {
             get
index f9a1627..45cb8da 100644 (file)
@@ -24,47 +24,46 @@ using Tizen.NUI;
 namespace Tizen.NUI.Scene3D
 {
     /// <summary>
-    /// This MotionValue be used for target value of each <see cref="MotionIndex"/>.
+    /// This MotionValue will be used for target value of each <see cref="MotionIndex"/>.
     /// We can get and set MotionValue as 2 types : PropertyValue and KeyFrames.
-    ///
-    /// Each types will be cross-converted internally.
-    /// For example, when we set PropertyValue, we can get KeyFrames with 2 frames, and target value is set.
     /// </summary>
     /// <remarks>
+    /// Each type will be cross-converted internally.
+    /// For example, when we set PropertyValue, we can get KeyFrames with 2 frames, and target value is set.
     /// The type of property should be matched with MotionIndex required.
     /// </remarks>
-    [EditorBrowsable(EditorBrowsableState.Never)]
+    /// <since_tizen> 11 </since_tizen>
     public class MotionValue : BaseHandle
     {
         /// <summary>
         /// Determine whether current stored value is PropertyValue, or KeyFrames.
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public enum ValueType
         {
             /// <summary>
             /// Value is null, or invalid class.
             /// </summary>
-            [EditorBrowsable(EditorBrowsableState.Never)]
+            /// <since_tizen> 11 </since_tizen>
             Invalid = -1,
 
             /// <summary>
             /// Value is PropertyValue.
             /// </summary>
-            [EditorBrowsable(EditorBrowsableState.Never)]
+            /// <since_tizen> 11 </since_tizen>
             Property = 0,
 
             /// <summary>
             /// Value is KeyFrames.
             /// </summary>
-            [EditorBrowsable(EditorBrowsableState.Never)]
+            /// <since_tizen> 11 </since_tizen>
             KeyFrames,
         }
 
         /// <summary>
-        /// Create an initialized motion value with invalid.
+        /// Create an initialized invalid motion value.
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public MotionValue() : this(Interop.MotionValue.MotionValueNew(), true)
         {
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
@@ -73,7 +72,8 @@ namespace Tizen.NUI.Scene3D
         /// <summary>
         /// Create an initialized motion value with PropertyValue.
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <param name="propertyValue">PropertyValue for this motion value</param>
+        /// <since_tizen> 11 </since_tizen>
         public MotionValue(PropertyValue propertyValue) : this(Interop.MotionValue.MotionValueNewPropertyValue(PropertyValue.getCPtr(propertyValue)), true)
         {
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
@@ -82,7 +82,8 @@ namespace Tizen.NUI.Scene3D
         /// <summary>
         /// Create an initialized motion value with KeyFrames.
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <param name="keyFrames">KeyFrameValue for this motion value</param>
+        /// <since_tizen> 11 </since_tizen>
         public MotionValue(KeyFrames keyFrames) : this(Interop.MotionValue.MotionValueNewKeyFrames(KeyFrames.getCPtr(keyFrames)), true)
         {
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
@@ -92,7 +93,7 @@ namespace Tizen.NUI.Scene3D
         /// Copy constructor.
         /// </summary>
         /// <param name="motionValue">Source object to copy.</param>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public MotionValue(MotionValue motionValue) : this(Interop.MotionValue.NewMotionValue(MotionValue.getCPtr(motionValue)), true)
         {
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
@@ -116,10 +117,10 @@ namespace Tizen.NUI.Scene3D
 
 
         /// <summary>
-        /// Get or set the value as PropertyValue type.
-        /// If ValueType is ValueType.KeyFrames, it will return last value of stored KeyFrames.
+        /// Get or set the PropertyValue.
+        /// If Type is ValueType.KeyFrames, getter will return last PropertyValue instance of stored KeyFrames.
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public PropertyValue PropertyValue
         {
             get
@@ -133,10 +134,10 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Get or set the value as KeyFrames type.
-        /// If ValueType is ValueType.PropertyValue, it will create new KeyFrames by stored PropertyValue.
+        /// Get or set the KeyFrames.
+        /// If Type is ValueType.PropertyValue, getter will create new KeyFrames from stored PropertyValue.
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public KeyFrames KeyFramesValue
         {
             get
@@ -150,9 +151,9 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Get the type of value what we set.
+        /// Get the type of value which we set.
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public ValueType Type
         {
             get
@@ -162,9 +163,9 @@ namespace Tizen.NUI.Scene3D
         }
 
         /// <summary>
-        /// Invalidate the value what we set.
+        /// Invalidate the value which we set.
         /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
+        /// <since_tizen> 11 </since_tizen>
         public void Invalidate()
         {
             Interop.MotionValue.Clear(SwigCPtr);
diff --git a/src/Tizen.NUI/src/internal/Common/SystemFontSizeChangedManager.cs b/src/Tizen.NUI/src/internal/Common/SystemFontSizeChangedManager.cs
new file mode 100644 (file)
index 0000000..52db736
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2023 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+extern alias TizenSystemSettings;
+using TizenSystemSettings.Tizen.System;
+
+using System;
+
+namespace Tizen.NUI
+{
+    /// <summary>
+    /// A static class which adds user handler to the SystemSettings.FontSizeChanged event.
+    /// This class also adds user handler to the last of the SystemSettings.FontSizeChanged event.
+    /// </summary>
+    internal static class SystemFontSizeChangedManager
+    {
+        static SystemFontSizeChangedManager()
+        {
+            SystemSettings.FontSizeChanged += SystemFontSizeChanged;
+        }
+
+        /// <summary>
+        /// The handler invoked last after all handlers added to the SystemSettings.FontSizeChanged event are invoked.
+        /// </summary>
+        public static event EventHandler<FontSizeChangedEventArgs> Finished;
+
+        /// <summary>
+        /// Adds the given handler to the SystemSettings.FontSizeChanged event.
+        /// </summary>
+        /// <param name="handler">A handler to be added to the event</param>
+        public static void Add(EventHandler<FontSizeChangedEventArgs> handler)
+        {
+            proxy.Add(handler);
+        }
+
+        /// <summary>
+        /// Removes the given handler from the SystemSettings.FontSizeChanged event.
+        /// </summary>
+        /// <param name="handler">A handler to be added to the event</param>
+        public static void Remove(EventHandler<FontSizeChangedEventArgs> handler)
+        {
+            proxy.Remove(handler);
+        }
+
+        private static void SystemFontSizeChanged(object sender, FontSizeChangedEventArgs args)
+        {
+            proxy.Invoke(sender, args);
+            Finished?.Invoke(sender, args);
+        }
+
+        private static WeakEvent<EventHandler<FontSizeChangedEventArgs>> proxy = new WeakEvent<EventHandler<FontSizeChangedEventArgs>>();
+    }
+}
\ No newline at end of file
index 4b6f538..c5b0c4e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright(c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright(c) 2023 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,21 +20,53 @@ using System.ComponentModel;
 
 namespace Tizen.NUI.Accessibility
 {
+    /// <summary>
+    /// Interface representing objects which can store editable texts.
+    /// </summary>
     [EditorBrowsable(EditorBrowsableState.Never)]
     public interface IAtspiEditableText : IAtspiText
     {
+        /// <summary>
+        /// Copies text in range to system clipboard.
+        /// </summary>
+        /// <param name="startPosition"> The index of first character </param>
+        /// <param name="endPosition"> The index of first character after the last one expected </param>
+        /// <returns> True on success, false otherwise </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         bool AccessibilityCopyText(int startPosition, int endPosition);
 
+        /// <summary>
+        /// Cuts text in range to system clipboard.
+        /// </summary>
+        /// <param name="startPosition"> The index of first character </param>
+        /// <param name="endPosition"> The index of first character after the last one expected </param>
+        /// <returns> True on success, false otherwise </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         bool AccessibilityCutText(int startPosition, int endPosition);
 
+        /// <summary>
+        /// Inserts text at startPosition.
+        /// </summary>
+        /// <param name="startPosition"> The index of first character </param>
+        /// <param name="text"> The text content </param>
+        /// <returns> True on success, false otherwise </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         bool AccessibilityInsertText(int startPosition, string text);
 
+        /// <summary>
+        /// Replaces text with content.
+        /// </summary>
+        /// <param name="newContents"> The text content </param>
+        /// <returns> True on success, false otherwise </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         bool AccessibilitySetTextContents(string newContents);
 
+        /// <summary>
+        /// Deletes text in range.
+        /// </summary>
+        /// <param name="startPosition"> The index of first character </param>
+        /// <param name="endPosition"> The index of first character after the last one expected </param>
+        /// <returns> True on success, false otherwise </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         bool AccessibilityDeleteText(int startPosition, int endPosition);
     }
index 2e57407..38f1a66 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright(c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright(c) 2023 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,30 +21,73 @@ using Tizen.NUI.BaseComponents;
 
 namespace Tizen.NUI.Accessibility
 {
+    /// <summary>
+    /// Interface representing objects which can store a set of selected items.
+    /// </summary>
     [EditorBrowsable(EditorBrowsableState.Never)]
     public interface IAtspiSelection
     {
+        /// <summary>
+        /// Gets the number of selected children.
+        /// </summary>
+        /// <returns> The number of selected children (zero if none) </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         int AccessibilityGetSelectedChildrenCount();
 
+        /// <summary>
+        /// Gets a specific selected child.
+        /// </summary>
+        /// <remarks>
+        /// <c>selectedChildIndex</c> refers to the list of selected children, not the list of all children.
+        /// </remarks>
+        /// <param name="selectedChildIndex"> The index of the selected child </param>
+        /// <returns> The selected child or nullptr if index is invalid </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         View AccessibilityGetSelectedChild(int selectedChildIndex);
 
+        /// <summary>
+        /// Selects a child.
+        /// </summary>
+        /// <param name="childIndex"> The index of the child </param>
+        /// <returns> True on success, false otherwise </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         bool AccessibilitySelectChild(int childIndex);
 
+        /// <summary>
+        /// Deselects a selected child.
+        /// </summary>
+        /// <param name="selectedChildIndex"> The index of the selected child </param>
+        /// <returns> True on success, false otherwise </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         bool AccessibilityDeselectSelectedChild(int selectedChildIndex);
 
+        /// <summary>
+        /// Checks whether a child is selected.
+        /// </summary>
+        /// <param name="childIndex"> The index of the child </param>
+        /// <returns>< True if given child is selected, false otherwise /returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         bool AccessibilityIsChildSelected(int childIndex);
 
+        /// <summary>
+        /// Selects all children.
+        /// </summary>
+        /// <returns> True on success, false otherwise </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         bool AccessibilitySelectAll();
 
+        /// <summary>
+        /// Deselects all children.
+        /// </summary>
+        /// <returns> True on success, false otherwise </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         bool AccessibilityClearSelection();
 
+        /// <summary>
+        /// Deselects a child.
+        /// </summary>
+        /// <param name="childIndex"> The index of the child. </param>
+        /// <returns> True on success, false otherwise </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         bool AccessibilityDeselectChild(int childIndex);
     }
index 5aa7b7b..6d2303c 100644 (file)
@@ -22,72 +22,189 @@ using Tizen.NUI.BaseComponents;
 
 namespace Tizen.NUI.Accessibility
 {
+    /// <summary>
+    /// Interface representing a table.
+    /// </summary>
+    /// <remarks>
+    /// The selection methods extend the Selection interface, so both should be implemented by table and grid controls.
+    /// </remarks>
     [EditorBrowsable(EditorBrowsableState.Never)]
     public interface IAtspiTable
     {
+        /// <summary>
+        /// Gets the number of rows.
+        /// </summary>
+        /// <returns> The number of rows </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         int AccessibilityGetRowCount();
 
+        /// <summary>
+        /// Gets the number of columns.
+        /// </summary>
+        /// <returns> The number of columns </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         int AccessibilityGetColumnCount();
 
+        /// <summary>
+        /// Gets the number of selected rows.
+        /// </summary>
+        /// <returns> The number of selected rows </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         int AccessibilityGetSelectedRowCount();
 
+        /// <summary>
+        /// Gets the number of selected columns.
+        /// </summary>
+        /// <returns> The number of selected columns </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         int AccessibilityGetSelectedColumnCount();
 
+        /// <summary>
+        /// Gets the table's caption.
+        /// </summary>
+        /// <returns> The caption or null </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         View AccessibilityGetCaption();
 
+        /// <summary>
+        /// Gets the table's summary.
+        /// </summary>
+        /// <returns> The summary or null </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         View AccessibilityGetSummary();
 
+        /// <summary>
+        /// Gets the cell at the specified position.
+        /// </summary>
+        /// <param name="row"> Row number </param>
+        /// <param name="column"> Column number </param>
+        /// <returns> The cell or null </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         IAtspiTableCell AccessibilityGetCell(int row, int column);
 
+        /// <summary>
+        /// Gets the one-dimensional index of a cell.
+        /// </summary>
+        /// <remarks>
+        /// The returned index should be such that:
+        ///  <code>
+        ///   GetChildAtIndex(GetChildIndex(row, column)) == GetCell(row, column)
+        ///  </code>
+        /// </remarks>
+        /// <param name="row"> Row number </param>
+        /// <param name="column"> Column number </param>
+        /// <returns> The one-dimensional index </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         int AccessibilityGetChildIndex(int row, int column);
 
+        /// <summary>
+        /// Gets the position (row and column) of a cell.
+        /// </summary>
+        /// <param name="childIndex"> One-dimensional index of the cell </param>
+        /// <returns> A pair of integers (row index, column index) </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         Tuple<int, int> AccessibilityGetPositionByChildIndex(int childIndex);
 
+        /// <summary>
+        /// Gets the description of a row.
+        /// </summary>
+        /// <param name="row"> Row number </param>
+        /// <returns> The description of the row </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         string AccessibilityGetRowDescription(int row);
 
+        /// <summary>
+        /// Gets the description of a column.
+        /// </summary>
+        /// <param name="column"> Column number </param>
+        /// <returns> The description of the column </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         string AccessibilityGetColumnDescription(int column);
 
+        /// <summary>
+        /// Gets the header of a row.
+        /// </summary>
+        /// <param name="row"> Row number </param>
+        /// <returns> The row header or null </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         View AccessibilityGetRowHeader(int row);
 
+        /// <summary>
+        /// Gets the header of a column.
+        /// </summary>
+        /// <param name="column"> Column number </param>
+        /// <returns> The column header or null </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         View AccessibilityGetColumnHeader(int column);
 
+        /// <summary>
+        /// Gets all selected rows' numbers.
+        /// </summary>
+        /// <returns> Selected rows' numbers </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         IEnumerable<int> AccessibilityGetSelectedRows();
 
+        /// <summary>
+        /// Gets all selected columns' numbers.
+        /// </summary>
+        /// <returns> Selected columns' numbers </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         IEnumerable<int> AccessibilityGetSelectedColumns();
 
+        /// <summary>
+        /// Checks if a row is selected.
+        /// </summary>
+        /// <param name="row"> Row number </param>
+        /// <returns> True if the row is selected, false otherwise </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         bool AccessibilityIsRowSelected(int row);
 
+        /// <summary>
+        /// Checks if a column is selected.
+        /// </summary>
+        /// <param name="column"> Column number </param>
+        /// <returns> True if the column is selected, false otherwise </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         bool AccessibilityIsColumnSelected(int column);
 
+        /// <summary>
+        /// Checks if a cell is selected.
+        /// </summary>
+        /// <param name="row"> Row number of the cell </param>
+        /// <param name="column"> Column number of the cell </param>
+        /// <returns> True if the cell is selected, false otherwise </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         bool AccessibilityIsCellSelected(int row, int column);
 
+        /// <summary>
+        /// Selects a row.
+        /// </summary>
+        /// <param name="row"> Row number </param>
+        /// <returns> True on success, false otherwise </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         bool AccessibilityAddRowSelection(int row);
 
+        /// <summary>
+        /// Selects a column.
+        /// </summary>
+        /// <param name="column"> Column number </param>
+        /// <returns> True on success, false otherwise </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         bool AccessibilityAddColumnSelection(int column);
 
+        /// <summary>
+        /// Unselects a row.
+        /// </summary>
+        /// <param name="row"> Row number </param>
+        /// <returns> True on success, false otherwise </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         bool AccessibilityRemoveRowSelection(int row);
 
+        /// <summary>
+        /// Unselects a column.
+        /// </summary>
+        /// <param name="column"> Column number </param>
+        /// <returns> True on success, false otherwise </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         bool AccessibilityRemoveColumnSelection(int column);
     }
index 3dbc966..d70e11e 100644 (file)
@@ -20,18 +20,37 @@ using System.ComponentModel;
 
 namespace Tizen.NUI.Accessibility
 {
+    /// <summary>
+    /// Interface representing a table cell.
+    /// </summary>
     [EditorBrowsable(EditorBrowsableState.Never)]
     public interface IAtspiTableCell
     {
+        /// <summary>
+        /// Returns the table this cell belongs to.
+        /// </summary>
+        /// <returns> The table </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         IAtspiTable AccessibilityGetTable();
 
+        /// <summary>
+        /// Returns the position of this cell in the table.
+        /// </summary>
+        /// <returns> A pair of integers (row index, column index) </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         Tuple<int, int> AccessibilityGetCellPosition();
 
+        /// <summary>
+        /// Returns the number of rows occupied by this cell.
+        /// </summary>
+        /// <returns> The number of rows </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         int AccessibilityGetCellRowSpan();
 
+        /// <summary>
+        /// Returns the number of columns occupied by this cell.
+        /// </summary>
+        /// <returns> The number of columns </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         int AccessibilityGetCellColumnSpan();
     }
index e610b89..53e5337 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright(c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright(c) 2023 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,33 +21,94 @@ using Tizen.NUI.BaseComponents;
 
 namespace Tizen.NUI.Accessibility
 {
+    /// <summary>
+    /// Interface representing objects which can store immutable texts.
+    /// </summary>
     [EditorBrowsable(EditorBrowsableState.Never)]
     public interface IAtspiText
     {
+        /// <summary>
+        /// Gets stored text in given range.
+        /// </summary>
+        /// <param name="startOffset"> The index of first character </param>
+        /// <param name="endOffset"> The index of first character after the last one expected </param>
+        /// <returns> The substring of stored text </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         string AccessibilityGetText(int startOffset, int endOffset);
 
+        /// <summary>
+        /// Gets number of all stored characters.
+        /// </summary>
+        /// <returns> The number of characters </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         int AccessibilityGetCharacterCount();
 
+        /// <summary>
+        /// Gets the cursor offset.
+        /// </summary>
+        /// <returns> Value of cursor offset </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         int AccessibilityGetCursorOffset();
 
+        /// <summary>
+        /// Sets the cursor offset.
+        /// </summary>
+        /// <param name="offset"> Cursor offset </param>
+        /// <returns> True if successful </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         bool AccessibilitySetCursorOffset(int offset);
 
+        /// <summary>
+        /// Gets substring of stored text truncated in concrete gradation.
+        /// </summary>
+        /// <param name="offset"> The position in stored text </param>
+        /// <param name="boundary"> The enumeration describing text gradation </param>
+        /// <returns> Range structure containing acquired text and offsets in original string </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         AccessibilityRange AccessibilityGetTextAtOffset(int offset, AccessibilityTextBoundary boundary);
 
+        /// <summary>
+        /// Gets selected text.
+        /// </summary>
+        /// <remarks>
+        ///  Currently only one selection (i.e. with index = 0) is supported
+        /// </remarks>
+        /// <param name="selectionNumber"> The selection index </param>
+        /// <returns> Range structure containing acquired text and offsets in original string </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         AccessibilityRange AccessibilityGetSelection(int selectionNumber);
 
+        /// <summary>
+        /// Removes the whole selection.
+        /// </summary>
+        /// <remarks>
+        ///  Currently only one selection (i.e. with index = 0) is supported
+        /// </remarks>
+        /// <param name="selectionNumber"> The selection index </param>
+        /// <returns> True on success, false otherwise </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         bool AccessibilityRemoveSelection(int selectionNumber);
 
+        /// <summary>
+        /// Sets selected text.
+        /// </summary>
+        /// <remarks>
+        ///  Currently only one selection (i.e. with index = 0) is supported
+        /// </remarks>
+        /// <param name="selectionNumber"> The selection index </param>
+        /// <param name="startOffset"> The index of first character </param>
+        /// <param name="endOffset"> The index of first character after the last one expected </param>
+        /// <returns> True on success, false otherwise </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         bool AccessibilitySetSelection(int selectionNumber, int startOffset, int endOffset);
 
+        /// <summary>
+        /// Gets the bounding box for text within a range in text.
+        /// </summary>
+        /// <param name="startOffset"> The index of first character </param>
+        /// <param name="endOffset"> The index of first character after the last one expected </param>
+        /// <param name="coordType"> The enumeration with type of coordinate system </param>
+        /// <returns> Rectangle giving the position and size of the specified range of text </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         Rectangle AccessibilityGetRangeExtents(int startOffset, int endOffset, AccessibilityCoordinateType coordType);
     }
index a6fecb7..baa4bf8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright(c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright(c) 2023 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,9 +20,16 @@ using System.ComponentModel;
 
 namespace Tizen.NUI.Accessibility
 {
+    /// <summary>
+    /// Interface representing objects which can store numeric value.
+    /// </summary>
     [EditorBrowsable(EditorBrowsableState.Never)]
     public interface IAtspiValue
     {
+        /// <summary>
+        /// Gets the lowest possible value.
+        /// </summary>
+        /// <returns> The minimum value </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         double AccessibilityGetMinimum();
 
@@ -52,12 +59,25 @@ namespace Tizen.NUI.Accessibility
         [EditorBrowsable(EditorBrowsableState.Never)]
         string AccessibilityGetValueText();
 
+        /// <summary>
+        /// Gets the highest possible value.
+        /// </summary>
+        /// <returns> The highest value </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         double AccessibilityGetMaximum();
 
+        /// <summary>
+        /// Sets the current value.
+        /// </summary>
+        /// <param name="value"> The current value to set </param>
+        /// <returns> True if value could have been assigned, false otherwise </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         bool AccessibilitySetCurrent(double value);
 
+        /// <summary>
+        /// Gets the lowest increment that can be distinguished.
+        /// </summary>
+        /// <returns> The lowest increment </returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
         double AccessibilityGetMinimumIncrement();
     }
index 0ba45ac..85f6d98 100755 (executable)
@@ -35,7 +35,6 @@ namespace Tizen.NUI.BaseComponents
         static private string defaultStyleName = "Tizen.NUI.BaseComponents.TextEditor";
         static private string defaultFontFamily = "TizenSans";
         private static SystemFontTypeChanged systemFontTypeChanged = new SystemFontTypeChanged();
-        private static SystemFontSizeChanged systemFontSizeChanged = new SystemFontSizeChanged();
         private static SystemLocaleLanguageChanged systemLocaleLanguageChanged = new SystemLocaleLanguageChanged();
         private string textEditorTextSid = null;
         private string textEditorPlaceHolderTextSid = null;
@@ -2615,7 +2614,7 @@ namespace Tizen.NUI.BaseComponents
             {
                 try
                 {
-                    systemFontSizeChanged.Add(SystemSettingsFontSizeChanged);
+                    SystemFontSizeChangedManager.Add(SystemSettingsFontSizeChanged);
                     hasSystemFontSizeChanged = true;
                 }
                 catch (Exception e)
@@ -2632,7 +2631,7 @@ namespace Tizen.NUI.BaseComponents
             {
                 try
                 {
-                    systemFontSizeChanged.Remove(SystemSettingsFontSizeChanged);
+                    SystemFontSizeChangedManager.Remove(SystemSettingsFontSizeChanged);
                     hasSystemFontSizeChanged = false;
                 }
                 catch (Exception e)
index cc4871c..36f50b0 100755 (executable)
@@ -34,7 +34,6 @@ namespace Tizen.NUI.BaseComponents
         static private string defaultStyleName = "Tizen.NUI.BaseComponents.TextField";
         static private string defaultFontFamily = "TizenSans";
         private static SystemFontTypeChanged systemFontTypeChanged = new SystemFontTypeChanged();
-        private static SystemFontSizeChanged systemFontSizeChanged = new SystemFontSizeChanged();
         private static SystemLocaleLanguageChanged systemLocaleLanguageChanged = new SystemLocaleLanguageChanged();
         private string textFieldTextSid = null;
         private string textFieldPlaceHolderTextSid = null;
@@ -2623,7 +2622,7 @@ namespace Tizen.NUI.BaseComponents
             {
                 try
                 {
-                    systemFontSizeChanged.Add(SystemSettingsFontSizeChanged);
+                    SystemFontSizeChangedManager.Add(SystemSettingsFontSizeChanged);
                     hasSystemFontSizeChanged = true;
                 }
                 catch (Exception e)
@@ -2640,7 +2639,7 @@ namespace Tizen.NUI.BaseComponents
             {
                 try
                 {
-                    systemFontSizeChanged.Remove(SystemSettingsFontSizeChanged);
+                    SystemFontSizeChangedManager.Remove(SystemSettingsFontSizeChanged);
                     hasSystemFontSizeChanged = false;
                 }
                 catch (Exception e)
index 59b1b4f..91e3659 100755 (executable)
@@ -85,7 +85,6 @@ namespace Tizen.NUI.BaseComponents
         static TextLabel() { }
 
         private static SystemFontTypeChanged systemFontTypeChanged = new SystemFontTypeChanged();
-        private static SystemFontSizeChanged systemFontSizeChanged = new SystemFontSizeChanged();
         private static SystemLocaleLanguageChanged systemLocaleLanguageChanged = new SystemLocaleLanguageChanged();
         static private string defaultStyleName = "Tizen.NUI.BaseComponents.TextLabel";
         static private string defaultFontFamily = "BreezeSans";
@@ -1640,7 +1639,7 @@ namespace Tizen.NUI.BaseComponents
             {
                 try
                 {
-                    systemFontSizeChanged.Add(SystemSettingsFontSizeChanged);
+                    SystemFontSizeChangedManager.Add(SystemSettingsFontSizeChanged);
                     hasSystemFontSizeChanged = true;
                 }
                 catch (Exception e)
@@ -1657,7 +1656,7 @@ namespace Tizen.NUI.BaseComponents
             {
                 try
                 {
-                    systemFontSizeChanged.Remove(SystemSettingsFontSizeChanged);
+                    SystemFontSizeChangedManager.Remove(SystemSettingsFontSizeChanged);
                     hasSystemFontSizeChanged = false;
                 }
                 catch (Exception e)
index cf4892c..f795191 100755 (executable)
@@ -719,13 +719,14 @@ namespace Tizen.NUI.BaseComponents
                 {
                     if (this.IsDisposeQueued)
                     {
-                        var process = global::System.Diagnostics.Process.GetCurrentProcess().Id;
+                        using var process = global::System.Diagnostics.Process.GetCurrentProcess();
+                        var processId = process.Id;
                         var thread = global::System.Threading.Thread.CurrentThread.ManagedThreadId;
                         var me = this.GetType().FullName;
 
                         //in this case, the View object is ready to be disposed waiting on DisposeQueue, so event callback should not be invoked!
                         Tizen.Log.Error("NUI", "in this case, the View object is ready to be disposed waiting on DisposeQueue, so event callback should not be invoked! just return here! \n" +
-                            $"process:{process} thread:{thread}, isDisposed:{this.Disposed}, isDisposeQueued:{this.IsDisposeQueued}, me:{me}\n");
+                            $"process:{processId} thread:{thread}, isDisposed:{this.Disposed}, isDisposeQueued:{this.IsDisposeQueued}, me:{me}\n");
                         return;
                     }
                 }
@@ -742,26 +743,28 @@ namespace Tizen.NUI.BaseComponents
                 {
                     if (keyInputFocusLostEventHandler != null)
                     {
-                        var process = global::System.Diagnostics.Process.GetCurrentProcess().Id;
+                        using var process = global::System.Diagnostics.Process.GetCurrentProcess();
+                        var processId = process.Id;
                         var thread = global::System.Threading.Thread.CurrentThread.ManagedThreadId;
                         var me = this.GetType().FullName;
 
                         throw new ObjectDisposedException(nameof(SwigCPtr), $"Error! NUI's native dali object is already disposed. " +
                             $"OR the native dali object handle of NUI becomes null! \n" +
-                            $" process:{process} thread:{thread}, isDisposed:{this.Disposed}, isDisposeQueued:{this.IsDisposeQueued}, me:{me}\n");
+                            $" process:{processId} thread:{thread}, isDisposed:{this.Disposed}, isDisposeQueued:{this.IsDisposeQueued}, me:{me}\n");
                     }
                 }
                 else
                 {
                     if (this.IsDisposeQueued)
                     {
-                        var process = global::System.Diagnostics.Process.GetCurrentProcess().Id;
+                        using var process = global::System.Diagnostics.Process.GetCurrentProcess();
+                        var processId = process.Id;
                         var thread = global::System.Threading.Thread.CurrentThread.ManagedThreadId;
                         var me = this.GetType().FullName;
 
                         //in this case, the View object is ready to be disposed waiting on DisposeQueue, so event callback should not be invoked!
                         Tizen.Log.Error("NUI", "in this case, the View object is ready to be disposed waiting on DisposeQueue, so event callback should not be invoked! just return here! \n" +
-                            $"process:{process} thread:{thread}, isDisposed:{this.Disposed}, isDisposeQueued:{this.IsDisposeQueued}, me:{me}\n");
+                            $"process:{processId} thread:{thread}, isDisposed:{this.Disposed}, isDisposeQueued:{this.IsDisposeQueued}, me:{me}\n");
                         return;
                     }
                 }
index 958059e..0a2601c 100755 (executable)
@@ -38,11 +38,14 @@ namespace Tizen.NUI
         private Dictionary<View, InternalDragAndDropEventHandler> targetEventDictionary = new Dictionary<View, InternalDragAndDropEventHandler>();
         private View mShadowView;
         private Window mDragWindow;
-        private int shadowWidth = 100;
-        private int shadowHeight = 100;
+        private int shadowWidth;
+        private int shadowHeight;
 
         private bool initDrag = false;
 
+        private const int MinDragWindowWidth = 100;
+        private const int MinDragWindowHeight = 100;
+
         private DragAndDrop() : this(Interop.DragAndDrop.New(), true)
         {
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
@@ -107,15 +110,14 @@ namespace Tizen.NUI
             shadowWidth = (int)shadowView.Size.Width;
             shadowHeight = (int)shadowView.Size.Height;
 
-            // Prevents shadowView size from being smaller than 100 pixel
-            if (shadowView.Size.Width < 100)
+            if (shadowView.Size.Width < MinDragWindowWidth)
             {
-                shadowWidth = 100;
+                shadowWidth = MinDragWindowWidth;
             }
 
-            if (shadowView.Size.Height < 100)
+            if (shadowView.Size.Height < MinDragWindowHeight)
             {
-                shadowHeight = 100;
+                shadowHeight = MinDragWindowHeight;
             }
 
             mDragWindow = new Window("DragWindow", new Rectangle(-shadowWidth, -shadowHeight, shadowWidth, shadowHeight), true)