Exemplo n.º 1
0
void YGNode::resolveDimension() {
  for (uint32_t dim = YGDimensionWidth; dim < YGDimensionCount; dim++) {
    if (getStyle().maxDimensions[dim].unit != YGUnitUndefined &&
        YGValueEqual(
            getStyle().maxDimensions[dim], style_.minDimensions[dim])) {
      resolvedDimensions_[dim] = style_.maxDimensions[dim];
    } else {
      resolvedDimensions_[dim] = style_.dimensions[dim];
    }
  }
}
Exemplo n.º 2
0
// Yoga specific properties, not compatible with flexbox specification
bool operator==(const YGStyle& lhs, const YGStyle& rhs) {
  bool areNonFloatValuesEqual = lhs.direction == rhs.direction &&
      lhs.flexDirection == rhs.flexDirection &&
      lhs.justifyContent == rhs.justifyContent &&
      lhs.alignContent == rhs.alignContent &&
      lhs.alignItems == rhs.alignItems && lhs.alignSelf == rhs.alignSelf &&
      lhs.positionType == rhs.positionType && lhs.flexWrap == rhs.flexWrap &&
      lhs.overflow == rhs.overflow && lhs.display == rhs.display &&
      YGValueEqual(lhs.flexBasis, rhs.flexBasis) && lhs.margin == rhs.margin &&
      lhs.position == rhs.position && lhs.padding == rhs.padding &&
      lhs.border == rhs.border && lhs.dimensions == rhs.dimensions &&
      lhs.minDimensions == rhs.minDimensions &&
      lhs.maxDimensions == rhs.maxDimensions;

  areNonFloatValuesEqual = areNonFloatValuesEqual &&
      lhs.flex.isUndefined() == rhs.flex.isUndefined();
  if (areNonFloatValuesEqual && !lhs.flex.isUndefined() &&
      !rhs.flex.isUndefined()) {
    areNonFloatValuesEqual = areNonFloatValuesEqual && lhs.flex == rhs.flex;
  }

  areNonFloatValuesEqual = areNonFloatValuesEqual &&
      lhs.flexGrow.isUndefined() == rhs.flexGrow.isUndefined();
  if (areNonFloatValuesEqual && !lhs.flexGrow.isUndefined()) {
    areNonFloatValuesEqual =
        areNonFloatValuesEqual && lhs.flexGrow == rhs.flexGrow;
  }

  areNonFloatValuesEqual = areNonFloatValuesEqual &&
      lhs.flexShrink.isUndefined() == rhs.flexShrink.isUndefined();
  if (areNonFloatValuesEqual && !rhs.flexShrink.isUndefined()) {
    areNonFloatValuesEqual =
        areNonFloatValuesEqual && lhs.flexShrink == rhs.flexShrink;
  }

  if (!(lhs.aspectRatio.isUndefined() && rhs.aspectRatio.isUndefined())) {
    areNonFloatValuesEqual =
        areNonFloatValuesEqual && lhs.aspectRatio == rhs.aspectRatio;
  }

  return areNonFloatValuesEqual;
}