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

Side by Side Diff: Source/core/rendering/RenderBlockFlow.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
« no previous file with comments | « Source/core/rendering/RenderBlock.cpp ('k') | Source/core/rendering/RenderBlockFlow.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 using RenderBlock::firstLineBox; 96 using RenderBlock::firstLineBox;
97 using RenderBlock::lastLineBox; 97 using RenderBlock::lastLineBox;
98 using RenderBlock::firstRootBox; 98 using RenderBlock::firstRootBox;
99 using RenderBlock::lastRootBox; 99 using RenderBlock::lastRootBox;
100 100
101 virtual LayoutUnit logicalLeftSelectionOffset(const RenderBlock* rootBlock, LayoutUnit position) const override; 101 virtual LayoutUnit logicalLeftSelectionOffset(const RenderBlock* rootBlock, LayoutUnit position) const override;
102 virtual LayoutUnit logicalRightSelectionOffset(const RenderBlock* rootBlock, LayoutUnit position) const override; 102 virtual LayoutUnit logicalRightSelectionOffset(const RenderBlock* rootBlock, LayoutUnit position) const override;
103 103
104 RootInlineBox* createAndAppendRootInlineBox(); 104 RootInlineBox* createAndAppendRootInlineBox();
105 105
106 void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, boo l inLayout = true); 106 void markAllDescendantsWithFloatsForLayout(LayoutBox* floatToRemove = 0, boo l inLayout = true);
107 void markSiblingsWithFloatsForLayout(RenderBox* floatToRemove = 0); 107 void markSiblingsWithFloatsForLayout(LayoutBox* floatToRemove = 0);
108 108
109 bool containsFloats() const { return m_floatingObjects && !m_floatingObjects ->set().isEmpty(); } 109 bool containsFloats() const { return m_floatingObjects && !m_floatingObjects ->set().isEmpty(); }
110 bool containsFloat(RenderBox*) const; 110 bool containsFloat(LayoutBox*) const;
111 111
112 void removeFloatingObjects(); 112 void removeFloatingObjects();
113 113
114 virtual void addChild(LayoutObject* newChild, LayoutObject* beforeChild = 0) override; 114 virtual void addChild(LayoutObject* newChild, LayoutObject* beforeChild = 0) override;
115 115
116 void moveAllChildrenIncludingFloatsTo(RenderBlock* toBlock, bool fullRemoveI nsert); 116 void moveAllChildrenIncludingFloatsTo(RenderBlock* toBlock, bool fullRemoveI nsert);
117 117
118 bool generatesLineBoxesForInlineChild(LayoutObject*); 118 bool generatesLineBoxesForInlineChild(LayoutObject*);
119 119
120 LayoutUnit logicalTopForFloat(const FloatingObject* floatingObject) const { return isHorizontalWritingMode() ? floatingObject->y() : floatingObject->x(); } 120 LayoutUnit logicalTopForFloat(const FloatingObject* floatingObject) const { return isHorizontalWritingMode() ? floatingObject->y() : floatingObject->x(); }
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 void setLogicalWidthForFloat(FloatingObject* floatingObject, LayoutUnit logi calWidth) 154 void setLogicalWidthForFloat(FloatingObject* floatingObject, LayoutUnit logi calWidth)
155 { 155 {
156 if (isHorizontalWritingMode()) 156 if (isHorizontalWritingMode())
157 floatingObject->setWidth(logicalWidth); 157 floatingObject->setWidth(logicalWidth);
158 else 158 else
159 floatingObject->setHeight(logicalWidth); 159 floatingObject->setHeight(logicalWidth);
160 } 160 }
161 161
162 LayoutUnit startAlignedOffsetForLine(LayoutUnit position, bool shouldIndentT ext); 162 LayoutUnit startAlignedOffsetForLine(LayoutUnit position, bool shouldIndentT ext);
163 163
164 void setStaticInlinePositionForChild(RenderBox&, LayoutUnit inlinePosition); 164 void setStaticInlinePositionForChild(LayoutBox&, LayoutUnit inlinePosition);
165 void updateStaticInlinePositionForChild(RenderBox&, LayoutUnit logicalTop); 165 void updateStaticInlinePositionForChild(LayoutBox&, LayoutUnit logicalTop);
166 166
167 static bool shouldSkipCreatingRunsForObject(LayoutObject* obj) 167 static bool shouldSkipCreatingRunsForObject(LayoutObject* obj)
168 { 168 {
169 return obj->isFloating() || (obj->isOutOfFlowPositioned() && !obj->style ()->isOriginalDisplayInlineType() && !obj->container()->isRenderInline()); 169 return obj->isFloating() || (obj->isOutOfFlowPositioned() && !obj->style ()->isOriginalDisplayInlineType() && !obj->container()->isRenderInline());
170 } 170 }
171 171
172 LayoutMultiColumnFlowThread* multiColumnFlowThread() const { return m_rareDa ta ? m_rareData->m_multiColumnFlowThread : 0; } 172 LayoutMultiColumnFlowThread* multiColumnFlowThread() const { return m_rareDa ta ? m_rareData->m_multiColumnFlowThread : 0; }
173 void resetMultiColumnFlowThread() 173 void resetMultiColumnFlowThread()
174 { 174 {
175 if (m_rareData) 175 if (m_rareData)
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 240
241 protected: 241 protected:
242 void rebuildFloatsFromIntruding(); 242 void rebuildFloatsFromIntruding();
243 void layoutInlineChildren(bool relayoutChildren, LayoutUnit& paintInvalidati onLogicalTop, LayoutUnit& paintInvalidationLogicalBottom, LayoutUnit afterEdge); 243 void layoutInlineChildren(bool relayoutChildren, LayoutUnit& paintInvalidati onLogicalTop, LayoutUnit& paintInvalidationLogicalBottom, LayoutUnit afterEdge);
244 244
245 void createFloatingObjects(); 245 void createFloatingObjects();
246 246
247 virtual void styleWillChange(StyleDifference, const LayoutStyle& newStyle) o verride; 247 virtual void styleWillChange(StyleDifference, const LayoutStyle& newStyle) o verride;
248 virtual void styleDidChange(StyleDifference, const LayoutStyle* oldStyle) ov erride; 248 virtual void styleDidChange(StyleDifference, const LayoutStyle* oldStyle) ov erride;
249 249
250 void updateBlockChildDirtyBitsBeforeLayout(bool relayoutChildren, RenderBox& ); 250 void updateBlockChildDirtyBitsBeforeLayout(bool relayoutChildren, LayoutBox& );
251 251
252 void addOverflowFromFloats(); 252 void addOverflowFromFloats();
253 253
254 LayoutUnit logicalRightOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixed Offset, bool applyTextIndent, LayoutUnit logicalHeight = 0) const 254 LayoutUnit logicalRightOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixed Offset, bool applyTextIndent, LayoutUnit logicalHeight = 0) const
255 { 255 {
256 return adjustLogicalRightOffsetForLine(logicalRightFloatOffsetForLine(lo gicalTop, fixedOffset, logicalHeight), applyTextIndent); 256 return adjustLogicalRightOffsetForLine(logicalRightFloatOffsetForLine(lo gicalTop, fixedOffset, logicalHeight), applyTextIndent);
257 } 257 }
258 LayoutUnit logicalLeftOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedO ffset, bool applyTextIndent, LayoutUnit logicalHeight = 0) const 258 LayoutUnit logicalLeftOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedO ffset, bool applyTextIndent, LayoutUnit logicalHeight = 0) const
259 { 259 {
260 return adjustLogicalLeftOffsetForLine(logicalLeftFloatOffsetForLine(logi calTop, fixedOffset, logicalHeight), applyTextIndent); 260 return adjustLogicalLeftOffsetForLine(logicalLeftFloatOffsetForLine(logi calTop, fixedOffset, logicalHeight), applyTextIndent);
261 } 261 }
262 262
263 virtual LayoutObject* layoutSpecialExcludedChild(bool /*relayoutChildren*/, SubtreeLayoutScope&); 263 virtual LayoutObject* layoutSpecialExcludedChild(bool /*relayoutChildren*/, SubtreeLayoutScope&);
264 virtual bool updateLogicalWidthAndColumnWidth() override; 264 virtual bool updateLogicalWidthAndColumnWidth() override;
265 265
266 void setLogicalLeftForChild(RenderBox& child, LayoutUnit logicalLeft); 266 void setLogicalLeftForChild(LayoutBox& child, LayoutUnit logicalLeft);
267 void setLogicalTopForChild(RenderBox& child, LayoutUnit logicalTop); 267 void setLogicalTopForChild(LayoutBox& child, LayoutUnit logicalTop);
268 void determineLogicalLeftPositionForChild(RenderBox& child); 268 void determineLogicalLeftPositionForChild(LayoutBox& child);
269 269
270 private: 270 private:
271 bool layoutBlockFlow(bool relayoutChildren, LayoutUnit& pageLogicalHeight, S ubtreeLayoutScope&); 271 bool layoutBlockFlow(bool relayoutChildren, LayoutUnit& pageLogicalHeight, S ubtreeLayoutScope&);
272 void layoutBlockChildren(bool relayoutChildren, SubtreeLayoutScope&, LayoutU nit beforeEdge, LayoutUnit afterEdge); 272 void layoutBlockChildren(bool relayoutChildren, SubtreeLayoutScope&, LayoutU nit beforeEdge, LayoutUnit afterEdge);
273 273
274 void layoutBlockChild(RenderBox& child, MarginInfo&, LayoutUnit& previousFlo atLogicalBottom); 274 void layoutBlockChild(LayoutBox& child, MarginInfo&, LayoutUnit& previousFlo atLogicalBottom);
275 void adjustPositionedBlock(RenderBox& child, const MarginInfo&); 275 void adjustPositionedBlock(LayoutBox& child, const MarginInfo&);
276 void adjustFloatingBlock(const MarginInfo&); 276 void adjustFloatingBlock(const MarginInfo&);
277 277
278 LayoutPoint computeLogicalLocationForFloat(const FloatingObject*, LayoutUnit logicalTopOffset) const; 278 LayoutPoint computeLogicalLocationForFloat(const FloatingObject*, LayoutUnit logicalTopOffset) const;
279 279
280 FloatingObject* insertFloatingObject(RenderBox&); 280 FloatingObject* insertFloatingObject(LayoutBox&);
281 void removeFloatingObject(RenderBox*); 281 void removeFloatingObject(LayoutBox*);
282 void removeFloatingObjectsBelow(FloatingObject*, int logicalOffset); 282 void removeFloatingObjectsBelow(FloatingObject*, int logicalOffset);
283 283
284 // Called from lineWidth, to position the floats added in the last line. 284 // Called from lineWidth, to position the floats added in the last line.
285 // Returns true if and only if it has positioned any floats. 285 // Returns true if and only if it has positioned any floats.
286 bool positionNewFloats(LineWidth* = 0); 286 bool positionNewFloats(LineWidth* = 0);
287 287
288 LayoutUnit getClearDelta(RenderBox* child, LayoutUnit yPos); 288 LayoutUnit getClearDelta(LayoutBox* child, LayoutUnit yPos);
289 289
290 bool hasOverhangingFloats() { return parent() && !hasColumns() && containsFl oats() && lowestFloatLogicalBottom() > logicalHeight(); } 290 bool hasOverhangingFloats() { return parent() && !hasColumns() && containsFl oats() && lowestFloatLogicalBottom() > logicalHeight(); }
291 bool hasOverhangingFloat(RenderBox*); 291 bool hasOverhangingFloat(LayoutBox*);
292 void addIntrudingFloats(RenderBlockFlow* prev, LayoutUnit xoffset, LayoutUni t yoffset); 292 void addIntrudingFloats(RenderBlockFlow* prev, LayoutUnit xoffset, LayoutUni t yoffset);
293 void addOverhangingFloats(RenderBlockFlow* child, bool makeChildPaintOtherFl oats); 293 void addOverhangingFloats(RenderBlockFlow* child, bool makeChildPaintOtherFl oats);
294 294
295 LayoutUnit lowestFloatLogicalBottom(FloatingObject::Type = FloatingObject::F loatLeftRight) const; 295 LayoutUnit lowestFloatLogicalBottom(FloatingObject::Type = FloatingObject::F loatLeftRight) const;
296 LayoutUnit nextFloatLogicalBottomBelow(LayoutUnit, ShapeOutsideFloatOffsetMo de = ShapeOutsideFloatMarginBoxOffset) const; 296 LayoutUnit nextFloatLogicalBottomBelow(LayoutUnit, ShapeOutsideFloatOffsetMo de = ShapeOutsideFloatMarginBoxOffset) const;
297 297
298 virtual bool hitTestFloats(const HitTestRequest&, HitTestResult&, const HitT estLocation& locationInContainer, const LayoutPoint& accumulatedOffset) override final; 298 virtual bool hitTestFloats(const HitTestRequest&, HitTestResult&, const HitT estLocation& locationInContainer, const LayoutPoint& accumulatedOffset) override final;
299 299
300 virtual void invalidatePaintForOverhangingFloats(bool paintAllDescendants) o verride final; 300 virtual void invalidatePaintForOverhangingFloats(bool paintAllDescendants) o verride final;
301 virtual void invalidatePaintForOverflow() override final; 301 virtual void invalidatePaintForOverflow() override final;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 bool shouldBreakAtLineToAvoidWidow() const { return m_rareData && m_rareData ->m_lineBreakToAvoidWidow >= 0; } 336 bool shouldBreakAtLineToAvoidWidow() const { return m_rareData && m_rareData ->m_lineBreakToAvoidWidow >= 0; }
337 void clearShouldBreakAtLineToAvoidWidow() const; 337 void clearShouldBreakAtLineToAvoidWidow() const;
338 int lineBreakToAvoidWidow() const { return m_rareData ? m_rareData->m_lineBr eakToAvoidWidow : -1; } 338 int lineBreakToAvoidWidow() const { return m_rareData ? m_rareData->m_lineBr eakToAvoidWidow : -1; }
339 void setBreakAtLineToAvoidWidow(int); 339 void setBreakAtLineToAvoidWidow(int);
340 void clearDidBreakAtLineToAvoidWidow(); 340 void clearDidBreakAtLineToAvoidWidow();
341 void setDidBreakAtLineToAvoidWidow(); 341 void setDidBreakAtLineToAvoidWidow();
342 bool didBreakAtLineToAvoidWidow() const { return m_rareData && m_rareData->m _didBreakAtLineToAvoidWidow; } 342 bool didBreakAtLineToAvoidWidow() const { return m_rareData && m_rareData->m _didBreakAtLineToAvoidWidow; }
343 343
344 public: 344 public:
345 struct FloatWithRect { 345 struct FloatWithRect {
346 FloatWithRect(RenderBox* f) 346 FloatWithRect(LayoutBox* f)
347 : object(f) 347 : object(f)
348 , rect(f->frameRect()) 348 , rect(f->frameRect())
349 , everHadLayout(f->everHadLayout()) 349 , everHadLayout(f->everHadLayout())
350 { 350 {
351 rect.expand(f->marginBoxOutsets()); 351 rect.expand(f->marginBoxOutsets());
352 } 352 }
353 353
354 RenderBox* object; 354 LayoutBox* object;
355 LayoutRect rect; 355 LayoutRect rect;
356 bool everHadLayout; 356 bool everHadLayout;
357 }; 357 };
358 358
359 class MarginValues { 359 class MarginValues {
360 public: 360 public:
361 MarginValues(LayoutUnit beforePos, LayoutUnit beforeNeg, LayoutUnit afte rPos, LayoutUnit afterNeg) 361 MarginValues(LayoutUnit beforePos, LayoutUnit beforeNeg, LayoutUnit afte rPos, LayoutUnit afterNeg)
362 : m_positiveMarginBefore(beforePos) 362 : m_positiveMarginBefore(beforePos)
363 , m_negativeMarginBefore(beforeNeg) 363 , m_negativeMarginBefore(beforeNeg)
364 , m_positiveMarginAfter(afterPos) 364 , m_positiveMarginAfter(afterPos)
365 , m_negativeMarginAfter(afterNeg) 365 , m_negativeMarginAfter(afterNeg)
366 { } 366 { }
367 367
368 LayoutUnit positiveMarginBefore() const { return m_positiveMarginBefore; } 368 LayoutUnit positiveMarginBefore() const { return m_positiveMarginBefore; }
369 LayoutUnit negativeMarginBefore() const { return m_negativeMarginBefore; } 369 LayoutUnit negativeMarginBefore() const { return m_negativeMarginBefore; }
370 LayoutUnit positiveMarginAfter() const { return m_positiveMarginAfter; } 370 LayoutUnit positiveMarginAfter() const { return m_positiveMarginAfter; }
371 LayoutUnit negativeMarginAfter() const { return m_negativeMarginAfter; } 371 LayoutUnit negativeMarginAfter() const { return m_negativeMarginAfter; }
372 372
373 void setPositiveMarginBefore(LayoutUnit pos) { m_positiveMarginBefore = pos; } 373 void setPositiveMarginBefore(LayoutUnit pos) { m_positiveMarginBefore = pos; }
374 void setNegativeMarginBefore(LayoutUnit neg) { m_negativeMarginBefore = neg; } 374 void setNegativeMarginBefore(LayoutUnit neg) { m_negativeMarginBefore = neg; }
375 void setPositiveMarginAfter(LayoutUnit pos) { m_positiveMarginAfter = po s; } 375 void setPositiveMarginAfter(LayoutUnit pos) { m_positiveMarginAfter = po s; }
376 void setNegativeMarginAfter(LayoutUnit neg) { m_negativeMarginAfter = ne g; } 376 void setNegativeMarginAfter(LayoutUnit neg) { m_negativeMarginAfter = ne g; }
377 377
378 private: 378 private:
379 LayoutUnit m_positiveMarginBefore; 379 LayoutUnit m_positiveMarginBefore;
380 LayoutUnit m_negativeMarginBefore; 380 LayoutUnit m_negativeMarginBefore;
381 LayoutUnit m_positiveMarginAfter; 381 LayoutUnit m_positiveMarginAfter;
382 LayoutUnit m_negativeMarginAfter; 382 LayoutUnit m_negativeMarginAfter;
383 }; 383 };
384 MarginValues marginValuesForChild(RenderBox& child) const; 384 MarginValues marginValuesForChild(LayoutBox& child) const;
385 385
386 // Allocated only when some of these fields have non-default values 386 // Allocated only when some of these fields have non-default values
387 struct RenderBlockFlowRareData { 387 struct RenderBlockFlowRareData {
388 WTF_MAKE_NONCOPYABLE(RenderBlockFlowRareData); WTF_MAKE_FAST_ALLOCATED; 388 WTF_MAKE_NONCOPYABLE(RenderBlockFlowRareData); WTF_MAKE_FAST_ALLOCATED;
389 public: 389 public:
390 RenderBlockFlowRareData(const RenderBlockFlow* block) 390 RenderBlockFlowRareData(const RenderBlockFlow* block)
391 : m_margins(positiveMarginBeforeDefault(block), negativeMarginBefore Default(block), positiveMarginAfterDefault(block), negativeMarginAfterDefault(bl ock)) 391 : m_margins(positiveMarginBeforeDefault(block), negativeMarginBefore Default(block), positiveMarginAfterDefault(block), negativeMarginAfterDefault(bl ock))
392 , m_paginationStrut(0) 392 , m_paginationStrut(0)
393 , m_multiColumnFlowThread(nullptr) 393 , m_multiColumnFlowThread(nullptr)
394 , m_lineBreakToAvoidWidow(-1) 394 , m_lineBreakToAvoidWidow(-1)
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 438
439 void setMaxMarginBeforeValues(LayoutUnit pos, LayoutUnit neg); 439 void setMaxMarginBeforeValues(LayoutUnit pos, LayoutUnit neg);
440 void setMaxMarginAfterValues(LayoutUnit pos, LayoutUnit neg); 440 void setMaxMarginAfterValues(LayoutUnit pos, LayoutUnit neg);
441 441
442 void setMustDiscardMarginBefore(bool = true); 442 void setMustDiscardMarginBefore(bool = true);
443 void setMustDiscardMarginAfter(bool = true); 443 void setMustDiscardMarginAfter(bool = true);
444 444
445 bool mustDiscardMarginBefore() const; 445 bool mustDiscardMarginBefore() const;
446 bool mustDiscardMarginAfter() const; 446 bool mustDiscardMarginAfter() const;
447 447
448 bool mustDiscardMarginBeforeForChild(const RenderBox&) const; 448 bool mustDiscardMarginBeforeForChild(const LayoutBox&) const;
449 bool mustDiscardMarginAfterForChild(const RenderBox&) const; 449 bool mustDiscardMarginAfterForChild(const LayoutBox&) const;
450 450
451 bool mustSeparateMarginBeforeForChild(const RenderBox&) const; 451 bool mustSeparateMarginBeforeForChild(const LayoutBox&) const;
452 bool mustSeparateMarginAfterForChild(const RenderBox&) const; 452 bool mustSeparateMarginAfterForChild(const LayoutBox&) const;
453 453
454 void initMaxMarginValues() 454 void initMaxMarginValues()
455 { 455 {
456 if (m_rareData) { 456 if (m_rareData) {
457 m_rareData->m_margins = MarginValues(RenderBlockFlowRareData::positi veMarginBeforeDefault(this) , RenderBlockFlowRareData::negativeMarginBeforeDefau lt(this), 457 m_rareData->m_margins = MarginValues(RenderBlockFlowRareData::positi veMarginBeforeDefault(this) , RenderBlockFlowRareData::negativeMarginBeforeDefau lt(this),
458 RenderBlockFlowRareData::positiveMarginAfterDefault(this), Rende rBlockFlowRareData::negativeMarginAfterDefault(this)); 458 RenderBlockFlowRareData::positiveMarginAfterDefault(this), Rende rBlockFlowRareData::negativeMarginAfterDefault(this));
459 459
460 m_rareData->m_discardMarginBefore = false; 460 m_rareData->m_discardMarginBefore = false;
461 m_rareData->m_discardMarginAfter = false; 461 m_rareData->m_discardMarginAfter = false;
462 } 462 }
463 } 463 }
464 464
465 virtual ETextAlign textAlignmentForLine(bool endsWithSoftBreak) const; 465 virtual ETextAlign textAlignmentForLine(bool endsWithSoftBreak) const;
466 private: 466 private:
467 virtual LayoutUnit collapsedMarginBefore() const override final { return max PositiveMarginBefore() - maxNegativeMarginBefore(); } 467 virtual LayoutUnit collapsedMarginBefore() const override final { return max PositiveMarginBefore() - maxNegativeMarginBefore(); }
468 virtual LayoutUnit collapsedMarginAfter() const override final { return maxP ositiveMarginAfter() - maxNegativeMarginAfter(); } 468 virtual LayoutUnit collapsedMarginAfter() const override final { return maxP ositiveMarginAfter() - maxNegativeMarginAfter(); }
469 469
470 LayoutUnit collapseMargins(RenderBox& child, MarginInfo&, bool childIsSelfCo llapsing); 470 LayoutUnit collapseMargins(LayoutBox& child, MarginInfo&, bool childIsSelfCo llapsing);
471 LayoutUnit clearFloatsIfNeeded(RenderBox& child, MarginInfo&, LayoutUnit old TopPosMargin, LayoutUnit oldTopNegMargin, LayoutUnit yPos, bool childIsSelfColla psing); 471 LayoutUnit clearFloatsIfNeeded(LayoutBox& child, MarginInfo&, LayoutUnit old TopPosMargin, LayoutUnit oldTopNegMargin, LayoutUnit yPos, bool childIsSelfColla psing);
472 LayoutUnit estimateLogicalTopPosition(RenderBox& child, const MarginInfo&, L ayoutUnit& estimateWithoutPagination); 472 LayoutUnit estimateLogicalTopPosition(LayoutBox& child, const MarginInfo&, L ayoutUnit& estimateWithoutPagination);
473 void marginBeforeEstimateForChild(RenderBox&, LayoutUnit&, LayoutUnit&, bool &) const; 473 void marginBeforeEstimateForChild(LayoutBox&, LayoutUnit&, LayoutUnit&, bool &) const;
474 void handleAfterSideOfBlock(RenderBox* lastChild, LayoutUnit top, LayoutUnit bottom, MarginInfo&); 474 void handleAfterSideOfBlock(LayoutBox* lastChild, LayoutUnit top, LayoutUnit bottom, MarginInfo&);
475 void setCollapsedBottomMargin(const MarginInfo&); 475 void setCollapsedBottomMargin(const MarginInfo&);
476 476
477 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. 477 LayoutUnit applyBeforeBreak(LayoutBox& 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.
478 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. 478 LayoutUnit applyAfterBreak(LayoutBox& 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.
479 479
480 LayoutUnit adjustBlockChildForPagination(LayoutUnit logicalTopAfterClear, La youtUnit estimateWithoutPagination, RenderBox& child, bool atBeforeSideOfBlock); 480 LayoutUnit adjustBlockChildForPagination(LayoutUnit logicalTopAfterClear, La youtUnit estimateWithoutPagination, LayoutBox& child, bool atBeforeSideOfBlock);
481 // Computes a deltaOffset value that put a line at the top of the next page if it doesn't fit on the current page. 481 // Computes a deltaOffset value that put a line at the top of the next page if it doesn't fit on the current page.
482 void adjustLinePositionForPagination(RootInlineBox&, LayoutUnit& deltaOffset , LayoutFlowThread*); 482 void adjustLinePositionForPagination(RootInlineBox&, LayoutUnit& deltaOffset , LayoutFlowThread*);
483 // If the child is unsplittable and can't fit on the current page, return th e top of the next page/column. 483 // If the child is unsplittable and can't fit on the current page, return th e top of the next page/column.
484 LayoutUnit adjustForUnsplittableChild(RenderBox&, LayoutUnit logicalOffset, bool includeMargins = false); 484 LayoutUnit adjustForUnsplittableChild(LayoutBox&, LayoutUnit logicalOffset, bool includeMargins = false);
485 485
486 // Used to store state between styleWillChange and styleDidChange 486 // Used to store state between styleWillChange and styleDidChange
487 static bool s_canPropagateFloatIntoSibling; 487 static bool s_canPropagateFloatIntoSibling;
488 488
489 RenderBlockFlowRareData& ensureRareData(); 489 RenderBlockFlowRareData& ensureRareData();
490 490
491 LayoutUnit m_paintInvalidationLogicalTop; 491 LayoutUnit m_paintInvalidationLogicalTop;
492 LayoutUnit m_paintInvalidationLogicalBottom; 492 LayoutUnit m_paintInvalidationLogicalBottom;
493 493
494 virtual bool isSelfCollapsingBlock() const override; 494 virtual bool isSelfCollapsingBlock() const override;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
537 537
538 // END METHODS DEFINED IN RenderBlockLineLayout 538 // END METHODS DEFINED IN RenderBlockLineLayout
539 539
540 }; 540 };
541 541
542 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(RenderBlockFlow, isRenderBlockFlow()); 542 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(RenderBlockFlow, isRenderBlockFlow());
543 543
544 } // namespace blink 544 } // namespace blink
545 545
546 #endif // RenderBlockFlow_h 546 #endif // RenderBlockFlow_h
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderBlock.cpp ('k') | Source/core/rendering/RenderBlockFlow.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698