Remove the usage of YGUndefined in the default values of Border in YGStyle
Reviewed By: emilsjolander Differential Revision: D7195115 fbshipit-source-id: e635cf55ac94d8a90caef6cafce281579da2cbfc
This commit is contained in:
parent
8466db0fd3
commit
af4a36337d
|
@ -49,3 +49,7 @@ bool YGFloatsEqual(const float a, const float b) {
|
|||
}
|
||||
return YGFloatIsUndefined(a) && YGFloatIsUndefined(b);
|
||||
}
|
||||
|
||||
float YGFloatSanitize(const float& val) {
|
||||
return YGFloatIsUndefined(val) ? 0 : val;
|
||||
}
|
||||
|
|
|
@ -86,6 +86,9 @@ bool YGFloatArrayEqual(
|
|||
return areEqual;
|
||||
}
|
||||
|
||||
// This function returns 0 if YGFloatIsUndefined(val) is true and val otherwise
|
||||
float YGFloatSanitize(const float& val);
|
||||
|
||||
YGFlexDirection YGFlexDirectionCross(
|
||||
const YGFlexDirection flexDirection,
|
||||
const YGDirection direction);
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
#include "YGStyle.h"
|
||||
|
||||
const YGValue kYGValueUndefined = {YGUndefined, YGUnitUndefined};
|
||||
const YGValue kYGValueUndefined = {0, YGUnitUndefined};
|
||||
|
||||
const YGValue kYGValueAuto = {YGUndefined, YGUnitAuto};
|
||||
|
||||
|
|
|
@ -760,7 +760,35 @@ YG_NODE_STYLE_EDGE_PROPERTY_UNIT_IMPL(YGValue, Position, position, position);
|
|||
YG_NODE_STYLE_EDGE_PROPERTY_UNIT_IMPL(YGValue, Margin, margin, margin);
|
||||
YG_NODE_STYLE_EDGE_PROPERTY_UNIT_AUTO_IMPL(YGValue, Margin, margin);
|
||||
YG_NODE_STYLE_EDGE_PROPERTY_UNIT_IMPL(YGValue, Padding, padding, padding);
|
||||
YG_NODE_STYLE_EDGE_PROPERTY_IMPL(float, Border, border, border);
|
||||
|
||||
// TODO: Change the API to accept YGFloatOptional.
|
||||
void YGNodeStyleSetBorder(
|
||||
const YGNodeRef node,
|
||||
const YGEdge edge,
|
||||
const float border) {
|
||||
YGValue value = {
|
||||
.value = YGFloatSanitize(border),
|
||||
.unit = YGFloatIsUndefined(border) ? YGUnitUndefined : YGUnitPoint,
|
||||
};
|
||||
if ((node->getStyle().border[edge].value != value.value &&
|
||||
value.unit != YGUnitUndefined) ||
|
||||
node->getStyle().border[edge].unit != value.unit) {
|
||||
YGStyle style = node->getStyle();
|
||||
style.border[edge] = value;
|
||||
node->setStyle(style);
|
||||
node->markDirtyAndPropogate();
|
||||
}
|
||||
}
|
||||
|
||||
float YGNodeStyleGetBorder(const YGNodeRef node, const YGEdge edge) {
|
||||
if (node->getStyle().border[edge].unit == YGUnitUndefined) {
|
||||
// TODO: Rather than returning YGUndefined, change the api to return
|
||||
// YGFloatOptional.
|
||||
return YGUndefined;
|
||||
}
|
||||
|
||||
return node->getStyle().border[edge].value;
|
||||
}
|
||||
|
||||
YG_NODE_STYLE_PROPERTY_UNIT_AUTO_IMPL(YGValue, Width, width, dimensions[YGDimensionWidth]);
|
||||
YG_NODE_STYLE_PROPERTY_UNIT_AUTO_IMPL(YGValue, Height, height, dimensions[YGDimensionHeight]);
|
||||
|
|
|
@ -42,6 +42,11 @@ typedef struct YGValue {
|
|||
YGUnit unit;
|
||||
} YGValue;
|
||||
|
||||
struct YGFloatOptional {
|
||||
bool isUndefined;
|
||||
float value;
|
||||
};
|
||||
|
||||
extern const YGValue YGValueUndefined;
|
||||
extern const YGValue YGValueAuto;
|
||||
|
||||
|
|
Loading…
Reference in New Issue