summaryrefslogtreecommitdiff
path: root/ElmSharp
diff options
context:
space:
mode:
authorSeunghyun Choi <sh4682.choi@samsung.com>2017-05-24 11:30:05 +0900
committerSeunghyun Choi <sh4682.choi@samsung.com>2017-06-08 21:54:49 +0900
commit53bad7c6e78039c6290724a6f04d9bec02810593 (patch)
tree01ef7e6e6a52193a2c9115df5d96b4f1e98e043f /ElmSharp
parent1b6794a3d249092439f3c1a96c31a032c0c2b90d (diff)
downloadelm-sharp-53bad7c6e78039c6290724a6f04d9bec02810593.tar.gz
elm-sharp-53bad7c6e78039c6290724a6f04d9bec02810593.tar.bz2
elm-sharp-53bad7c6e78039c6290724a6f04d9bec02810593.zip
Enhance Box Widget
Change-Id: Ib15fc5dfc430e50bc88caf7a0e1af9dd98c909fe Signed-off-by: Seunghyun Choi <sh4682.choi@samsung.com>
Diffstat (limited to 'ElmSharp')
-rw-r--r--[-rwxr-xr-x]ElmSharp/ElmSharp/Box.cs73
-rw-r--r--[-rwxr-xr-x]ElmSharp/ElmSharp/Container.cs2
-rw-r--r--ElmSharp/Interop/Interop.Elementary.Box.cs6
3 files changed, 77 insertions, 4 deletions
diff --git a/ElmSharp/ElmSharp/Box.cs b/ElmSharp/ElmSharp/Box.cs
index d66a80c..3436c64 100755..100644
--- a/ElmSharp/ElmSharp/Box.cs
+++ b/ElmSharp/ElmSharp/Box.cs
@@ -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
diff --git a/ElmSharp/ElmSharp/Container.cs b/ElmSharp/ElmSharp/Container.cs
index aa73ba2..f9e87c1 100755..100644
--- a/ElmSharp/ElmSharp/Container.cs
+++ b/ElmSharp/ElmSharp/Container.cs
@@ -78,4 +78,4 @@ namespace ElmSharp
_children.Remove((EvasObject)sender);
}
}
-}
+} \ No newline at end of file
diff --git a/ElmSharp/Interop/Interop.Elementary.Box.cs b/ElmSharp/Interop/Interop.Elementary.Box.cs
index 5a5700a..cb104a6 100644
--- a/ElmSharp/Interop/Interop.Elementary.Box.cs
+++ b/ElmSharp/Interop/Interop.Elementary.Box.cs
@@ -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