From 6d48307c8d7ec993caac04f98cea11be4466ace7 Mon Sep 17 00:00:00 2001 From: Emil Sjolander Date: Thu, 5 Jan 2017 12:48:11 -0800 Subject: [PATCH] Expose layout paddding in csharp api Summary: Expose layout padding api from D4376572 Reviewed By: splhack Differential Revision: D4377070 fbshipit-source-id: 501628612675e3fdce9a8e77f929cb9c6eddc209 --- csharp/Facebook.Yoga/Native.cs | 5 ++++- csharp/Facebook.Yoga/YogaNode.cs | 5 +++++ csharp/tests/Facebook.Yoga/YogaNodeTest.cs | 17 +++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/csharp/Facebook.Yoga/Native.cs b/csharp/Facebook.Yoga/Native.cs index cb7371d3..b66cf8a6 100644 --- a/csharp/Facebook.Yoga/Native.cs +++ b/csharp/Facebook.Yoga/Native.cs @@ -315,9 +315,12 @@ namespace Facebook.Yoga [DllImport(DllName, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl)] public static extern float YGNodeLayoutGetHeight(YGNodeHandle node); + [DllImport(DllName, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl)] + public static extern float YGNodeLayoutGetPadding(YGNodeHandle node, YogaEdge edge); + [DllImport(DllName, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl)] public static extern YogaDirection YGNodeLayoutGetDirection(YGNodeHandle node); #endregion } -} \ No newline at end of file +} diff --git a/csharp/Facebook.Yoga/YogaNode.cs b/csharp/Facebook.Yoga/YogaNode.cs index 94cafa50..5732748b 100644 --- a/csharp/Facebook.Yoga/YogaNode.cs +++ b/csharp/Facebook.Yoga/YogaNode.cs @@ -308,6 +308,11 @@ namespace Facebook.Yoga } } + public float GetLayoutPadding(YogaEdge edge) + { + return Native.YGNodeLayoutGetPadding(_ygNode, edge); + } + public YogaValue Width { get diff --git a/csharp/tests/Facebook.Yoga/YogaNodeTest.cs b/csharp/tests/Facebook.Yoga/YogaNodeTest.cs index ebb09083..9979f091 100644 --- a/csharp/tests/Facebook.Yoga/YogaNodeTest.cs +++ b/csharp/tests/Facebook.Yoga/YogaNodeTest.cs @@ -355,5 +355,22 @@ namespace Facebook.Yoga return MeasureOutput.Make(120, 130); }); } + + [Test] + public void TestLayoutPadding() { + YogaNode node = new YogaNode(); + node.Width = 100; + node.Height = 100; + node.SetPadding(YogaEdge.Start, 1); + node.SetPadding(YogaEdge.End, 2); + node.SetPadding(YogaEdge.Top, 3); + node.SetPadding(YogaEdge.Bottom, 4); + node.CalculateLayout(); + + Assert.AreEqual(1, node.GetLayoutPadding(YogaEdge.Left)); + Assert.AreEqual(2, node.GetLayoutPadding(YogaEdge.Right)); + Assert.AreEqual(3, node.GetLayoutPadding(YogaEdge.Top)); + Assert.AreEqual(4, node.GetLayoutPadding(YogaEdge.Bottom)); + } } }