Enhance Box Widget 79/130779/5
authorSeunghyun Choi <sh4682.choi@samsung.com>
Wed, 24 May 2017 02:30:05 +0000 (11:30 +0900)
committerSeunghyun Choi <sh4682.choi@samsung.com>
Thu, 8 Jun 2017 12:54:49 +0000 (21:54 +0900)
Change-Id: Ib15fc5dfc430e50bc88caf7a0e1af9dd98c909fe
Signed-off-by: Seunghyun Choi <sh4682.choi@samsung.com>
ElmSharp/ElmSharp/Box.cs [changed mode: 0755->0644]
ElmSharp/ElmSharp/Container.cs [changed mode: 0755->0644]
ElmSharp/Interop/Interop.Elementary.Box.cs

old mode 100755 (executable)
new mode 100644 (file)
index d66a80c..3436c64
@@ -49,6 +49,21 @@ namespace ElmSharp
         }
 
         /// <summary>
+        /// Sets or gets whether the box to arrange its children homogeneously.
+        /// </summary>
+        public bool IsHomogeneous
+        {
+            get
+            {
+                return Interop.Elementary.elm_box_homogeneous_get(RealHandle);
+            }
+            set
+            {
+                Interop.Elementary.elm_box_homogeneous_set(RealHandle, value);
+            }
+        }
+
+        /// <summary>
         /// Adds an object at the end of the pack list.
         /// </summary>
         /// <remarks>
@@ -97,6 +112,22 @@ namespace ElmSharp
         }
 
         /// <summary>
+        /// Adds an "content "object to the Box before the "before" object.
+        /// </summary>
+        /// <remarks>
+        /// This will add the "content" to the Box indicated before the object indicated with "before".
+        /// If "before" is not already in the Box, results are undefined.
+        /// before means either to the left of the "before" object or below it depending on orientation.
+        /// </remarks>
+        /// <param name="content">The object will be added in Box</param>
+        /// <param name="before">The object has been added in Box</param>
+        public void PackBefore(EvasObject content, EvasObject before)
+        {
+            Interop.Elementary.elm_box_pack_before(RealHandle, content, before);
+            AddChild(content);
+        }
+
+        /// <summary>
         /// Remove the "content" oject from Box without deleting it.
         /// </summary>
         /// <param name="content">The object to unpack</param>
@@ -154,6 +185,46 @@ namespace ElmSharp
             return new Color((int)(r / (a / 255.0)), (int)(g / (a / 255.0)), (int)(b / (a / 255.0)), a);
         }
 
+        /// <summary>
+        /// Force the box to recalculate its children packing.
+        /// If any children was added or removed, box will not calculate the values immediately rather leaving it to the next main loop iteration.
+        /// While this is great as it would save lots of recalculation, whenever you need to get the position of a just added item you must force recalculate before doing so.
+        /// </summary>
+        public void Recalculate()
+        {
+            Interop.Elementary.elm_box_recalculate(RealHandle);
+        }
+
+        /// <summary>
+        /// Clear the box of all children.
+        /// Remove all the elements contained by the box, deleting the respective objects.
+        /// </summary>
+        public void Clear()
+        {
+            Interop.Elementary.elm_box_clear(RealHandle);
+            ClearChildren();
+        }
+
+        /// <summary>
+        /// Sets or gets the alignment of the whole bounding box of contents.
+        /// </summary>
+        /// <param name="horizontal">Horizontal alignment</param>
+        /// <param name="vertical">Vertical alignment</param>
+        public void SetBoxAlignment(double horizontal, double vertical)
+        {
+            Interop.Elementary.elm_box_align_set(RealHandle, horizontal, vertical);
+        }
+
+        /// <summary>
+        /// Sets or gets the space(padding) between the box's elements.
+        /// </summary>
+        /// <param name="horizontal">Horizontal padding</param>
+        /// <param name="vertical">vertical padding</param>
+        public void SetPadding(int horizontal, int vertical)
+        {
+            Interop.Elementary.elm_box_padding_set(RealHandle, horizontal, vertical);
+        }
+
         protected override IntPtr CreateHandle(EvasObject parent)
         {
             IntPtr handle = Interop.Elementary.elm_layout_add(parent.Handle);
@@ -165,4 +236,4 @@ namespace ElmSharp
             return handle;
         }
     }
-}
+}
\ No newline at end of file
old mode 100755 (executable)
new mode 100644 (file)
index aa73ba2..f9e87c1
@@ -78,4 +78,4 @@ namespace ElmSharp
             _children.Remove((EvasObject)sender);
         }
     }
-}
+}
\ No newline at end of file
index 5a5700a..cb104a6 100644 (file)
@@ -83,10 +83,12 @@ internal static partial class Interop
         internal static extern void elm_box_layout_set(IntPtr obj, BoxLayoutCallback cb, IntPtr data, IntPtr dataFreeCb);
 
         [DllImport(Libraries.Elementary)]
+        internal static extern bool elm_box_homogeneous_get(IntPtr obj);
+
+        [DllImport(Libraries.Elementary)]
         internal static extern void elm_box_homogeneous_set(IntPtr obj, bool ishomogeneous);
 
         [DllImport(Libraries.Elementary)]
         internal static extern void elm_box_recalculate(IntPtr obj);
     }
-}
-
+}
\ No newline at end of file