| 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 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 307 FlowThreadType flowThreadType(const RenderStyle*); | 307 FlowThreadType flowThreadType(const RenderStyle*); |
| 308 | 308 |
| 309 RenderMultiColumnFlowThread* createMultiColumnFlowThread(FlowThreadType); | 309 RenderMultiColumnFlowThread* createMultiColumnFlowThread(FlowThreadType); |
| 310 void createOrDestroyMultiColumnFlowThreadIfNeeded(const RenderStyle* oldStyl
e); | 310 void createOrDestroyMultiColumnFlowThreadIfNeeded(const RenderStyle* oldStyl
e); |
| 311 | 311 |
| 312 void updateLogicalWidthForAlignment(const ETextAlign&, const RootInlineBox*,
BidiRun* trailingSpaceRun, float& logicalLeft, float& totalLogicalWidth, float&
availableLogicalWidth, unsigned expansionOpportunityCount); | 312 void updateLogicalWidthForAlignment(const ETextAlign&, const RootInlineBox*,
BidiRun* trailingSpaceRun, float& logicalLeft, float& totalLogicalWidth, float&
availableLogicalWidth, unsigned expansionOpportunityCount); |
| 313 void checkForPaginationLogicalHeightChange(LayoutUnit& pageLogicalHeight, bo
ol& pageLogicalHeightChanged, bool& hasSpecifiedPageLogicalHeight); | 313 void checkForPaginationLogicalHeightChange(LayoutUnit& pageLogicalHeight, bo
ol& pageLogicalHeightChanged, bool& hasSpecifiedPageLogicalHeight); |
| 314 bool shouldRelayoutForPagination(LayoutUnit& pageLogicalHeight, LayoutUnit l
ayoutOverflowLogicalBottom) const; | 314 bool shouldRelayoutForPagination(LayoutUnit& pageLogicalHeight, LayoutUnit l
ayoutOverflowLogicalBottom) const; |
| 315 void setColumnCountAndHeight(unsigned count, LayoutUnit pageLogicalHeight); | 315 void setColumnCountAndHeight(unsigned count, LayoutUnit pageLogicalHeight); |
| 316 | 316 |
| 317 bool shouldBreakAtLineToAvoidWidow() const { return m_rareData && m_rareData
->m_lineBreakToAvoidWidow >= 0; } |
| 318 void clearShouldBreakAtLineToAvoidWidow() const; |
| 319 int lineBreakToAvoidWidow() const { return m_rareData ? m_rareData->m_lineBr
eakToAvoidWidow : -1; } |
| 320 void setBreakAtLineToAvoidWidow(int); |
| 321 void clearDidBreakAtLineToAvoidWidow(); |
| 322 void setDidBreakAtLineToAvoidWidow(); |
| 323 bool didBreakAtLineToAvoidWidow() const { return m_rareData && m_rareData->m
_didBreakAtLineToAvoidWidow; } |
| 324 |
| 317 public: | 325 public: |
| 318 struct FloatWithRect { | 326 struct FloatWithRect { |
| 319 FloatWithRect(RenderBox* f) | 327 FloatWithRect(RenderBox* f) |
| 320 : object(f) | 328 : object(f) |
| 321 , rect(LayoutRect(f->x() - f->marginLeft(), f->y() - f->marginTop(),
f->width() + f->marginWidth(), f->height() + f->marginHeight())) | 329 , rect(LayoutRect(f->x() - f->marginLeft(), f->y() - f->marginTop(),
f->width() + f->marginWidth(), f->height() + f->marginHeight())) |
| 322 , everHadLayout(f->everHadLayout()) | 330 , everHadLayout(f->everHadLayout()) |
| 323 { | 331 { |
| 324 } | 332 } |
| 325 | 333 |
| 326 RenderBox* object; | 334 RenderBox* object; |
| (...skipping 29 matching lines...) Expand all Loading... |
| 356 MarginValues marginValuesForChild(RenderBox* child) const; | 364 MarginValues marginValuesForChild(RenderBox* child) const; |
| 357 | 365 |
| 358 // Allocated only when some of these fields have non-default values | 366 // Allocated only when some of these fields have non-default values |
| 359 struct RenderBlockFlowRareData { | 367 struct RenderBlockFlowRareData { |
| 360 WTF_MAKE_NONCOPYABLE(RenderBlockFlowRareData); WTF_MAKE_FAST_ALLOCATED; | 368 WTF_MAKE_NONCOPYABLE(RenderBlockFlowRareData); WTF_MAKE_FAST_ALLOCATED; |
| 361 public: | 369 public: |
| 362 RenderBlockFlowRareData(const RenderBlockFlow* block) | 370 RenderBlockFlowRareData(const RenderBlockFlow* block) |
| 363 : m_margins(positiveMarginBeforeDefault(block), negativeMarginBefore
Default(block), positiveMarginAfterDefault(block), negativeMarginAfterDefault(bl
ock)) | 371 : m_margins(positiveMarginBeforeDefault(block), negativeMarginBefore
Default(block), positiveMarginAfterDefault(block), negativeMarginAfterDefault(bl
ock)) |
| 364 , m_paginationStrut(0) | 372 , m_paginationStrut(0) |
| 365 , m_multiColumnFlowThread(0) | 373 , m_multiColumnFlowThread(0) |
| 374 , m_lineBreakToAvoidWidow(-1) |
| 375 , m_didBreakAtLineToAvoidWidow(false) |
| 366 , m_discardMarginBefore(false) | 376 , m_discardMarginBefore(false) |
| 367 , m_discardMarginAfter(false) | 377 , m_discardMarginAfter(false) |
| 368 { | 378 { |
| 369 } | 379 } |
| 370 | 380 |
| 371 static LayoutUnit positiveMarginBeforeDefault(const RenderBlockFlow* blo
ck) | 381 static LayoutUnit positiveMarginBeforeDefault(const RenderBlockFlow* blo
ck) |
| 372 { | 382 { |
| 373 return std::max<LayoutUnit>(block->marginBefore(), 0); | 383 return std::max<LayoutUnit>(block->marginBefore(), 0); |
| 374 } | 384 } |
| 375 static LayoutUnit negativeMarginBeforeDefault(const RenderBlockFlow* blo
ck) | 385 static LayoutUnit negativeMarginBeforeDefault(const RenderBlockFlow* blo
ck) |
| 376 { | 386 { |
| 377 return std::max<LayoutUnit>(-block->marginBefore(), 0); | 387 return std::max<LayoutUnit>(-block->marginBefore(), 0); |
| 378 } | 388 } |
| 379 static LayoutUnit positiveMarginAfterDefault(const RenderBlockFlow* bloc
k) | 389 static LayoutUnit positiveMarginAfterDefault(const RenderBlockFlow* bloc
k) |
| 380 { | 390 { |
| 381 return std::max<LayoutUnit>(block->marginAfter(), 0); | 391 return std::max<LayoutUnit>(block->marginAfter(), 0); |
| 382 } | 392 } |
| 383 static LayoutUnit negativeMarginAfterDefault(const RenderBlockFlow* bloc
k) | 393 static LayoutUnit negativeMarginAfterDefault(const RenderBlockFlow* bloc
k) |
| 384 { | 394 { |
| 385 return std::max<LayoutUnit>(-block->marginAfter(), 0); | 395 return std::max<LayoutUnit>(-block->marginAfter(), 0); |
| 386 } | 396 } |
| 387 | 397 |
| 388 MarginValues m_margins; | 398 MarginValues m_margins; |
| 389 LayoutUnit m_paginationStrut; | 399 LayoutUnit m_paginationStrut; |
| 390 | 400 |
| 391 RenderMultiColumnFlowThread* m_multiColumnFlowThread; | 401 RenderMultiColumnFlowThread* m_multiColumnFlowThread; |
| 392 | 402 |
| 403 int m_lineBreakToAvoidWidow; |
| 404 bool m_didBreakAtLineToAvoidWidow : 1; |
| 393 bool m_discardMarginBefore : 1; | 405 bool m_discardMarginBefore : 1; |
| 394 bool m_discardMarginAfter : 1; | 406 bool m_discardMarginAfter : 1; |
| 395 }; | 407 }; |
| 396 LayoutUnit marginOffsetForSelfCollapsingBlock(); | 408 LayoutUnit marginOffsetForSelfCollapsingBlock(); |
| 397 | 409 |
| 398 protected: | 410 protected: |
| 399 LayoutUnit maxPositiveMarginBefore() const { return m_rareData ? m_rareData-
>m_margins.positiveMarginBefore() : RenderBlockFlowRareData::positiveMarginBefor
eDefault(this); } | 411 LayoutUnit maxPositiveMarginBefore() const { return m_rareData ? m_rareData-
>m_margins.positiveMarginBefore() : RenderBlockFlowRareData::positiveMarginBefor
eDefault(this); } |
| 400 LayoutUnit maxNegativeMarginBefore() const { return m_rareData ? m_rareData-
>m_margins.negativeMarginBefore() : RenderBlockFlowRareData::negativeMarginBefor
eDefault(this); } | 412 LayoutUnit maxNegativeMarginBefore() const { return m_rareData ? m_rareData-
>m_margins.negativeMarginBefore() : RenderBlockFlowRareData::negativeMarginBefor
eDefault(this); } |
| 401 LayoutUnit maxPositiveMarginAfter() const { return m_rareData ? m_rareData->
m_margins.positiveMarginAfter() : RenderBlockFlowRareData::positiveMarginAfterDe
fault(this); } | 413 LayoutUnit maxPositiveMarginAfter() const { return m_rareData ? m_rareData->
m_margins.positiveMarginAfter() : RenderBlockFlowRareData::positiveMarginAfterDe
fault(this); } |
| 402 LayoutUnit maxNegativeMarginAfter() const { return m_rareData ? m_rareData->
m_margins.negativeMarginAfter() : RenderBlockFlowRareData::negativeMarginAfterDe
fault(this); } | 414 LayoutUnit maxNegativeMarginAfter() const { return m_rareData ? m_rareData->
m_margins.negativeMarginAfter() : RenderBlockFlowRareData::negativeMarginAfterDe
fault(this); } |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 498 | 510 |
| 499 // END METHODS DEFINED IN RenderBlockLineLayout | 511 // END METHODS DEFINED IN RenderBlockLineLayout |
| 500 | 512 |
| 501 }; | 513 }; |
| 502 | 514 |
| 503 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlockFlow, isRenderBlockFlow()); | 515 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlockFlow, isRenderBlockFlow()); |
| 504 | 516 |
| 505 } // namespace WebCore | 517 } // namespace WebCore |
| 506 | 518 |
| 507 #endif // RenderBlockFlow_h | 519 #endif // RenderBlockFlow_h |
| OLD | NEW |