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

Side by Side Diff: Source/core/rendering/RenderFlexibleBox.h

Issue 926193003: Move rendering/RenderBox to layout/LayoutBox. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 10 months 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 | Annotate | Revision Log
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 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 enum FlexSign { 69 enum FlexSign {
70 PositiveFlexibility, 70 PositiveFlexibility,
71 NegativeFlexibility, 71 NegativeFlexibility,
72 }; 72 };
73 73
74 enum PositionedLayoutMode { 74 enum PositionedLayoutMode {
75 FlipForRowReverse, 75 FlipForRowReverse,
76 NoFlipForRowReverse, 76 NoFlipForRowReverse,
77 }; 77 };
78 78
79 typedef HashMap<const RenderBox*, LayoutUnit> InflexibleFlexItemSize; 79 typedef HashMap<const LayoutBox*, LayoutUnit> InflexibleFlexItemSize;
80 typedef Vector<RenderBox*> OrderedFlexItemList; 80 typedef Vector<LayoutBox*> OrderedFlexItemList;
81 81
82 struct LineContext; 82 struct LineContext;
83 struct Violation; 83 struct Violation;
84 84
85 // Use an inline capacity of 8, since flexbox containers usually have less t han 8 children. 85 // Use an inline capacity of 8, since flexbox containers usually have less t han 8 children.
86 typedef Vector<LayoutRect, 8> ChildFrameRects; 86 typedef Vector<LayoutRect, 8> ChildFrameRects;
87 87
88 bool hasOrthogonalFlow(RenderBox& child) const; 88 bool hasOrthogonalFlow(LayoutBox& child) const;
89 bool isColumnFlow() const; 89 bool isColumnFlow() const;
90 bool isLeftToRightFlow() const; 90 bool isLeftToRightFlow() const;
91 bool isMultiline() const; 91 bool isMultiline() const;
92 Length flexBasisForChild(RenderBox& child) const; 92 Length flexBasisForChild(LayoutBox& child) const;
93 LayoutUnit crossAxisExtentForChild(RenderBox& child) const; 93 LayoutUnit crossAxisExtentForChild(LayoutBox& child) const;
94 LayoutUnit crossAxisIntrinsicExtentForChild(RenderBox& child) const; 94 LayoutUnit crossAxisIntrinsicExtentForChild(LayoutBox& child) const;
95 LayoutUnit childIntrinsicHeight(RenderBox& child) const; 95 LayoutUnit childIntrinsicHeight(LayoutBox& child) const;
96 LayoutUnit childIntrinsicWidth(RenderBox& child) const; 96 LayoutUnit childIntrinsicWidth(LayoutBox& child) const;
97 LayoutUnit mainAxisExtentForChild(RenderBox& child) const; 97 LayoutUnit mainAxisExtentForChild(LayoutBox& child) const;
98 LayoutUnit crossAxisExtent() const; 98 LayoutUnit crossAxisExtent() const;
99 LayoutUnit mainAxisExtent() const; 99 LayoutUnit mainAxisExtent() const;
100 LayoutUnit crossAxisContentExtent() const; 100 LayoutUnit crossAxisContentExtent() const;
101 LayoutUnit mainAxisContentExtent(LayoutUnit contentLogicalHeight); 101 LayoutUnit mainAxisContentExtent(LayoutUnit contentLogicalHeight);
102 LayoutUnit computeMainAxisExtentForChild(RenderBox& child, SizeType, const L ength& size); 102 LayoutUnit computeMainAxisExtentForChild(LayoutBox& child, SizeType, const L ength& size);
103 WritingMode transformedWritingMode() const; 103 WritingMode transformedWritingMode() const;
104 LayoutUnit flowAwareBorderStart() const; 104 LayoutUnit flowAwareBorderStart() const;
105 LayoutUnit flowAwareBorderEnd() const; 105 LayoutUnit flowAwareBorderEnd() const;
106 LayoutUnit flowAwareBorderBefore() const; 106 LayoutUnit flowAwareBorderBefore() const;
107 LayoutUnit flowAwareBorderAfter() const; 107 LayoutUnit flowAwareBorderAfter() const;
108 LayoutUnit flowAwarePaddingStart() const; 108 LayoutUnit flowAwarePaddingStart() const;
109 LayoutUnit flowAwarePaddingEnd() const; 109 LayoutUnit flowAwarePaddingEnd() const;
110 LayoutUnit flowAwarePaddingBefore() const; 110 LayoutUnit flowAwarePaddingBefore() const;
111 LayoutUnit flowAwarePaddingAfter() const; 111 LayoutUnit flowAwarePaddingAfter() const;
112 LayoutUnit flowAwareMarginStartForChild(RenderBox& child) const; 112 LayoutUnit flowAwareMarginStartForChild(LayoutBox& child) const;
113 LayoutUnit flowAwareMarginEndForChild(RenderBox& child) const; 113 LayoutUnit flowAwareMarginEndForChild(LayoutBox& child) const;
114 LayoutUnit flowAwareMarginBeforeForChild(RenderBox& child) const; 114 LayoutUnit flowAwareMarginBeforeForChild(LayoutBox& child) const;
115 LayoutUnit crossAxisMarginExtentForChild(RenderBox& child) const; 115 LayoutUnit crossAxisMarginExtentForChild(LayoutBox& child) const;
116 LayoutUnit crossAxisScrollbarExtent() const; 116 LayoutUnit crossAxisScrollbarExtent() const;
117 LayoutUnit crossAxisScrollbarExtentForChild(RenderBox& child) const; 117 LayoutUnit crossAxisScrollbarExtentForChild(LayoutBox& child) const;
118 LayoutPoint flowAwareLocationForChild(RenderBox& child) const; 118 LayoutPoint flowAwareLocationForChild(LayoutBox& child) const;
119 // FIXME: Supporting layout deltas. 119 // FIXME: Supporting layout deltas.
120 void setFlowAwareLocationForChild(RenderBox& child, const LayoutPoint&); 120 void setFlowAwareLocationForChild(LayoutBox& child, const LayoutPoint&);
121 void adjustAlignmentForChild(RenderBox& child, LayoutUnit); 121 void adjustAlignmentForChild(LayoutBox& child, LayoutUnit);
122 ItemPosition alignmentForChild(RenderBox& child) const; 122 ItemPosition alignmentForChild(LayoutBox& child) const;
123 LayoutUnit mainAxisBorderAndPaddingExtentForChild(RenderBox& child) const; 123 LayoutUnit mainAxisBorderAndPaddingExtentForChild(LayoutBox& child) const;
124 LayoutUnit preferredMainAxisContentExtentForChild(RenderBox& child, bool has InfiniteLineLength, bool relayoutChildren = false); 124 LayoutUnit preferredMainAxisContentExtentForChild(LayoutBox& child, bool has InfiniteLineLength, bool relayoutChildren = false);
125 bool childPreferredMainAxisContentExtentRequiresLayout(RenderBox& child, boo l hasInfiniteLineLength) const; 125 bool childPreferredMainAxisContentExtentRequiresLayout(LayoutBox& child, boo l hasInfiniteLineLength) const;
126 bool needToStretchChildLogicalHeight(RenderBox& child) const; 126 bool needToStretchChildLogicalHeight(LayoutBox& child) const;
127 127
128 void layoutFlexItems(bool relayoutChildren); 128 void layoutFlexItems(bool relayoutChildren);
129 LayoutUnit autoMarginOffsetInMainAxis(const OrderedFlexItemList&, LayoutUnit & availableFreeSpace); 129 LayoutUnit autoMarginOffsetInMainAxis(const OrderedFlexItemList&, LayoutUnit & availableFreeSpace);
130 void updateAutoMarginsInMainAxis(RenderBox& child, LayoutUnit autoMarginOffs et); 130 void updateAutoMarginsInMainAxis(LayoutBox& child, LayoutUnit autoMarginOffs et);
131 bool hasAutoMarginsInCrossAxis(RenderBox& child) const; 131 bool hasAutoMarginsInCrossAxis(LayoutBox& child) const;
132 bool updateAutoMarginsInCrossAxis(RenderBox& child, LayoutUnit availableAlig nmentSpace); 132 bool updateAutoMarginsInCrossAxis(LayoutBox& child, LayoutUnit availableAlig nmentSpace);
133 void repositionLogicalHeightDependentFlexItems(Vector<LineContext>&); 133 void repositionLogicalHeightDependentFlexItems(Vector<LineContext>&);
134 LayoutUnit clientLogicalBottomAfterRepositioning(); 134 LayoutUnit clientLogicalBottomAfterRepositioning();
135 void appendChildFrameRects(ChildFrameRects&); 135 void appendChildFrameRects(ChildFrameRects&);
136 136
137 LayoutUnit availableAlignmentSpaceForChild(LayoutUnit lineCrossAxisExtent, R enderBox& child); 137 LayoutUnit availableAlignmentSpaceForChild(LayoutUnit lineCrossAxisExtent, L ayoutBox& child);
138 LayoutUnit availableAlignmentSpaceForChildBeforeStretching(LayoutUnit lineCr ossAxisExtent, RenderBox& child); 138 LayoutUnit availableAlignmentSpaceForChildBeforeStretching(LayoutUnit lineCr ossAxisExtent, LayoutBox& child);
139 LayoutUnit marginBoxAscentForChild(RenderBox& child); 139 LayoutUnit marginBoxAscentForChild(LayoutBox& child);
140 140
141 LayoutUnit computeChildMarginValue(Length margin); 141 LayoutUnit computeChildMarginValue(Length margin);
142 void prepareOrderIteratorAndMargins(); 142 void prepareOrderIteratorAndMargins();
143 LayoutUnit adjustChildSizeForMinAndMax(RenderBox& child, LayoutUnit childSiz e); 143 LayoutUnit adjustChildSizeForMinAndMax(LayoutBox& child, LayoutUnit childSiz e);
144 // The hypothetical main size of an item is the flex base size clamped accor ding to its min and max main size properties 144 // The hypothetical main size of an item is the flex base size clamped accor ding to its min and max main size properties
145 bool computeNextFlexLine(OrderedFlexItemList& orderedChildren, LayoutUnit& s umFlexBaseSize, double& totalFlexGrow, double& totalWeightedFlexShrink, LayoutUn it& sumHypotheticalMainSize, bool& hasInfiniteLineLength, bool relayoutChildren) ; 145 bool computeNextFlexLine(OrderedFlexItemList& orderedChildren, LayoutUnit& s umFlexBaseSize, double& totalFlexGrow, double& totalWeightedFlexShrink, LayoutUn it& sumHypotheticalMainSize, bool& hasInfiniteLineLength, bool relayoutChildren) ;
146 146
147 bool resolveFlexibleLengths(FlexSign, const OrderedFlexItemList&, LayoutUnit & availableFreeSpace, double& totalFlexGrow, double& totalWeightedFlexShrink, In flexibleFlexItemSize&, Vector<LayoutUnit, 16>& childSizes, bool hasInfiniteLineL ength); 147 bool resolveFlexibleLengths(FlexSign, const OrderedFlexItemList&, LayoutUnit & availableFreeSpace, double& totalFlexGrow, double& totalWeightedFlexShrink, In flexibleFlexItemSize&, Vector<LayoutUnit, 16>& childSizes, bool hasInfiniteLineL ength);
148 void freezeViolations(const Vector<Violation>&, LayoutUnit& availableFreeSpa ce, double& totalFlexGrow, double& totalWeightedFlexShrink, InflexibleFlexItemSi ze&, bool hasInfiniteLineLength); 148 void freezeViolations(const Vector<Violation>&, LayoutUnit& availableFreeSpa ce, double& totalFlexGrow, double& totalWeightedFlexShrink, InflexibleFlexItemSi ze&, bool hasInfiniteLineLength);
149 149
150 void resetAutoMarginsAndLogicalTopInCrossAxis(RenderBox& child); 150 void resetAutoMarginsAndLogicalTopInCrossAxis(LayoutBox& child);
151 void setOverrideMainAxisSizeForChild(RenderBox& child, LayoutUnit childPrefe rredSize); 151 void setOverrideMainAxisSizeForChild(LayoutBox& child, LayoutUnit childPrefe rredSize);
152 void prepareChildForPositionedLayout(RenderBox& child, LayoutUnit mainAxisOf fset, LayoutUnit crossAxisOffset, PositionedLayoutMode); 152 void prepareChildForPositionedLayout(LayoutBox& child, LayoutUnit mainAxisOf fset, LayoutUnit crossAxisOffset, PositionedLayoutMode);
153 size_t numberOfInFlowPositionedChildren(const OrderedFlexItemList&) const; 153 size_t numberOfInFlowPositionedChildren(const OrderedFlexItemList&) const;
154 void layoutAndPlaceChildren(LayoutUnit& crossAxisOffset, const OrderedFlexIt emList&, const Vector<LayoutUnit, 16>& childSizes, LayoutUnit availableFreeSpace , bool relayoutChildren, Vector<LineContext>&, bool hasInfiniteLineLength); 154 void layoutAndPlaceChildren(LayoutUnit& crossAxisOffset, const OrderedFlexIt emList&, const Vector<LayoutUnit, 16>& childSizes, LayoutUnit availableFreeSpace , bool relayoutChildren, Vector<LineContext>&, bool hasInfiniteLineLength);
155 void layoutColumnReverse(const OrderedFlexItemList&, LayoutUnit crossAxisOff set, LayoutUnit availableFreeSpace); 155 void layoutColumnReverse(const OrderedFlexItemList&, LayoutUnit crossAxisOff set, LayoutUnit availableFreeSpace);
156 void alignFlexLines(Vector<LineContext>&); 156 void alignFlexLines(Vector<LineContext>&);
157 void alignChildren(const Vector<LineContext>&); 157 void alignChildren(const Vector<LineContext>&);
158 void applyStretchAlignmentToChild(RenderBox& child, LayoutUnit lineCrossAxis Extent); 158 void applyStretchAlignmentToChild(LayoutBox& child, LayoutUnit lineCrossAxis Extent);
159 void flipForRightToLeftColumn(); 159 void flipForRightToLeftColumn();
160 void flipForWrapReverse(const Vector<LineContext>&, LayoutUnit crossAxisStar tEdge); 160 void flipForWrapReverse(const Vector<LineContext>&, LayoutUnit crossAxisStar tEdge);
161 161
162 // This is used to cache the preferred size for orthogonal flow children so we don't have to relayout to get it 162 // This is used to cache the preferred size for orthogonal flow children so we don't have to relayout to get it
163 HashMap<const LayoutObject*, LayoutUnit> m_intrinsicSizeAlongMainAxis; 163 HashMap<const LayoutObject*, LayoutUnit> m_intrinsicSizeAlongMainAxis;
164 164
165 mutable OrderIterator m_orderIterator; 165 mutable OrderIterator m_orderIterator;
166 int m_numberOfInFlowChildrenOnFirstLine; 166 int m_numberOfInFlowChildrenOnFirstLine;
167 }; 167 };
168 168
169 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(RenderFlexibleBox, isFlexibleBox()); 169 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(RenderFlexibleBox, isFlexibleBox());
170 170
171 } // namespace blink 171 } // namespace blink
172 172
173 #endif // RenderFlexibleBox_h 173 #endif // RenderFlexibleBox_h
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderFileUploadControl.cpp ('k') | Source/core/rendering/RenderFlexibleBox.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698