[NUI] Manage LayerChildren list of window 13/160913/2 5.0.0-preview1-00384
authorhuiyu,eun <huiyu.eun@samsung.com>
Mon, 20 Nov 2017 07:26:37 +0000 (16:26 +0900)
committerhuiyu,eun <huiyu.eun@samsung.com>
Mon, 20 Nov 2017 13:42:11 +0000 (22:42 +0900)
Modified
- Layer:GetDpeth(), Raise(), Lower(), RaiseToTop(), LowerToBottom()
- Window:GetLayer()

Change-Id: I26fa053cd274cf0e436b742a2103c54a8d29ea73
Signed-off-by: huiyu,eun <huiyu.eun@samsung.com>
src/Tizen.NUI/src/public/Layer.cs
src/Tizen.NUI/src/public/Window.cs

index d4d784a..7987a4e 100755 (executable)
@@ -228,9 +228,16 @@ namespace Tizen.NUI
 
         internal uint GetDepth()
         {
-            uint ret = NDalicPINVOKE.Layer_GetDepth(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
+            var parentChildren = Window.Instance.LayersChildren;
+            if(parentChildren != null)
+            {
+                int idx = parentChildren.IndexOf(this);
+                if (idx >= 0)
+                {
+                    return Convert.ToUInt32(idx); ;
+                }
+            }
+            return 0u;
         }
 
         /// <summary>
@@ -239,8 +246,20 @@ namespace Tizen.NUI
         /// <since_tizen> 3 </since_tizen>
         public void Raise()
         {
-            NDalicPINVOKE.Layer_Raise(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            var parentChildren = Window.Instance.LayersChildren;
+            if (parentChildren != null)
+            {
+                int currentIdx = parentChildren.IndexOf(this);
+
+                if (currentIdx != parentChildren.Count - 1)
+                {
+                    RaiseAbove(parentChildren[currentIdx + 1]);
+
+                    Layer temp = parentChildren[currentIdx + 1];
+                    parentChildren[currentIdx + 1] = this;
+                    parentChildren[currentIdx] = temp;
+                }
+            }
         }
 
         /// <summary>
@@ -249,8 +268,21 @@ namespace Tizen.NUI
         /// <since_tizen> 3 </since_tizen>
         public void Lower()
         {
-            NDalicPINVOKE.Layer_Lower(swigCPtr);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            var parentChildren = Window.Instance.LayersChildren;
+            if (parentChildren != null)
+            {
+                int currentIdx = parentChildren.IndexOf(this);
+
+                if (currentIdx > 0)
+                {
+                    LowerBelow(parentChildren[currentIdx - 1]);
+
+                    Layer temp = parentChildren[currentIdx - 1];
+                    parentChildren[currentIdx - 1] = this;
+                    parentChildren[currentIdx] = temp;
+
+                }
+            }
         }
 
         internal void RaiseAbove(Layer target)
@@ -271,6 +303,13 @@ namespace Tizen.NUI
         /// <since_tizen> 3 </since_tizen>
         public void RaiseToTop()
         {
+            var parentChildren = Window.Instance.LayersChildren;
+
+            if (parentChildren != null)
+            {
+                parentChildren.Remove(this);
+                parentChildren.Add(this);
+            }
             NDalicPINVOKE.Layer_RaiseToTop(swigCPtr);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
@@ -281,6 +320,14 @@ namespace Tizen.NUI
         /// <since_tizen> 3 </since_tizen>
         public void LowerToBottom()
         {
+            var parentChildren = Window.Instance.LayersChildren;
+
+            if (parentChildren != null)
+            {
+                parentChildren.Remove(this);
+                parentChildren.Insert(0, this);
+            }
+
             NDalicPINVOKE.Layer_LowerToBottom(swigCPtr);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
index 3adf2a5..8d63a42 100755 (executable)
@@ -35,7 +35,7 @@ namespace Tizen.NUI
         private string _windowTitle;
 
         private List<Layer> _childLayers = new List<Layer>();
-        private List<Layer> LayersChildren
+        internal List<Layer> LayersChildren
         {
             get
             {
@@ -729,11 +729,15 @@ namespace Tizen.NUI
         /// <since_tizen> 3 </since_tizen>
         public Layer GetLayer(uint depth)
         {
-            IntPtr cPtr = NDalicPINVOKE.Stage_GetLayer(stageCPtr, depth);
-            Layer ret = Registry.GetManagedBaseHandleFromNativePtr(cPtr) as Layer;
-
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
+            if (depth < LayersChildren.Count)
+            {
+                Layer ret = LayersChildren[Convert.ToInt32(depth)];
+                return ret;
+            }
+            else
+            {
+                return null;
+            }
         }
 
         internal Layer GetRootLayer()