C# use YogaSize throughout the measure call chain
Summary: Java still has the same problem (see #296) Also there is no need to have double in the method signature as we only use float internally, which could confuse some. Closes https://github.com/facebook/yoga/pull/300 Reviewed By: splhack Differential Revision: D4365993 Pulled By: emilsjolander fbshipit-source-id: 681f8b1725e63eddcfb9a6c756f2ae215a44425a
This commit is contained in:
committed by
Facebook Github Bot
parent
ab595d1875
commit
cd78291de5
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
namespace Facebook.Yoga
|
namespace Facebook.Yoga
|
||||||
{
|
{
|
||||||
public delegate long MeasureFunction(
|
public delegate YogaSize MeasureFunction(
|
||||||
YogaNode node,
|
YogaNode node,
|
||||||
float width,
|
float width,
|
||||||
YogaMeasureMode widthMode,
|
YogaMeasureMode widthMode,
|
||||||
|
@@ -11,24 +11,9 @@ namespace Facebook.Yoga
|
|||||||
{
|
{
|
||||||
public class MeasureOutput
|
public class MeasureOutput
|
||||||
{
|
{
|
||||||
public static long Make(double width, double height)
|
public static YogaSize Make(float width, float height)
|
||||||
{
|
{
|
||||||
return Make((int) width, (int) height);
|
return new YogaSize { width = width, height = height};
|
||||||
}
|
|
||||||
|
|
||||||
public static long Make(int width, int height)
|
|
||||||
{
|
|
||||||
return (long)(((ulong) width) << 32 | ((uint) height));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int GetWidth(long measureOutput)
|
|
||||||
{
|
|
||||||
return (int) (0xFFFFFFFF & (measureOutput >> 32));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int GetHeight(long measureOutput)
|
|
||||||
{
|
|
||||||
return (int) (0xFFFFFFFF & measureOutput);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -532,8 +532,7 @@ namespace Facebook.Yoga
|
|||||||
throw new InvalidOperationException("Measure function is not defined.");
|
throw new InvalidOperationException("Measure function is not defined.");
|
||||||
}
|
}
|
||||||
|
|
||||||
long output = _measureFunction(this, width, widthMode, height, heightMode);
|
return _measureFunction(this, width, widthMode, height, heightMode);
|
||||||
return new YogaSize { width = MeasureOutput.GetWidth(output), height = MeasureOutput.GetHeight(output) };
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Print(YogaPrintOptions options =
|
public string Print(YogaPrintOptions options =
|
||||||
|
@@ -169,8 +169,8 @@ namespace Facebook.Yoga
|
|||||||
return MeasureOutput.Make(123.4f, 81.7f);
|
return MeasureOutput.Make(123.4f, 81.7f);
|
||||||
});
|
});
|
||||||
node.CalculateLayout();
|
node.CalculateLayout();
|
||||||
Assert.AreEqual(123, node.LayoutWidth);
|
Assert.AreEqual(123.4f, node.LayoutWidth);
|
||||||
Assert.AreEqual(81, node.LayoutHeight);
|
Assert.AreEqual(81.7f, node.LayoutHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
Reference in New Issue
Block a user