Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutFlexibleBox.h

Issue 1470373003: [css-flexbox] Correctly implement flex factors < 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add a comment Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 LayoutUnit clientLogicalBottomAfterRepositioning(); 148 LayoutUnit clientLogicalBottomAfterRepositioning();
149 149
150 LayoutUnit availableAlignmentSpaceForChild(LayoutUnit lineCrossAxisExtent, c onst LayoutBox& child); 150 LayoutUnit availableAlignmentSpaceForChild(LayoutUnit lineCrossAxisExtent, c onst LayoutBox& child);
151 LayoutUnit availableAlignmentSpaceForChildBeforeStretching(LayoutUnit lineCr ossAxisExtent, const LayoutBox& child); 151 LayoutUnit availableAlignmentSpaceForChildBeforeStretching(LayoutUnit lineCr ossAxisExtent, const LayoutBox& child);
152 LayoutUnit marginBoxAscentForChild(const LayoutBox& child); 152 LayoutUnit marginBoxAscentForChild(const LayoutBox& child);
153 153
154 LayoutUnit computeChildMarginValue(Length margin); 154 LayoutUnit computeChildMarginValue(Length margin);
155 void prepareOrderIteratorAndMargins(); 155 void prepareOrderIteratorAndMargins();
156 LayoutUnit adjustChildSizeForMinAndMax(const LayoutBox& child, LayoutUnit ch ildSize); 156 LayoutUnit adjustChildSizeForMinAndMax(const LayoutBox& child, LayoutUnit ch ildSize);
157 // The hypothetical main size of an item is the flex base size clamped accor ding to its min and max main size properties 157 // The hypothetical main size of an item is the flex base size clamped accor ding to its min and max main size properties
158 bool computeNextFlexLine(OrderedFlexItemList& orderedChildren, LayoutUnit& s umFlexBaseSize, double& totalFlexGrow, double& totalWeightedFlexShrink, LayoutUn it& sumHypotheticalMainSize, bool relayoutChildren); 158 bool computeNextFlexLine(OrderedFlexItemList& orderedChildren, LayoutUnit& s umFlexBaseSize, double& totalFlexGrow, double& totalFlexShrink, double& totalWei ghtedFlexShrink, LayoutUnit& sumHypotheticalMainSize, bool relayoutChildren);
159 159
160 bool resolveFlexibleLengths(FlexSign, const OrderedFlexItemList&, LayoutUnit & availableFreeSpace, double& totalFlexGrow, double& totalWeightedFlexShrink, In flexibleFlexItemSize&, Vector<LayoutUnit, 16>& childSizes); 160 bool resolveFlexibleLengths(FlexSign, const OrderedFlexItemList&, LayoutUnit availableFreeSpace, LayoutUnit& remainingFreeSpace, double& totalFlexGrow, doub le& totalFlexShrink, double& totalWeightedFlexShrink, InflexibleFlexItemSize&, V ector<LayoutUnit, 16>& childSizes);
161 void freezeViolations(const Vector<Violation>&, LayoutUnit& availableFreeSpa ce, double& totalFlexGrow, double& totalWeightedFlexShrink, InflexibleFlexItemSi ze&); 161 void freezeViolations(const Vector<Violation>&, LayoutUnit& availableFreeSpa ce, double& totalFlexGrow, double& totalFlexShrink, double& totalWeightedFlexShr ink, InflexibleFlexItemSize&);
162 162
163 void resetAutoMarginsAndLogicalTopInCrossAxis(LayoutBox& child); 163 void resetAutoMarginsAndLogicalTopInCrossAxis(LayoutBox& child);
164 void setOverrideMainAxisSizeForChild(LayoutBox& child, LayoutUnit childPrefe rredSize); 164 void setOverrideMainAxisSizeForChild(LayoutBox& child, LayoutUnit childPrefe rredSize);
165 void prepareChildForPositionedLayout(LayoutBox& child, LayoutUnit mainAxisOf fset, LayoutUnit crossAxisOffset, PositionedLayoutMode); 165 void prepareChildForPositionedLayout(LayoutBox& child, LayoutUnit mainAxisOf fset, LayoutUnit crossAxisOffset, PositionedLayoutMode);
166 size_t numberOfInFlowPositionedChildren(const OrderedFlexItemList&) const; 166 size_t numberOfInFlowPositionedChildren(const OrderedFlexItemList&) const;
167 void layoutAndPlaceChildren(LayoutUnit& crossAxisOffset, const OrderedFlexIt emList&, const Vector<LayoutUnit, 16>& childSizes, LayoutUnit availableFreeSpace , bool relayoutChildren, SubtreeLayoutScope&, Vector<LineContext>&); 167 void layoutAndPlaceChildren(LayoutUnit& crossAxisOffset, const OrderedFlexIt emList&, const Vector<LayoutUnit, 16>& childSizes, LayoutUnit availableFreeSpace , bool relayoutChildren, SubtreeLayoutScope&, Vector<LineContext>&);
168 void layoutColumnReverse(const OrderedFlexItemList&, LayoutUnit crossAxisOff set, LayoutUnit availableFreeSpace); 168 void layoutColumnReverse(const OrderedFlexItemList&, LayoutUnit crossAxisOff set, LayoutUnit availableFreeSpace);
169 void alignFlexLines(Vector<LineContext>&); 169 void alignFlexLines(Vector<LineContext>&);
170 void alignChildren(const Vector<LineContext>&); 170 void alignChildren(const Vector<LineContext>&);
171 void applyStretchAlignmentToChild(LayoutBox& child, LayoutUnit lineCrossAxis Extent); 171 void applyStretchAlignmentToChild(LayoutBox& child, LayoutUnit lineCrossAxis Extent);
172 void flipForRightToLeftColumn(); 172 void flipForRightToLeftColumn();
173 void flipForWrapReverse(const Vector<LineContext>&, LayoutUnit crossAxisStar tEdge); 173 void flipForWrapReverse(const Vector<LineContext>&, LayoutUnit crossAxisStar tEdge);
174 174
175 float countIntrinsicSizeForAlgorithmChange(LayoutUnit maxPreferredWidth, Lay outBox* child, float previousMaxContentFlexFraction) const; 175 float countIntrinsicSizeForAlgorithmChange(LayoutUnit maxPreferredWidth, Lay outBox* child, float previousMaxContentFlexFraction) const;
176 176
177 // This is used to cache the preferred size for orthogonal flow children so we don't have to relayout to get it 177 // This is used to cache the preferred size for orthogonal flow children so we don't have to relayout to get it
178 HashMap<const LayoutObject*, LayoutUnit> m_intrinsicSizeAlongMainAxis; 178 HashMap<const LayoutObject*, LayoutUnit> m_intrinsicSizeAlongMainAxis;
179 179
180 mutable OrderIterator m_orderIterator; 180 mutable OrderIterator m_orderIterator;
181 int m_numberOfInFlowChildrenOnFirstLine; 181 int m_numberOfInFlowChildrenOnFirstLine;
182 }; 182 };
183 183
184 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutFlexibleBox, isFlexibleBox()); 184 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutFlexibleBox, isFlexibleBox());
185 185
186 } // namespace blink 186 } // namespace blink
187 187
188 #endif // LayoutFlexibleBox_h 188 #endif // LayoutFlexibleBox_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698