| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 646 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 657 } else { | 657 } else { |
| 658 ASSERT(crossSizeLength.hasPercent()); | 658 ASSERT(crossSizeLength.hasPercent()); |
| 659 crossSize = hasOrthogonalFlow(child) ? | 659 crossSize = hasOrthogonalFlow(child) ? |
| 660 adjustBorderBoxLogicalWidthForBoxSizing(valueForLength(crossSizeLeng
th, contentWidth())) : | 660 adjustBorderBoxLogicalWidthForBoxSizing(valueForLength(crossSizeLeng
th, contentWidth())) : |
| 661 child.computePercentageLogicalHeight(crossSizeLength); | 661 child.computePercentageLogicalHeight(crossSizeLength); |
| 662 } | 662 } |
| 663 | 663 |
| 664 const LayoutSize& childIntrinsicSize = child.intrinsicSize(); | 664 const LayoutSize& childIntrinsicSize = child.intrinsicSize(); |
| 665 double ratio = childIntrinsicSize.width().toFloat() / childIntrinsicSize.hei
ght().toFloat(); | 665 double ratio = childIntrinsicSize.width().toFloat() / childIntrinsicSize.hei
ght().toFloat(); |
| 666 if (isHorizontalFlow()) | 666 if (isHorizontalFlow()) |
| 667 return crossSize * ratio; | 667 return LayoutUnit(crossSize * ratio); |
| 668 return crossSize / ratio; | 668 return LayoutUnit(crossSize / ratio); |
| 669 } | 669 } |
| 670 | 670 |
| 671 void LayoutFlexibleBox::setFlowAwareLocationForChild(LayoutBox& child, const Lay
outPoint& location) | 671 void LayoutFlexibleBox::setFlowAwareLocationForChild(LayoutBox& child, const Lay
outPoint& location) |
| 672 { | 672 { |
| 673 if (isHorizontalFlow()) | 673 if (isHorizontalFlow()) |
| 674 child.setLocationAndUpdateOverflowControlsIfNeeded(location); | 674 child.setLocationAndUpdateOverflowControlsIfNeeded(location); |
| 675 else | 675 else |
| 676 child.setLocationAndUpdateOverflowControlsIfNeeded(location.transposedPo
int()); | 676 child.setLocationAndUpdateOverflowControlsIfNeeded(location.transposedPo
int()); |
| 677 } | 677 } |
| 678 | 678 |
| (...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1092 bool LayoutFlexibleBox::resolveFlexibleLengths(FlexSign flexSign, const OrderedF
lexItemList& children, LayoutUnit availableFreeSpace, LayoutUnit& remainingFreeS
pace, double& totalFlexGrow, double& totalFlexShrink, double& totalWeightedFlexS
hrink, InflexibleFlexItemSize& inflexibleItems, Vector<LayoutUnit, 16>& childSiz
es) | 1092 bool LayoutFlexibleBox::resolveFlexibleLengths(FlexSign flexSign, const OrderedF
lexItemList& children, LayoutUnit availableFreeSpace, LayoutUnit& remainingFreeS
pace, double& totalFlexGrow, double& totalFlexShrink, double& totalWeightedFlexS
hrink, InflexibleFlexItemSize& inflexibleItems, Vector<LayoutUnit, 16>& childSiz
es) |
| 1093 { | 1093 { |
| 1094 childSizes.resize(0); | 1094 childSizes.resize(0); |
| 1095 LayoutUnit totalViolation; | 1095 LayoutUnit totalViolation; |
| 1096 LayoutUnit usedFreeSpace; | 1096 LayoutUnit usedFreeSpace; |
| 1097 Vector<Violation> minViolations; | 1097 Vector<Violation> minViolations; |
| 1098 Vector<Violation> maxViolations; | 1098 Vector<Violation> maxViolations; |
| 1099 | 1099 |
| 1100 double sumFlexFactors = (flexSign == PositiveFlexibility) ? totalFlexGrow :
totalFlexShrink; | 1100 double sumFlexFactors = (flexSign == PositiveFlexibility) ? totalFlexGrow :
totalFlexShrink; |
| 1101 if (sumFlexFactors > 0 && sumFlexFactors < 1) { | 1101 if (sumFlexFactors > 0 && sumFlexFactors < 1) { |
| 1102 LayoutUnit fractional = availableFreeSpace * sumFlexFactors; | 1102 LayoutUnit fractional(availableFreeSpace * sumFlexFactors); |
| 1103 if (fractional.abs() < remainingFreeSpace.abs()) | 1103 if (fractional.abs() < remainingFreeSpace.abs()) |
| 1104 remainingFreeSpace = fractional; | 1104 remainingFreeSpace = fractional; |
| 1105 } | 1105 } |
| 1106 | 1106 |
| 1107 for (size_t i = 0; i < children.size(); ++i) { | 1107 for (size_t i = 0; i < children.size(); ++i) { |
| 1108 LayoutBox* child = children[i]; | 1108 LayoutBox* child = children[i]; |
| 1109 if (child->isOutOfFlowPositioned()) { | 1109 if (child->isOutOfFlowPositioned()) { |
| 1110 childSizes.append(0); | 1110 childSizes.append(0); |
| 1111 continue; | 1111 continue; |
| 1112 } | 1112 } |
| (...skipping 516 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1629 ASSERT(child); | 1629 ASSERT(child); |
| 1630 LayoutUnit lineCrossAxisExtent = lineContexts[lineNumber].crossAxisE
xtent; | 1630 LayoutUnit lineCrossAxisExtent = lineContexts[lineNumber].crossAxisE
xtent; |
| 1631 LayoutUnit originalOffset = lineContexts[lineNumber].crossAxisOffset
- crossAxisStartEdge; | 1631 LayoutUnit originalOffset = lineContexts[lineNumber].crossAxisOffset
- crossAxisStartEdge; |
| 1632 LayoutUnit newOffset = contentExtent - originalOffset - lineCrossAxi
sExtent; | 1632 LayoutUnit newOffset = contentExtent - originalOffset - lineCrossAxi
sExtent; |
| 1633 adjustAlignmentForChild(*child, newOffset - originalOffset); | 1633 adjustAlignmentForChild(*child, newOffset - originalOffset); |
| 1634 } | 1634 } |
| 1635 } | 1635 } |
| 1636 } | 1636 } |
| 1637 | 1637 |
| 1638 } // namespace blink | 1638 } // namespace blink |
| OLD | NEW |