| 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 28 matching lines...) Expand all Loading... |
| 39 #include "core/rendering/FloatingObjects.h" | 39 #include "core/rendering/FloatingObjects.h" |
| 40 #include "core/rendering/RenderBlock.h" | 40 #include "core/rendering/RenderBlock.h" |
| 41 #include "core/rendering/line/TrailingObjects.h" | 41 #include "core/rendering/line/TrailingObjects.h" |
| 42 #include "core/rendering/style/RenderStyleConstants.h" | 42 #include "core/rendering/style/RenderStyleConstants.h" |
| 43 | 43 |
| 44 namespace WebCore { | 44 namespace WebCore { |
| 45 | 45 |
| 46 class MarginInfo; | 46 class MarginInfo; |
| 47 class LineBreaker; | 47 class LineBreaker; |
| 48 class LineWidth; | 48 class LineWidth; |
| 49 class RenderNamedFlowFragment; | |
| 50 | 49 |
| 51 class RenderBlockFlow : public RenderBlock { | 50 class RenderBlockFlow : public RenderBlock { |
| 52 public: | 51 public: |
| 53 explicit RenderBlockFlow(ContainerNode*); | 52 explicit RenderBlockFlow(ContainerNode*); |
| 54 virtual ~RenderBlockFlow(); | 53 virtual ~RenderBlockFlow(); |
| 55 | 54 |
| 56 static RenderBlockFlow* createAnonymous(Document*); | 55 static RenderBlockFlow* createAnonymous(Document*); |
| 57 RenderBlockFlow* createAnonymousBlockFlow() const; | 56 RenderBlockFlow* createAnonymousBlockFlow() const; |
| 58 | 57 |
| 59 virtual bool isRenderBlockFlow() const OVERRIDE FINAL { return true; } | 58 virtual bool isRenderBlockFlow() const OVERRIDE FINAL { return true; } |
| 60 | 59 |
| 61 virtual void layoutBlock(bool relayoutChildren) OVERRIDE; | 60 virtual void layoutBlock(bool relayoutChildren) OVERRIDE; |
| 62 | 61 |
| 63 virtual void computeOverflow(LayoutUnit oldClientAfterEdge, bool recomputeFl
oats = false) OVERRIDE; | 62 virtual void computeOverflow(LayoutUnit oldClientAfterEdge, bool recomputeFl
oats = false) OVERRIDE; |
| 64 virtual void deleteLineBoxTree() OVERRIDE FINAL; | 63 virtual void deleteLineBoxTree() OVERRIDE FINAL; |
| 65 | 64 |
| 66 // Versions that can compute line offsets with the region and page offset pa
ssed in. Used for speed to avoid having to | |
| 67 // compute the region all over again when you already know it. | |
| 68 LayoutUnit availableLogicalWidthForLineInRegion(LayoutUnit position, bool sh
ouldIndentText, RenderRegion* region, LayoutUnit logicalHeight = 0) const | |
| 69 { | |
| 70 return max<LayoutUnit>(0, logicalRightOffsetForLineInRegion(position, sh
ouldIndentText, region, logicalHeight) | |
| 71 - logicalLeftOffsetForLineInRegion(position, shouldIndentText, regio
n, logicalHeight)); | |
| 72 } | |
| 73 LayoutUnit logicalRightOffsetForLineInRegion(LayoutUnit position, bool shoul
dIndentText, RenderRegion* region, LayoutUnit logicalHeight = 0) const | |
| 74 { | |
| 75 return logicalRightOffsetForLine(position, logicalRightOffsetForContent(
region), shouldIndentText, logicalHeight); | |
| 76 } | |
| 77 LayoutUnit logicalLeftOffsetForLineInRegion(LayoutUnit position, bool should
IndentText, RenderRegion* region, LayoutUnit logicalHeight = 0) const | |
| 78 { | |
| 79 return logicalLeftOffsetForLine(position, logicalLeftOffsetForContent(re
gion), shouldIndentText, logicalHeight); | |
| 80 } | |
| 81 LayoutUnit startOffsetForLineInRegion(LayoutUnit position, bool shouldIndent
Text, RenderRegion* region, LayoutUnit logicalHeight = 0) const | |
| 82 { | |
| 83 return style()->isLeftToRightDirection() ? logicalLeftOffsetForLineInReg
ion(position, shouldIndentText, region, logicalHeight) | |
| 84 : logicalWidth() - logicalRightOffsetForLineInRegion(position, shoul
dIndentText, region, logicalHeight); | |
| 85 } | |
| 86 LayoutUnit endOffsetForLineInRegion(LayoutUnit position, bool shouldIndentTe
xt, RenderRegion* region, LayoutUnit logicalHeight = 0) const | |
| 87 { | |
| 88 return !style()->isLeftToRightDirection() ? logicalLeftOffsetForLineInRe
gion(position, shouldIndentText, region, logicalHeight) | |
| 89 : logicalWidth() - logicalRightOffsetForLineInRegion(position, shoul
dIndentText, region, logicalHeight); | |
| 90 } | |
| 91 | |
| 92 LayoutUnit availableLogicalWidthForLine(LayoutUnit position, bool shouldInde
ntText, LayoutUnit logicalHeight = 0) const | 65 LayoutUnit availableLogicalWidthForLine(LayoutUnit position, bool shouldInde
ntText, LayoutUnit logicalHeight = 0) const |
| 93 { | 66 { |
| 94 return availableLogicalWidthForLineInRegion(position, shouldIndentText,
regionAtBlockOffset(position), logicalHeight); | 67 return max<LayoutUnit>(0, logicalRightOffsetForLine(position, shouldInde
ntText, logicalHeight) - logicalLeftOffsetForLine(position, shouldIndentText, lo
gicalHeight)); |
| 95 } | 68 } |
| 96 LayoutUnit logicalRightOffsetForLine(LayoutUnit position, bool shouldIndentT
ext, LayoutUnit logicalHeight = 0) const | 69 LayoutUnit logicalRightOffsetForLine(LayoutUnit position, bool shouldIndentT
ext, LayoutUnit logicalHeight = 0) const |
| 97 { | 70 { |
| 98 return logicalRightOffsetForLine(position, logicalRightOffsetForContent(
position), shouldIndentText, logicalHeight); | 71 return logicalRightOffsetForLine(position, logicalRightOffsetForContent(
), shouldIndentText, logicalHeight); |
| 99 } | 72 } |
| 100 LayoutUnit logicalLeftOffsetForLine(LayoutUnit position, bool shouldIndentTe
xt, LayoutUnit logicalHeight = 0) const | 73 LayoutUnit logicalLeftOffsetForLine(LayoutUnit position, bool shouldIndentTe
xt, LayoutUnit logicalHeight = 0) const |
| 101 { | 74 { |
| 102 return logicalLeftOffsetForLine(position, logicalLeftOffsetForContent(po
sition), shouldIndentText, logicalHeight); | 75 return logicalLeftOffsetForLine(position, logicalLeftOffsetForContent(),
shouldIndentText, logicalHeight); |
| 103 } | 76 } |
| 104 LayoutUnit pixelSnappedLogicalLeftOffsetForLine(LayoutUnit position, bool sh
ouldIndentText, LayoutUnit logicalHeight = 0) const | 77 LayoutUnit pixelSnappedLogicalLeftOffsetForLine(LayoutUnit position, bool sh
ouldIndentText, LayoutUnit logicalHeight = 0) const |
| 105 { | 78 { |
| 106 return roundToInt(logicalLeftOffsetForLine(position, shouldIndentText, l
ogicalHeight)); | 79 return roundToInt(logicalLeftOffsetForLine(position, shouldIndentText, l
ogicalHeight)); |
| 107 } | 80 } |
| 108 LayoutUnit pixelSnappedLogicalRightOffsetForLine(LayoutUnit position, bool s
houldIndentText, LayoutUnit logicalHeight = 0) const | 81 LayoutUnit pixelSnappedLogicalRightOffsetForLine(LayoutUnit position, bool s
houldIndentText, LayoutUnit logicalHeight = 0) const |
| 109 { | 82 { |
| 110 // FIXME: Multicolumn layouts break carrying over subpixel values to the
logical right offset because the lines may be shifted | 83 // FIXME: Multicolumn layouts break carrying over subpixel values to the
logical right offset because the lines may be shifted |
| 111 // by a subpixel value for all but the first column. This can lead to th
e actual pixel snapped width of the column being off | 84 // by a subpixel value for all but the first column. This can lead to th
e actual pixel snapped width of the column being off |
| 112 // by one pixel when rendered versus layed out, which can result in the
line being clipped. For now, we have to floor. | 85 // by one pixel when rendered versus layed out, which can result in the
line being clipped. For now, we have to floor. |
| 113 // https://bugs.webkit.org/show_bug.cgi?id=105461 | 86 // https://bugs.webkit.org/show_bug.cgi?id=105461 |
| 114 return floorToInt(logicalRightOffsetForLine(position, shouldIndentText,
logicalHeight)); | 87 return floorToInt(logicalRightOffsetForLine(position, shouldIndentText,
logicalHeight)); |
| 115 } | 88 } |
| 116 LayoutUnit startOffsetForLine(LayoutUnit position, bool shouldIndentText, La
youtUnit logicalHeight = 0) const | 89 LayoutUnit startOffsetForLine(LayoutUnit position, bool shouldIndentText, La
youtUnit logicalHeight = 0) const |
| 117 { | 90 { |
| 118 return style()->isLeftToRightDirection() ? logicalLeftOffsetForLine(posi
tion, shouldIndentText, logicalHeight) | 91 return style()->isLeftToRightDirection() ? logicalLeftOffsetForLine(posi
tion, shouldIndentText, logicalHeight) |
| 119 : logicalWidth() - logicalRightOffsetForLine(position, shouldIndentT
ext, logicalHeight); | 92 : logicalWidth() - logicalRightOffsetForLine(position, shouldIndentT
ext, logicalHeight); |
| 120 } | 93 } |
| 121 LayoutUnit endOffsetForLine(LayoutUnit position, bool shouldIndentText, Layo
utUnit logicalHeight = 0) const | 94 LayoutUnit endOffsetForLine(LayoutUnit position, bool shouldIndentText, Layo
utUnit logicalHeight = 0) const |
| 122 { | 95 { |
| 123 return !style()->isLeftToRightDirection() ? logicalLeftOffsetForLine(pos
ition, shouldIndentText, logicalHeight) | 96 return !style()->isLeftToRightDirection() ? logicalLeftOffsetForLine(pos
ition, shouldIndentText, logicalHeight) |
| 124 : logicalWidth() - logicalRightOffsetForLine(position, shouldIndentT
ext, logicalHeight); | 97 : logicalWidth() - logicalRightOffsetForLine(position, shouldIndentT
ext, logicalHeight); |
| 125 } | 98 } |
| 126 | 99 |
| 127 virtual LayoutUnit logicalLeftSelectionOffset(RenderBlock* rootBlock, Layout
Unit position) OVERRIDE; | 100 virtual LayoutUnit logicalLeftSelectionOffset(RenderBlock* rootBlock, Layout
Unit position) OVERRIDE; |
| 128 virtual LayoutUnit logicalRightSelectionOffset(RenderBlock* rootBlock, Layou
tUnit position) OVERRIDE; | 101 virtual LayoutUnit logicalRightSelectionOffset(RenderBlock* rootBlock, Layou
tUnit position) OVERRIDE; |
| 129 | 102 |
| 130 LayoutUnit computeStartPositionDeltaForChildAvoidingFloats(const RenderBox*
child, LayoutUnit childMarginStart, RenderRegion* = 0); | 103 LayoutUnit computeStartPositionDeltaForChildAvoidingFloats(const RenderBox*
child, LayoutUnit childMarginStart); |
| 131 | 104 |
| 132 RootInlineBox* createAndAppendRootInlineBox(); | 105 RootInlineBox* createAndAppendRootInlineBox(); |
| 133 | 106 |
| 134 void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, boo
l inLayout = true); | 107 void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, boo
l inLayout = true); |
| 135 void markSiblingsWithFloatsForLayout(RenderBox* floatToRemove = 0); | 108 void markSiblingsWithFloatsForLayout(RenderBox* floatToRemove = 0); |
| 136 | 109 |
| 137 virtual bool containsFloats() const OVERRIDE FINAL { return m_floatingObject
s && !m_floatingObjects->set().isEmpty(); } | 110 virtual bool containsFloats() const OVERRIDE FINAL { return m_floatingObject
s && !m_floatingObjects->set().isEmpty(); } |
| 138 bool containsFloat(RenderBox*) const; | 111 bool containsFloat(RenderBox*) const; |
| 139 | 112 |
| 140 void removeFloatingObjects(); | 113 void removeFloatingObjects(); |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 245 | 218 |
| 246 LayoutUnit logicalRightOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixed
Offset, bool applyTextIndent, LayoutUnit logicalHeight = 0) const | 219 LayoutUnit logicalRightOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixed
Offset, bool applyTextIndent, LayoutUnit logicalHeight = 0) const |
| 247 { | 220 { |
| 248 return adjustLogicalRightOffsetForLine(logicalRightFloatOffsetForLine(lo
gicalTop, fixedOffset, logicalHeight), applyTextIndent); | 221 return adjustLogicalRightOffsetForLine(logicalRightFloatOffsetForLine(lo
gicalTop, fixedOffset, logicalHeight), applyTextIndent); |
| 249 } | 222 } |
| 250 LayoutUnit logicalLeftOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedO
ffset, bool applyTextIndent, LayoutUnit logicalHeight = 0) const | 223 LayoutUnit logicalLeftOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedO
ffset, bool applyTextIndent, LayoutUnit logicalHeight = 0) const |
| 251 { | 224 { |
| 252 return adjustLogicalLeftOffsetForLine(logicalLeftFloatOffsetForLine(logi
calTop, fixedOffset, logicalHeight), applyTextIndent); | 225 return adjustLogicalLeftOffsetForLine(logicalLeftFloatOffsetForLine(logi
calTop, fixedOffset, logicalHeight), applyTextIndent); |
| 253 } | 226 } |
| 254 | 227 |
| 255 virtual void insertedIntoTree() OVERRIDE; | |
| 256 virtual void willBeDestroyed() OVERRIDE; | 228 virtual void willBeDestroyed() OVERRIDE; |
| 257 private: | 229 private: |
| 258 bool layoutBlockFlow(bool relayoutChildren, LayoutUnit& pageLogicalHeight, S
ubtreeLayoutScope&); | 230 bool layoutBlockFlow(bool relayoutChildren, LayoutUnit& pageLogicalHeight, S
ubtreeLayoutScope&); |
| 259 void layoutBlockChildren(bool relayoutChildren, LayoutUnit& maxFloatLogicalB
ottom, SubtreeLayoutScope&, LayoutUnit beforeEdge, LayoutUnit afterEdge); | 231 void layoutBlockChildren(bool relayoutChildren, LayoutUnit& maxFloatLogicalB
ottom, SubtreeLayoutScope&, LayoutUnit beforeEdge, LayoutUnit afterEdge); |
| 260 | 232 |
| 261 void layoutBlockChild(RenderBox* child, MarginInfo&, LayoutUnit& previousFlo
atLogicalBottom, LayoutUnit& maxFloatLogicalBottom); | 233 void layoutBlockChild(RenderBox* child, MarginInfo&, LayoutUnit& previousFlo
atLogicalBottom, LayoutUnit& maxFloatLogicalBottom); |
| 262 void adjustPositionedBlock(RenderBox* child, const MarginInfo&); | 234 void adjustPositionedBlock(RenderBox* child, const MarginInfo&); |
| 263 void adjustFloatingBlock(const MarginInfo&); | 235 void adjustFloatingBlock(const MarginInfo&); |
| 264 | 236 |
| 265 LayoutPoint flipFloatForWritingModeForChild(const FloatingObject*, const Lay
outPoint&) const; | 237 LayoutPoint flipFloatForWritingModeForChild(const FloatingObject*, const Lay
outPoint&) const; |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 360 void setNegativeMarginAfter(LayoutUnit neg) { m_negativeMarginAfter = ne
g; } | 332 void setNegativeMarginAfter(LayoutUnit neg) { m_negativeMarginAfter = ne
g; } |
| 361 | 333 |
| 362 private: | 334 private: |
| 363 LayoutUnit m_positiveMarginBefore; | 335 LayoutUnit m_positiveMarginBefore; |
| 364 LayoutUnit m_negativeMarginBefore; | 336 LayoutUnit m_negativeMarginBefore; |
| 365 LayoutUnit m_positiveMarginAfter; | 337 LayoutUnit m_positiveMarginAfter; |
| 366 LayoutUnit m_negativeMarginAfter; | 338 LayoutUnit m_negativeMarginAfter; |
| 367 }; | 339 }; |
| 368 MarginValues marginValuesForChild(RenderBox* child) const; | 340 MarginValues marginValuesForChild(RenderBox* child) const; |
| 369 | 341 |
| 370 virtual void updateLogicalHeight() OVERRIDE; | |
| 371 | |
| 372 // Allocated only when some of these fields have non-default values | 342 // Allocated only when some of these fields have non-default values |
| 373 struct RenderBlockFlowRareData { | 343 struct RenderBlockFlowRareData { |
| 374 WTF_MAKE_NONCOPYABLE(RenderBlockFlowRareData); WTF_MAKE_FAST_ALLOCATED; | 344 WTF_MAKE_NONCOPYABLE(RenderBlockFlowRareData); WTF_MAKE_FAST_ALLOCATED; |
| 375 public: | 345 public: |
| 376 RenderBlockFlowRareData(const RenderBlockFlow* block) | 346 RenderBlockFlowRareData(const RenderBlockFlow* block) |
| 377 : m_margins(positiveMarginBeforeDefault(block), negativeMarginBefore
Default(block), positiveMarginAfterDefault(block), negativeMarginAfterDefault(bl
ock)) | 347 : m_margins(positiveMarginBeforeDefault(block), negativeMarginBefore
Default(block), positiveMarginAfterDefault(block), negativeMarginAfterDefault(bl
ock)) |
| 378 , m_lineGridBox(0) | 348 , m_lineGridBox(0) |
| 379 , m_discardMarginBefore(false) | 349 , m_discardMarginBefore(false) |
| 380 , m_discardMarginAfter(false) | 350 , m_discardMarginAfter(false) |
| 381 , m_renderNamedFlowFragment(0) | |
| 382 { | 351 { |
| 383 } | 352 } |
| 384 | 353 |
| 385 static LayoutUnit positiveMarginBeforeDefault(const RenderBlockFlow* blo
ck) | 354 static LayoutUnit positiveMarginBeforeDefault(const RenderBlockFlow* blo
ck) |
| 386 { | 355 { |
| 387 return std::max<LayoutUnit>(block->marginBefore(), 0); | 356 return std::max<LayoutUnit>(block->marginBefore(), 0); |
| 388 } | 357 } |
| 389 static LayoutUnit negativeMarginBeforeDefault(const RenderBlockFlow* blo
ck) | 358 static LayoutUnit negativeMarginBeforeDefault(const RenderBlockFlow* blo
ck) |
| 390 { | 359 { |
| 391 return std::max<LayoutUnit>(-block->marginBefore(), 0); | 360 return std::max<LayoutUnit>(-block->marginBefore(), 0); |
| 392 } | 361 } |
| 393 static LayoutUnit positiveMarginAfterDefault(const RenderBlockFlow* bloc
k) | 362 static LayoutUnit positiveMarginAfterDefault(const RenderBlockFlow* bloc
k) |
| 394 { | 363 { |
| 395 return std::max<LayoutUnit>(block->marginAfter(), 0); | 364 return std::max<LayoutUnit>(block->marginAfter(), 0); |
| 396 } | 365 } |
| 397 static LayoutUnit negativeMarginAfterDefault(const RenderBlockFlow* bloc
k) | 366 static LayoutUnit negativeMarginAfterDefault(const RenderBlockFlow* bloc
k) |
| 398 { | 367 { |
| 399 return std::max<LayoutUnit>(-block->marginAfter(), 0); | 368 return std::max<LayoutUnit>(-block->marginAfter(), 0); |
| 400 } | 369 } |
| 401 | 370 |
| 402 MarginValues m_margins; | 371 MarginValues m_margins; |
| 403 | 372 |
| 404 RootInlineBox* m_lineGridBox; | 373 RootInlineBox* m_lineGridBox; |
| 405 | 374 |
| 406 bool m_discardMarginBefore : 1; | 375 bool m_discardMarginBefore : 1; |
| 407 bool m_discardMarginAfter : 1; | 376 bool m_discardMarginAfter : 1; |
| 408 RenderNamedFlowFragment* m_renderNamedFlowFragment; | |
| 409 }; | 377 }; |
| 410 LayoutUnit marginOffsetForSelfCollapsingBlock(); | 378 LayoutUnit marginOffsetForSelfCollapsingBlock(); |
| 411 | 379 |
| 412 RenderNamedFlowFragment* renderNamedFlowFragment() const { return m_rareData
? m_rareData->m_renderNamedFlowFragment : 0; } | |
| 413 void setRenderNamedFlowFragment(RenderNamedFlowFragment*); | |
| 414 | |
| 415 protected: | 380 protected: |
| 416 LayoutUnit maxPositiveMarginBefore() const { return m_rareData ? m_rareData-
>m_margins.positiveMarginBefore() : RenderBlockFlowRareData::positiveMarginBefor
eDefault(this); } | 381 LayoutUnit maxPositiveMarginBefore() const { return m_rareData ? m_rareData-
>m_margins.positiveMarginBefore() : RenderBlockFlowRareData::positiveMarginBefor
eDefault(this); } |
| 417 LayoutUnit maxNegativeMarginBefore() const { return m_rareData ? m_rareData-
>m_margins.negativeMarginBefore() : RenderBlockFlowRareData::negativeMarginBefor
eDefault(this); } | 382 LayoutUnit maxNegativeMarginBefore() const { return m_rareData ? m_rareData-
>m_margins.negativeMarginBefore() : RenderBlockFlowRareData::negativeMarginBefor
eDefault(this); } |
| 418 LayoutUnit maxPositiveMarginAfter() const { return m_rareData ? m_rareData->
m_margins.positiveMarginAfter() : RenderBlockFlowRareData::positiveMarginAfterDe
fault(this); } | 383 LayoutUnit maxPositiveMarginAfter() const { return m_rareData ? m_rareData->
m_margins.positiveMarginAfter() : RenderBlockFlowRareData::positiveMarginAfterDe
fault(this); } |
| 419 LayoutUnit maxNegativeMarginAfter() const { return m_rareData ? m_rareData->
m_margins.negativeMarginAfter() : RenderBlockFlowRareData::negativeMarginAfterDe
fault(this); } | 384 LayoutUnit maxNegativeMarginAfter() const { return m_rareData ? m_rareData->
m_margins.negativeMarginAfter() : RenderBlockFlowRareData::negativeMarginAfterDe
fault(this); } |
| 420 | 385 |
| 421 void setMaxMarginBeforeValues(LayoutUnit pos, LayoutUnit neg); | 386 void setMaxMarginBeforeValues(LayoutUnit pos, LayoutUnit neg); |
| 422 void setMaxMarginAfterValues(LayoutUnit pos, LayoutUnit neg); | 387 void setMaxMarginAfterValues(LayoutUnit pos, LayoutUnit neg); |
| 423 | 388 |
| 424 void setMustDiscardMarginBefore(bool = true); | 389 void setMustDiscardMarginBefore(bool = true); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 457 void setCollapsedBottomMargin(const MarginInfo&); | 422 void setCollapsedBottomMargin(const MarginInfo&); |
| 458 | 423 |
| 459 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. | 424 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. |
| 460 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. | 425 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. |
| 461 | 426 |
| 462 LayoutUnit adjustBlockChildForPagination(LayoutUnit logicalTopAfterClear, La
youtUnit estimateWithoutPagination, RenderBox* child, bool atBeforeSideOfBlock); | 427 LayoutUnit adjustBlockChildForPagination(LayoutUnit logicalTopAfterClear, La
youtUnit estimateWithoutPagination, RenderBox* child, bool atBeforeSideOfBlock); |
| 463 | 428 |
| 464 // Used to store state between styleWillChange and styleDidChange | 429 // Used to store state between styleWillChange and styleDidChange |
| 465 static bool s_canPropagateFloatIntoSibling; | 430 static bool s_canPropagateFloatIntoSibling; |
| 466 | 431 |
| 467 virtual bool canHaveChildren() const OVERRIDE; | |
| 468 virtual bool canHaveGeneratedChildren() const OVERRIDE; | |
| 469 | |
| 470 void createRenderNamedFlowFragmentIfNeeded(); | |
| 471 | |
| 472 RenderBlockFlowRareData& ensureRareData(); | 432 RenderBlockFlowRareData& ensureRareData(); |
| 473 | 433 |
| 474 LayoutUnit m_repaintLogicalTop; | 434 LayoutUnit m_repaintLogicalTop; |
| 475 LayoutUnit m_repaintLogicalBottom; | 435 LayoutUnit m_repaintLogicalBottom; |
| 476 | 436 |
| 477 virtual bool isSelfCollapsingBlock() const OVERRIDE; | 437 virtual bool isSelfCollapsingBlock() const OVERRIDE; |
| 478 protected: | 438 protected: |
| 479 OwnPtr<RenderBlockFlowRareData> m_rareData; | 439 OwnPtr<RenderBlockFlowRareData> m_rareData; |
| 480 OwnPtr<FloatingObjects> m_floatingObjects; | 440 OwnPtr<FloatingObjects> m_floatingObjects; |
| 481 | 441 |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 522 | 482 |
| 523 // END METHODS DEFINED IN RenderBlockLineLayout | 483 // END METHODS DEFINED IN RenderBlockLineLayout |
| 524 | 484 |
| 525 }; | 485 }; |
| 526 | 486 |
| 527 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlockFlow, isRenderBlockFlow()); | 487 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlockFlow, isRenderBlockFlow()); |
| 528 | 488 |
| 529 } // namespace WebCore | 489 } // namespace WebCore |
| 530 | 490 |
| 531 #endif // RenderBlockFlow_h | 491 #endif // RenderBlockFlow_h |
| OLD | NEW |