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 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 virtual void paintChildren(PaintInfo&, const LayoutPoint&) OVERRIDE FINAL; | 57 virtual void paintChildren(PaintInfo&, const LayoutPoint&) OVERRIDE FINAL; |
58 | 58 |
59 bool isHorizontalFlow() const; | 59 bool isHorizontalFlow() const; |
60 | 60 |
61 protected: | 61 protected: |
62 virtual void computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, Layo
utUnit& maxLogicalWidth) const OVERRIDE; | 62 virtual void computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, Layo
utUnit& maxLogicalWidth) const OVERRIDE; |
63 | 63 |
64 virtual bool supportsPartialLayout() const OVERRIDE { return false; } | 64 virtual bool supportsPartialLayout() const OVERRIDE { return false; } |
65 | 65 |
66 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) OV
ERRIDE; | 66 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) OV
ERRIDE; |
| 67 virtual void removeChild(RenderObject*) OVERRIDE; |
67 | 68 |
68 private: | 69 private: |
69 enum FlexSign { | 70 enum FlexSign { |
70 PositiveFlexibility, | 71 PositiveFlexibility, |
71 NegativeFlexibility, | 72 NegativeFlexibility, |
72 }; | 73 }; |
73 | 74 |
74 enum PositionedLayoutMode { | 75 enum PositionedLayoutMode { |
75 FlipForRowReverse, | 76 FlipForRowReverse, |
76 NoFlipForRowReverse, | 77 NoFlipForRowReverse, |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
149 void prepareChildForPositionedLayout(RenderBox* child, LayoutUnit mainAxisOf
fset, LayoutUnit crossAxisOffset, PositionedLayoutMode); | 150 void prepareChildForPositionedLayout(RenderBox* child, LayoutUnit mainAxisOf
fset, LayoutUnit crossAxisOffset, PositionedLayoutMode); |
150 size_t numberOfInFlowPositionedChildren(const OrderedFlexItemList&) const; | 151 size_t numberOfInFlowPositionedChildren(const OrderedFlexItemList&) const; |
151 void layoutAndPlaceChildren(LayoutUnit& crossAxisOffset, const OrderedFlexIt
emList&, const Vector<LayoutUnit>& childSizes, LayoutUnit availableFreeSpace, bo
ol relayoutChildren, Vector<LineContext>&); | 152 void layoutAndPlaceChildren(LayoutUnit& crossAxisOffset, const OrderedFlexIt
emList&, const Vector<LayoutUnit>& childSizes, LayoutUnit availableFreeSpace, bo
ol relayoutChildren, Vector<LineContext>&); |
152 void layoutColumnReverse(const OrderedFlexItemList&, LayoutUnit crossAxisOff
set, LayoutUnit availableFreeSpace); | 153 void layoutColumnReverse(const OrderedFlexItemList&, LayoutUnit crossAxisOff
set, LayoutUnit availableFreeSpace); |
153 void alignFlexLines(Vector<LineContext>&); | 154 void alignFlexLines(Vector<LineContext>&); |
154 void alignChildren(const Vector<LineContext>&); | 155 void alignChildren(const Vector<LineContext>&); |
155 void applyStretchAlignmentToChild(RenderBox*, LayoutUnit lineCrossAxisExtent
); | 156 void applyStretchAlignmentToChild(RenderBox*, LayoutUnit lineCrossAxisExtent
); |
156 void flipForRightToLeftColumn(); | 157 void flipForRightToLeftColumn(); |
157 void flipForWrapReverse(const Vector<LineContext>&, LayoutUnit crossAxisStar
tEdge); | 158 void flipForWrapReverse(const Vector<LineContext>&, LayoutUnit crossAxisStar
tEdge); |
158 | 159 |
| 160 // This is used to cache the preferred size for orthogonal flow children so
we don't have to relayout to get it |
| 161 HashMap<const RenderObject*, LayoutUnit> m_intrinsicSizeAlongMainAxis; |
| 162 |
159 mutable OrderIterator m_orderIterator; | 163 mutable OrderIterator m_orderIterator; |
160 int m_numberOfInFlowChildrenOnFirstLine; | 164 int m_numberOfInFlowChildrenOnFirstLine; |
161 }; | 165 }; |
162 | 166 |
163 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderFlexibleBox, isFlexibleBox()); | 167 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderFlexibleBox, isFlexibleBox()); |
164 | 168 |
165 } // namespace WebCore | 169 } // namespace WebCore |
166 | 170 |
167 #endif // RenderFlexibleBox_h | 171 #endif // RenderFlexibleBox_h |
OLD | NEW |