OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2007 David Smith (catfish.man@gmail.com) | 4 * (C) 2007 David Smith (catfish.man@gmail.com) |
5 * Copyright (C) 2003-2013 Apple Inc. All rights reserved. | 5 * Copyright (C) 2003-2013 Apple Inc. All rights reserved. |
6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
7 * Copyright (C) 2013 Google Inc. All rights reserved. | 7 * Copyright (C) 2013 Google Inc. All rights reserved. |
8 * | 8 * |
9 * Redistribution and use in source and binary forms, with or without | 9 * Redistribution and use in source and binary forms, with or without |
10 * modification, are permitted provided that the following conditions are | 10 * modification, are permitted provided that the following conditions are |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 | 45 |
46 class MarginInfo; | 46 class MarginInfo; |
47 class LineBreaker; | 47 class LineBreaker; |
48 class LineWidth; | 48 class LineWidth; |
49 class RenderMultiColumnFlowThread; | 49 class RenderMultiColumnFlowThread; |
50 | 50 |
51 class RenderBlockFlow : public RenderBlock { | 51 class RenderBlockFlow : public RenderBlock { |
52 public: | 52 public: |
53 explicit RenderBlockFlow(ContainerNode*); | 53 explicit RenderBlockFlow(ContainerNode*); |
54 virtual ~RenderBlockFlow(); | 54 virtual ~RenderBlockFlow(); |
55 virtual void trace(Visitor*) OVERRIDE; | 55 virtual void trace(Visitor*) override; |
56 | 56 |
57 static RenderBlockFlow* createAnonymous(Document*); | 57 static RenderBlockFlow* createAnonymous(Document*); |
58 | 58 |
59 virtual bool isRenderBlockFlow() const OVERRIDE FINAL { return true; } | 59 virtual bool isRenderBlockFlow() const override final { return true; } |
60 | 60 |
61 virtual void layoutBlock(bool relayoutChildren) OVERRIDE; | 61 virtual void layoutBlock(bool relayoutChildren) override; |
62 | 62 |
63 virtual void computeOverflow(LayoutUnit oldClientAfterEdge, bool recomputeFl
oats = false) OVERRIDE; | 63 virtual void computeOverflow(LayoutUnit oldClientAfterEdge, bool recomputeFl
oats = false) override; |
64 | 64 |
65 virtual void deleteLineBoxTree() OVERRIDE FINAL; | 65 virtual void deleteLineBoxTree() override final; |
66 | 66 |
67 LayoutUnit availableLogicalWidthForLine(LayoutUnit position, bool shouldInde
ntText, LayoutUnit logicalHeight = 0) const | 67 LayoutUnit availableLogicalWidthForLine(LayoutUnit position, bool shouldInde
ntText, LayoutUnit logicalHeight = 0) const |
68 { | 68 { |
69 return max<LayoutUnit>(0, logicalRightOffsetForLine(position, shouldInde
ntText, logicalHeight) - logicalLeftOffsetForLine(position, shouldIndentText, lo
gicalHeight)); | 69 return max<LayoutUnit>(0, logicalRightOffsetForLine(position, shouldInde
ntText, logicalHeight) - logicalLeftOffsetForLine(position, shouldIndentText, lo
gicalHeight)); |
70 } | 70 } |
71 LayoutUnit logicalRightOffsetForLine(LayoutUnit position, bool shouldIndentT
ext, LayoutUnit logicalHeight = 0) const | 71 LayoutUnit logicalRightOffsetForLine(LayoutUnit position, bool shouldIndentT
ext, LayoutUnit logicalHeight = 0) const |
72 { | 72 { |
73 return logicalRightOffsetForLine(position, logicalRightOffsetForContent(
), shouldIndentText, logicalHeight); | 73 return logicalRightOffsetForLine(position, logicalRightOffsetForContent(
), shouldIndentText, logicalHeight); |
74 } | 74 } |
75 LayoutUnit logicalLeftOffsetForLine(LayoutUnit position, bool shouldIndentTe
xt, LayoutUnit logicalHeight = 0) const | 75 LayoutUnit logicalLeftOffsetForLine(LayoutUnit position, bool shouldIndentTe
xt, LayoutUnit logicalHeight = 0) const |
(...skipping 12 matching lines...) Expand all Loading... |
88 } | 88 } |
89 | 89 |
90 // FIXME-BLOCKFLOW: Move this into RenderBlockFlow once there are no calls | 90 // FIXME-BLOCKFLOW: Move this into RenderBlockFlow once there are no calls |
91 // in RenderBlock. http://crbug.com/393945, http://crbug.com/302024 | 91 // in RenderBlock. http://crbug.com/393945, http://crbug.com/302024 |
92 using RenderBlock::lineBoxes; | 92 using RenderBlock::lineBoxes; |
93 using RenderBlock::firstLineBox; | 93 using RenderBlock::firstLineBox; |
94 using RenderBlock::lastLineBox; | 94 using RenderBlock::lastLineBox; |
95 using RenderBlock::firstRootBox; | 95 using RenderBlock::firstRootBox; |
96 using RenderBlock::lastRootBox; | 96 using RenderBlock::lastRootBox; |
97 | 97 |
98 virtual LayoutUnit logicalLeftSelectionOffset(const RenderBlock* rootBlock,
LayoutUnit position) const OVERRIDE; | 98 virtual LayoutUnit logicalLeftSelectionOffset(const RenderBlock* rootBlock,
LayoutUnit position) const override; |
99 virtual LayoutUnit logicalRightSelectionOffset(const RenderBlock* rootBlock,
LayoutUnit position) const OVERRIDE; | 99 virtual LayoutUnit logicalRightSelectionOffset(const RenderBlock* rootBlock,
LayoutUnit position) const override; |
100 | 100 |
101 RootInlineBox* createAndAppendRootInlineBox(); | 101 RootInlineBox* createAndAppendRootInlineBox(); |
102 | 102 |
103 void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, boo
l inLayout = true); | 103 void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, boo
l inLayout = true); |
104 void markSiblingsWithFloatsForLayout(RenderBox* floatToRemove = 0); | 104 void markSiblingsWithFloatsForLayout(RenderBox* floatToRemove = 0); |
105 | 105 |
106 bool containsFloats() const { return m_floatingObjects && !m_floatingObjects
->set().isEmpty(); } | 106 bool containsFloats() const { return m_floatingObjects && !m_floatingObjects
->set().isEmpty(); } |
107 bool containsFloat(RenderBox*) const; | 107 bool containsFloat(RenderBox*) const; |
108 | 108 |
109 void removeFloatingObjects(); | 109 void removeFloatingObjects(); |
110 | 110 |
111 virtual void addChild(RenderObject* newChild, RenderObject* beforeChild = 0)
OVERRIDE; | 111 virtual void addChild(RenderObject* newChild, RenderObject* beforeChild = 0)
override; |
112 | 112 |
113 void moveAllChildrenIncludingFloatsTo(RenderBlock* toBlock, bool fullRemoveI
nsert); | 113 void moveAllChildrenIncludingFloatsTo(RenderBlock* toBlock, bool fullRemoveI
nsert); |
114 | 114 |
115 bool generatesLineBoxesForInlineChild(RenderObject*); | 115 bool generatesLineBoxesForInlineChild(RenderObject*); |
116 | 116 |
117 LayoutUnit logicalTopForFloat(const FloatingObject* floatingObject) const {
return isHorizontalWritingMode() ? floatingObject->y() : floatingObject->x(); } | 117 LayoutUnit logicalTopForFloat(const FloatingObject* floatingObject) const {
return isHorizontalWritingMode() ? floatingObject->y() : floatingObject->x(); } |
118 LayoutUnit logicalBottomForFloat(const FloatingObject* floatingObject) const
{ return isHorizontalWritingMode() ? floatingObject->maxY() : floatingObject->m
axX(); } | 118 LayoutUnit logicalBottomForFloat(const FloatingObject* floatingObject) const
{ return isHorizontalWritingMode() ? floatingObject->maxY() : floatingObject->m
axX(); } |
119 LayoutUnit logicalLeftForFloat(const FloatingObject* floatingObject) const {
return isHorizontalWritingMode() ? floatingObject->x() : floatingObject->y(); } | 119 LayoutUnit logicalLeftForFloat(const FloatingObject* floatingObject) const {
return isHorizontalWritingMode() ? floatingObject->x() : floatingObject->y(); } |
120 LayoutUnit logicalRightForFloat(const FloatingObject* floatingObject) const
{ return isHorizontalWritingMode() ? floatingObject->maxX() : floatingObject->ma
xY(); } | 120 LayoutUnit logicalRightForFloat(const FloatingObject* floatingObject) const
{ return isHorizontalWritingMode() ? floatingObject->maxX() : floatingObject->ma
xY(); } |
121 LayoutUnit logicalWidthForFloat(const FloatingObject* floatingObject) const
{ return isHorizontalWritingMode() ? floatingObject->width() : floatingObject->h
eight(); } | 121 LayoutUnit logicalWidthForFloat(const FloatingObject* floatingObject) const
{ return isHorizontalWritingMode() ? floatingObject->width() : floatingObject->h
eight(); } |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
177 | 177 |
178 // FIXME: This should be const to avoid a const_cast, but can modify child d
irty bits and RenderCombineText | 178 // FIXME: This should be const to avoid a const_cast, but can modify child d
irty bits and RenderCombineText |
179 void computeInlinePreferredLogicalWidths(LayoutUnit& minLogicalWidth, Layout
Unit& maxLogicalWidth); | 179 void computeInlinePreferredLogicalWidths(LayoutUnit& minLogicalWidth, Layout
Unit& maxLogicalWidth); |
180 | 180 |
181 GapRects inlineSelectionGaps(const RenderBlock* rootBlock, const LayoutPoint
& rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, | 181 GapRects inlineSelectionGaps(const RenderBlock* rootBlock, const LayoutPoint
& rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, |
182 LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& las
tLogicalRight, const PaintInfo*) const; | 182 LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& las
tLogicalRight, const PaintInfo*) const; |
183 | 183 |
184 LayoutUnit paginationStrut() const { return m_rareData ? m_rareData->m_pagin
ationStrut : LayoutUnit(); } | 184 LayoutUnit paginationStrut() const { return m_rareData ? m_rareData->m_pagin
ationStrut : LayoutUnit(); } |
185 void setPaginationStrut(LayoutUnit); | 185 void setPaginationStrut(LayoutUnit); |
186 | 186 |
187 virtual bool avoidsFloats() const OVERRIDE; | 187 virtual bool avoidsFloats() const override; |
188 | 188 |
189 LayoutUnit xPositionForFloatIncludingMargin(const FloatingObject* child) con
st | 189 LayoutUnit xPositionForFloatIncludingMargin(const FloatingObject* child) con
st |
190 { | 190 { |
191 if (isHorizontalWritingMode()) | 191 if (isHorizontalWritingMode()) |
192 return child->x() + child->renderer()->marginLeft(); | 192 return child->x() + child->renderer()->marginLeft(); |
193 | 193 |
194 return child->x() + marginBeforeForChild(child->renderer()); | 194 return child->x() + marginBeforeForChild(child->renderer()); |
195 } | 195 } |
196 | 196 |
197 LayoutUnit yPositionForFloatIncludingMargin(const FloatingObject* child) con
st | 197 LayoutUnit yPositionForFloatIncludingMargin(const FloatingObject* child) con
st |
198 { | 198 { |
199 if (isHorizontalWritingMode()) | 199 if (isHorizontalWritingMode()) |
200 return child->y() + marginBeforeForChild(child->renderer()); | 200 return child->y() + marginBeforeForChild(child->renderer()); |
201 | 201 |
202 return child->y() + child->renderer()->marginTop(); | 202 return child->y() + child->renderer()->marginTop(); |
203 } | 203 } |
204 | 204 |
205 LayoutPoint flipFloatForWritingModeForChild(const FloatingObject*, const Lay
outPoint&) const; | 205 LayoutPoint flipFloatForWritingModeForChild(const FloatingObject*, const Lay
outPoint&) const; |
206 | 206 |
207 protected: | 207 protected: |
208 void rebuildFloatsFromIntruding(); | 208 void rebuildFloatsFromIntruding(); |
209 void layoutInlineChildren(bool relayoutChildren, LayoutUnit& paintInvalidati
onLogicalTop, LayoutUnit& paintInvalidationLogicalBottom, LayoutUnit afterEdge); | 209 void layoutInlineChildren(bool relayoutChildren, LayoutUnit& paintInvalidati
onLogicalTop, LayoutUnit& paintInvalidationLogicalBottom, LayoutUnit afterEdge); |
210 | 210 |
211 void createFloatingObjects(); | 211 void createFloatingObjects(); |
212 | 212 |
213 virtual void styleWillChange(StyleDifference, const RenderStyle& newStyle) O
VERRIDE; | 213 virtual void styleWillChange(StyleDifference, const RenderStyle& newStyle) o
verride; |
214 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) OV
ERRIDE; | 214 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) ov
erride; |
215 | 215 |
216 void addOverflowFromFloats(); | 216 void addOverflowFromFloats(); |
217 | 217 |
218 LayoutUnit logicalRightOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixed
Offset, bool applyTextIndent, LayoutUnit logicalHeight = 0) const | 218 LayoutUnit logicalRightOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixed
Offset, bool applyTextIndent, LayoutUnit logicalHeight = 0) const |
219 { | 219 { |
220 return adjustLogicalRightOffsetForLine(logicalRightFloatOffsetForLine(lo
gicalTop, fixedOffset, logicalHeight), applyTextIndent); | 220 return adjustLogicalRightOffsetForLine(logicalRightFloatOffsetForLine(lo
gicalTop, fixedOffset, logicalHeight), applyTextIndent); |
221 } | 221 } |
222 LayoutUnit logicalLeftOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedO
ffset, bool applyTextIndent, LayoutUnit logicalHeight = 0) const | 222 LayoutUnit logicalLeftOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedO
ffset, bool applyTextIndent, LayoutUnit logicalHeight = 0) const |
223 { | 223 { |
224 return adjustLogicalLeftOffsetForLine(logicalLeftFloatOffsetForLine(logi
calTop, fixedOffset, logicalHeight), applyTextIndent); | 224 return adjustLogicalLeftOffsetForLine(logicalLeftFloatOffsetForLine(logi
calTop, fixedOffset, logicalHeight), applyTextIndent); |
225 } | 225 } |
226 | 226 |
227 virtual RenderObject* layoutSpecialExcludedChild(bool /*relayoutChildren*/,
SubtreeLayoutScope&); | 227 virtual RenderObject* layoutSpecialExcludedChild(bool /*relayoutChildren*/,
SubtreeLayoutScope&); |
228 virtual bool updateLogicalWidthAndColumnWidth() OVERRIDE; | 228 virtual bool updateLogicalWidthAndColumnWidth() override; |
229 | 229 |
230 void setLogicalLeftForChild(RenderBox* child, LayoutUnit logicalLeft); | 230 void setLogicalLeftForChild(RenderBox* child, LayoutUnit logicalLeft); |
231 void setLogicalTopForChild(RenderBox* child, LayoutUnit logicalTop); | 231 void setLogicalTopForChild(RenderBox* child, LayoutUnit logicalTop); |
232 void determineLogicalLeftPositionForChild(RenderBox* child); | 232 void determineLogicalLeftPositionForChild(RenderBox* child); |
233 | 233 |
234 private: | 234 private: |
235 bool layoutBlockFlow(bool relayoutChildren, LayoutUnit& pageLogicalHeight, S
ubtreeLayoutScope&); | 235 bool layoutBlockFlow(bool relayoutChildren, LayoutUnit& pageLogicalHeight, S
ubtreeLayoutScope&); |
236 void layoutBlockChildren(bool relayoutChildren, SubtreeLayoutScope&, LayoutU
nit beforeEdge, LayoutUnit afterEdge); | 236 void layoutBlockChildren(bool relayoutChildren, SubtreeLayoutScope&, LayoutU
nit beforeEdge, LayoutUnit afterEdge); |
237 | 237 |
238 void layoutBlockChild(RenderBox* child, MarginInfo&, LayoutUnit& previousFlo
atLogicalBottom); | 238 void layoutBlockChild(RenderBox* child, MarginInfo&, LayoutUnit& previousFlo
atLogicalBottom); |
(...skipping 13 matching lines...) Expand all Loading... |
252 LayoutUnit getClearDelta(RenderBox* child, LayoutUnit yPos); | 252 LayoutUnit getClearDelta(RenderBox* child, LayoutUnit yPos); |
253 | 253 |
254 bool hasOverhangingFloats() { return parent() && !hasColumns() && containsFl
oats() && lowestFloatLogicalBottom() > logicalHeight(); } | 254 bool hasOverhangingFloats() { return parent() && !hasColumns() && containsFl
oats() && lowestFloatLogicalBottom() > logicalHeight(); } |
255 bool hasOverhangingFloat(RenderBox*); | 255 bool hasOverhangingFloat(RenderBox*); |
256 void addIntrudingFloats(RenderBlockFlow* prev, LayoutUnit xoffset, LayoutUni
t yoffset); | 256 void addIntrudingFloats(RenderBlockFlow* prev, LayoutUnit xoffset, LayoutUni
t yoffset); |
257 void addOverhangingFloats(RenderBlockFlow* child, bool makeChildPaintOtherFl
oats); | 257 void addOverhangingFloats(RenderBlockFlow* child, bool makeChildPaintOtherFl
oats); |
258 | 258 |
259 LayoutUnit lowestFloatLogicalBottom(FloatingObject::Type = FloatingObject::F
loatLeftRight) const; | 259 LayoutUnit lowestFloatLogicalBottom(FloatingObject::Type = FloatingObject::F
loatLeftRight) const; |
260 LayoutUnit nextFloatLogicalBottomBelow(LayoutUnit, ShapeOutsideFloatOffsetMo
de = ShapeOutsideFloatMarginBoxOffset) const; | 260 LayoutUnit nextFloatLogicalBottomBelow(LayoutUnit, ShapeOutsideFloatOffsetMo
de = ShapeOutsideFloatMarginBoxOffset) const; |
261 | 261 |
262 virtual bool hitTestFloats(const HitTestRequest&, HitTestResult&, const HitT
estLocation& locationInContainer, const LayoutPoint& accumulatedOffset) OVERRIDE
FINAL; | 262 virtual bool hitTestFloats(const HitTestRequest&, HitTestResult&, const HitT
estLocation& locationInContainer, const LayoutPoint& accumulatedOffset) override
final; |
263 | 263 |
264 virtual void invalidatePaintForOverhangingFloats(bool paintAllDescendants) O
VERRIDE FINAL; | 264 virtual void invalidatePaintForOverhangingFloats(bool paintAllDescendants) o
verride final; |
265 virtual void invalidatePaintForOverflow() OVERRIDE FINAL; | 265 virtual void invalidatePaintForOverflow() override final; |
266 virtual void paintFloats(PaintInfo&, const LayoutPoint&, bool preservePhase
= false) OVERRIDE FINAL; | 266 virtual void paintFloats(PaintInfo&, const LayoutPoint&, bool preservePhase
= false) override final; |
267 virtual void clipOutFloatingObjects(const RenderBlock*, const PaintInfo*, co
nst LayoutPoint&, const LayoutSize&) const OVERRIDE; | 267 virtual void clipOutFloatingObjects(const RenderBlock*, const PaintInfo*, co
nst LayoutPoint&, const LayoutSize&) const override; |
268 void clearFloats(EClear); | 268 void clearFloats(EClear); |
269 | 269 |
270 LayoutUnit logicalRightFloatOffsetForLine(LayoutUnit logicalTop, LayoutUnit
fixedOffset, LayoutUnit logicalHeight) const; | 270 LayoutUnit logicalRightFloatOffsetForLine(LayoutUnit logicalTop, LayoutUnit
fixedOffset, LayoutUnit logicalHeight) const; |
271 LayoutUnit logicalLeftFloatOffsetForLine(LayoutUnit logicalTop, LayoutUnit f
ixedOffset, LayoutUnit logicalHeight) const; | 271 LayoutUnit logicalLeftFloatOffsetForLine(LayoutUnit logicalTop, LayoutUnit f
ixedOffset, LayoutUnit logicalHeight) const; |
272 | 272 |
273 LayoutUnit logicalRightOffsetForPositioningFloat(LayoutUnit logicalTop, Layo
utUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining) const; | 273 LayoutUnit logicalRightOffsetForPositioningFloat(LayoutUnit logicalTop, Layo
utUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining) const; |
274 LayoutUnit logicalLeftOffsetForPositioningFloat(LayoutUnit logicalTop, Layou
tUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining) const; | 274 LayoutUnit logicalLeftOffsetForPositioningFloat(LayoutUnit logicalTop, Layou
tUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining) const; |
275 | 275 |
276 LayoutUnit adjustLogicalRightOffsetForLine(LayoutUnit offsetFromFloats, bool
applyTextIndent) const; | 276 LayoutUnit adjustLogicalRightOffsetForLine(LayoutUnit offsetFromFloats, bool
applyTextIndent) const; |
277 LayoutUnit adjustLogicalLeftOffsetForLine(LayoutUnit offsetFromFloats, bool
applyTextIndent) const; | 277 LayoutUnit adjustLogicalLeftOffsetForLine(LayoutUnit offsetFromFloats, bool
applyTextIndent) const; |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
420 m_rareData->m_margins = MarginValues(RenderBlockFlowRareData::positi
veMarginBeforeDefault(this) , RenderBlockFlowRareData::negativeMarginBeforeDefau
lt(this), | 420 m_rareData->m_margins = MarginValues(RenderBlockFlowRareData::positi
veMarginBeforeDefault(this) , RenderBlockFlowRareData::negativeMarginBeforeDefau
lt(this), |
421 RenderBlockFlowRareData::positiveMarginAfterDefault(this), Rende
rBlockFlowRareData::negativeMarginAfterDefault(this)); | 421 RenderBlockFlowRareData::positiveMarginAfterDefault(this), Rende
rBlockFlowRareData::negativeMarginAfterDefault(this)); |
422 | 422 |
423 m_rareData->m_discardMarginBefore = false; | 423 m_rareData->m_discardMarginBefore = false; |
424 m_rareData->m_discardMarginAfter = false; | 424 m_rareData->m_discardMarginAfter = false; |
425 } | 425 } |
426 } | 426 } |
427 | 427 |
428 virtual ETextAlign textAlignmentForLine(bool endsWithSoftBreak) const; | 428 virtual ETextAlign textAlignmentForLine(bool endsWithSoftBreak) const; |
429 private: | 429 private: |
430 virtual LayoutUnit collapsedMarginBefore() const OVERRIDE FINAL { return max
PositiveMarginBefore() - maxNegativeMarginBefore(); } | 430 virtual LayoutUnit collapsedMarginBefore() const override final { return max
PositiveMarginBefore() - maxNegativeMarginBefore(); } |
431 virtual LayoutUnit collapsedMarginAfter() const OVERRIDE FINAL { return maxP
ositiveMarginAfter() - maxNegativeMarginAfter(); } | 431 virtual LayoutUnit collapsedMarginAfter() const override final { return maxP
ositiveMarginAfter() - maxNegativeMarginAfter(); } |
432 | 432 |
433 LayoutUnit collapseMargins(RenderBox* child, MarginInfo&, bool childIsSelfCo
llapsing); | 433 LayoutUnit collapseMargins(RenderBox* child, MarginInfo&, bool childIsSelfCo
llapsing); |
434 LayoutUnit clearFloatsIfNeeded(RenderBox* child, MarginInfo&, LayoutUnit old
TopPosMargin, LayoutUnit oldTopNegMargin, LayoutUnit yPos, bool childIsSelfColla
psing); | 434 LayoutUnit clearFloatsIfNeeded(RenderBox* child, MarginInfo&, LayoutUnit old
TopPosMargin, LayoutUnit oldTopNegMargin, LayoutUnit yPos, bool childIsSelfColla
psing); |
435 LayoutUnit estimateLogicalTopPosition(RenderBox* child, const MarginInfo&, L
ayoutUnit& estimateWithoutPagination); | 435 LayoutUnit estimateLogicalTopPosition(RenderBox* child, const MarginInfo&, L
ayoutUnit& estimateWithoutPagination); |
436 void marginBeforeEstimateForChild(RenderBox*, LayoutUnit&, LayoutUnit&, bool
&) const; | 436 void marginBeforeEstimateForChild(RenderBox*, LayoutUnit&, LayoutUnit&, bool
&) const; |
437 void handleAfterSideOfBlock(RenderBox* lastChild, LayoutUnit top, LayoutUnit
bottom, MarginInfo&); | 437 void handleAfterSideOfBlock(RenderBox* lastChild, LayoutUnit top, LayoutUnit
bottom, MarginInfo&); |
438 void setCollapsedBottomMargin(const MarginInfo&); | 438 void setCollapsedBottomMargin(const MarginInfo&); |
439 | 439 |
440 LayoutUnit applyBeforeBreak(RenderBox* child, LayoutUnit logicalOffset); //
If the child has a before break, then return a new yPos that shifts to the top o
f the next page/column. | 440 LayoutUnit applyBeforeBreak(RenderBox* child, LayoutUnit logicalOffset); //
If the child has a before break, then return a new yPos that shifts to the top o
f the next page/column. |
441 LayoutUnit applyAfterBreak(RenderBox* child, LayoutUnit logicalOffset, Margi
nInfo&); // If the child has an after break, then return a new offset that shift
s to the top of the next page/column. | 441 LayoutUnit applyAfterBreak(RenderBox* child, LayoutUnit logicalOffset, Margi
nInfo&); // If the child has an after break, then return a new offset that shift
s to the top of the next page/column. |
442 | 442 |
443 LayoutUnit adjustBlockChildForPagination(LayoutUnit logicalTopAfterClear, La
youtUnit estimateWithoutPagination, RenderBox* child, bool atBeforeSideOfBlock); | 443 LayoutUnit adjustBlockChildForPagination(LayoutUnit logicalTopAfterClear, La
youtUnit estimateWithoutPagination, RenderBox* child, bool atBeforeSideOfBlock); |
444 // Computes a deltaOffset value that put a line at the top of the next page
if it doesn't fit on the current page. | 444 // Computes a deltaOffset value that put a line at the top of the next page
if it doesn't fit on the current page. |
445 void adjustLinePositionForPagination(RootInlineBox*, LayoutUnit& deltaOffset
, RenderFlowThread*); | 445 void adjustLinePositionForPagination(RootInlineBox*, LayoutUnit& deltaOffset
, RenderFlowThread*); |
446 // If the child is unsplittable and can't fit on the current page, return th
e top of the next page/column. | 446 // If the child is unsplittable and can't fit on the current page, return th
e top of the next page/column. |
447 LayoutUnit adjustForUnsplittableChild(RenderBox*, LayoutUnit logicalOffset,
bool includeMargins = false); | 447 LayoutUnit adjustForUnsplittableChild(RenderBox*, LayoutUnit logicalOffset,
bool includeMargins = false); |
448 | 448 |
449 // Used to store state between styleWillChange and styleDidChange | 449 // Used to store state between styleWillChange and styleDidChange |
450 static bool s_canPropagateFloatIntoSibling; | 450 static bool s_canPropagateFloatIntoSibling; |
451 | 451 |
452 RenderBlockFlowRareData& ensureRareData(); | 452 RenderBlockFlowRareData& ensureRareData(); |
453 | 453 |
454 LayoutUnit m_paintInvalidationLogicalTop; | 454 LayoutUnit m_paintInvalidationLogicalTop; |
455 LayoutUnit m_paintInvalidationLogicalBottom; | 455 LayoutUnit m_paintInvalidationLogicalBottom; |
456 | 456 |
457 virtual bool isSelfCollapsingBlock() const OVERRIDE; | 457 virtual bool isSelfCollapsingBlock() const override; |
458 | 458 |
459 protected: | 459 protected: |
460 OwnPtrWillBeMember<RenderBlockFlowRareData> m_rareData; | 460 OwnPtrWillBeMember<RenderBlockFlowRareData> m_rareData; |
461 OwnPtr<FloatingObjects> m_floatingObjects; | 461 OwnPtr<FloatingObjects> m_floatingObjects; |
462 | 462 |
463 friend class BreakingContext; // FIXME: It uses insertFloatingObject and pos
itionNewFloatOnLine, if we move those out from the private scope/add a helper to
LineBreaker, we can remove this friend | 463 friend class BreakingContext; // FIXME: It uses insertFloatingObject and pos
itionNewFloatOnLine, if we move those out from the private scope/add a helper to
LineBreaker, we can remove this friend |
464 friend class MarginInfo; | 464 friend class MarginInfo; |
465 friend class LineBreaker; | 465 friend class LineBreaker; |
466 friend class LineWidth; // needs to know FloatingObject | 466 friend class LineWidth; // needs to know FloatingObject |
467 | 467 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
500 | 500 |
501 // END METHODS DEFINED IN RenderBlockLineLayout | 501 // END METHODS DEFINED IN RenderBlockLineLayout |
502 | 502 |
503 }; | 503 }; |
504 | 504 |
505 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlockFlow, isRenderBlockFlow()); | 505 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlockFlow, isRenderBlockFlow()); |
506 | 506 |
507 } // namespace blink | 507 } // namespace blink |
508 | 508 |
509 #endif // RenderBlockFlow_h | 509 #endif // RenderBlockFlow_h |
OLD | NEW |