isDimDefined helper

This commit is contained in:
Christopher Chedeau
2014-04-18 10:11:37 -07:00
parent f55bece86e
commit e3430169c0
2 changed files with 13 additions and 5 deletions

View File

@@ -276,6 +276,10 @@ float getDimWithMargin(css_node_t *node, css_flex_direction_t axis) {
getMargin(node, trailing[axis]);
}
bool isDimDefined(css_node_t *node, css_flex_direction_t axis) {
return !isUndefined(node->style.dimensions[dim[axis]]);
}
float getPosition(css_node_t *node, css_position_t pos) {
float result = node->style.position[pos];
if (!isUndefined(result)) {
@@ -294,19 +298,18 @@ float getRelativePosition(css_node_t *node, css_flex_direction_t axis) {
return getPosition(node, trailing[axis]);
}
void layoutNode(css_node_t *node) {
css_flex_direction_t mainAxis = getFlexDirection(node);
css_flex_direction_t crossAxis = mainAxis == CSS_FLEX_DIRECTION_ROW ?
CSS_FLEX_DIRECTION_COLUMN :
CSS_FLEX_DIRECTION_ROW;
bool mainDimInStyle = !isUndefined(node->style.dimensions[dim[mainAxis]]);
bool mainDimInStyle = isDimDefined(node, mainAxis);
if (isUndefined(node->layout.dimensions[dim[mainAxis]]) && mainDimInStyle) {
node->layout.dimensions[dim[mainAxis]] = node->style.dimensions[dim[mainAxis]];
}
bool crossDimInStyle = !isUndefined(node->style.dimensions[dim[crossAxis]]);
bool crossDimInStyle = isDimDefined(node, crossAxis);
if (isUndefined(node->layout.dimensions[dim[crossAxis]]) && crossDimInStyle) {
node->layout.dimensions[dim[crossAxis]] = node->style.dimensions[dim[crossAxis]];
}

View File

@@ -88,6 +88,11 @@ function computeLayout(node) {
getMargin(node, trailing[axis]);
}
function isDimDefined(node, axis) {
return !isUndefined(node.style[dim[axis]]);
}
function getPosition(node, pos) {
if (pos in node.style) {
return node.style[pos];
@@ -141,12 +146,12 @@ function computeLayout(node) {
CSS_FLEX_DIRECTION_COLUMN :
CSS_FLEX_DIRECTION_ROW;
var mainDimInStyle = dim[mainAxis] in node.style;
var mainDimInStyle = isDimDefined(node, mainAxis);
if (isUndefined(node.layout[dim[mainAxis]]) && mainDimInStyle) {
node.layout[dim[mainAxis]] = node.style[dim[mainAxis]];
}
var crossDimInStyle = dim[crossAxis] in node.style;
var crossDimInStyle = isDimDefined(node, crossAxis);
if (isUndefined(node.layout[dim[crossAxis]]) && crossDimInStyle) {
node.layout[dim[crossAxis]] = node.style[dim[crossAxis]];
}