| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1997 Martin Jones (mjones@kde.org) | 2 * Copyright (C) 1997 Martin Jones (mjones@kde.org) |
| 3 * (C) 1997 Torben Weis (weis@kde.org) | 3 * (C) 1997 Torben Weis (weis@kde.org) |
| 4 * (C) 1998 Waldo Bastian (bastian@kde.org) | 4 * (C) 1998 Waldo Bastian (bastian@kde.org) |
| 5 * (C) 1999 Lars Knoll (knoll@kde.org) | 5 * (C) 1999 Lars Knoll (knoll@kde.org) |
| 6 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 6 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 7 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2013 Apple Inc. | 7 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2013 Apple Inc. |
| 8 * All rights reserved. | 8 * All rights reserved. |
| 9 * | 9 * |
| 10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
| (...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 313 LayoutRect visualRect() const; | 313 LayoutRect visualRect() const; |
| 314 | 314 |
| 315 private: | 315 private: |
| 316 const LayoutTableCell& m_layoutTableCell; | 316 const LayoutTableCell& m_layoutTableCell; |
| 317 CollapsedBorderValue m_startBorder; | 317 CollapsedBorderValue m_startBorder; |
| 318 CollapsedBorderValue m_endBorder; | 318 CollapsedBorderValue m_endBorder; |
| 319 CollapsedBorderValue m_beforeBorder; | 319 CollapsedBorderValue m_beforeBorder; |
| 320 CollapsedBorderValue m_afterBorder; | 320 CollapsedBorderValue m_afterBorder; |
| 321 }; | 321 }; |
| 322 | 322 |
| 323 class RowBackgroundDisplayItemClient : public DisplayItemClient { | |
| 324 public: | |
| 325 RowBackgroundDisplayItemClient(const LayoutTableCell&); | |
| 326 | |
| 327 // DisplayItemClient methods. | |
| 328 String debugName() const; | |
| 329 LayoutRect visualRect() const; | |
| 330 | |
| 331 private: | |
| 332 const LayoutTableCell& m_layoutTableCell; | |
| 333 }; | |
| 334 | |
| 335 bool usesCompositedCellDisplayItemClients() const; | 323 bool usesCompositedCellDisplayItemClients() const; |
| 336 const CollapsedBorderValues* collapsedBorderValues() const { | 324 const CollapsedBorderValues* collapsedBorderValues() const { |
| 337 return m_collapsedBorderValues.get(); | 325 return m_collapsedBorderValues.get(); |
| 338 } | 326 } |
| 339 const DisplayItemClient& backgroundDisplayItemClient() const { | |
| 340 return (m_rowBackgroundDisplayItemClient && | |
| 341 usesCompositedCellDisplayItemClients()) | |
| 342 ? static_cast<const DisplayItemClient&>( | |
| 343 *m_rowBackgroundDisplayItemClient) | |
| 344 : *this; | |
| 345 } | |
| 346 | 327 |
| 347 LayoutRect debugRect() const override; | 328 LayoutRect debugRect() const override; |
| 348 | 329 |
| 349 void adjustChildDebugRect(LayoutRect&) const override; | 330 void adjustChildDebugRect(LayoutRect&) const override; |
| 350 | 331 |
| 351 // A table cell's location is relative to its containing section. | 332 // A table cell's location is relative to its containing section. |
| 352 LayoutBox* locationContainer() const override { return section(); } | 333 LayoutBox* locationContainer() const override { return section(); } |
| 353 | 334 |
| 354 void ensureIsReadyForPaintInvalidation() override; | |
| 355 | |
| 356 bool hasLineIfEmpty() const override; | 335 bool hasLineIfEmpty() const override; |
| 357 | 336 |
| 358 protected: | 337 protected: |
| 359 void styleDidChange(StyleDifference, const ComputedStyle* oldStyle) override; | 338 void styleDidChange(StyleDifference, const ComputedStyle* oldStyle) override; |
| 360 void computePreferredLogicalWidths() override; | 339 void computePreferredLogicalWidths() override; |
| 361 | 340 |
| 362 void addLayerHitTestRects(LayerHitTestRects&, | 341 void addLayerHitTestRects(LayerHitTestRects&, |
| 363 const PaintLayer* currentCompositedLayer, | 342 const PaintLayer* currentCompositedLayer, |
| 364 const LayoutPoint& layerOffset, | 343 const LayoutPoint& layerOffset, |
| 365 const LayoutRect& containerRect) const override; | 344 const LayoutRect& containerRect) const override; |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 447 | 426 |
| 448 // The intrinsic padding. | 427 // The intrinsic padding. |
| 449 // See class comment for what they are. | 428 // See class comment for what they are. |
| 450 // | 429 // |
| 451 // Note: Those fields are using non-subpixel units (int) | 430 // Note: Those fields are using non-subpixel units (int) |
| 452 // because we don't do fractional arithmetic on tables. | 431 // because we don't do fractional arithmetic on tables. |
| 453 int m_intrinsicPaddingBefore; | 432 int m_intrinsicPaddingBefore; |
| 454 int m_intrinsicPaddingAfter; | 433 int m_intrinsicPaddingAfter; |
| 455 | 434 |
| 456 std::unique_ptr<CollapsedBorderValues> m_collapsedBorderValues; | 435 std::unique_ptr<CollapsedBorderValues> m_collapsedBorderValues; |
| 457 std::unique_ptr<RowBackgroundDisplayItemClient> | |
| 458 m_rowBackgroundDisplayItemClient; | |
| 459 }; | 436 }; |
| 460 | 437 |
| 461 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutTableCell, isTableCell()); | 438 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutTableCell, isTableCell()); |
| 462 | 439 |
| 463 inline LayoutTableCell* LayoutTableCell::previousCell() const { | 440 inline LayoutTableCell* LayoutTableCell::previousCell() const { |
| 464 return toLayoutTableCell(LayoutObject::previousSibling()); | 441 return toLayoutTableCell(LayoutObject::previousSibling()); |
| 465 } | 442 } |
| 466 | 443 |
| 467 inline LayoutTableCell* LayoutTableCell::nextCell() const { | 444 inline LayoutTableCell* LayoutTableCell::nextCell() const { |
| 468 return toLayoutTableCell(LayoutObject::nextSibling()); | 445 return toLayoutTableCell(LayoutObject::nextSibling()); |
| 469 } | 446 } |
| 470 | 447 |
| 471 inline LayoutTableCell* LayoutTableRow::firstCell() const { | 448 inline LayoutTableCell* LayoutTableRow::firstCell() const { |
| 472 return toLayoutTableCell(firstChild()); | 449 return toLayoutTableCell(firstChild()); |
| 473 } | 450 } |
| 474 | 451 |
| 475 inline LayoutTableCell* LayoutTableRow::lastCell() const { | 452 inline LayoutTableCell* LayoutTableRow::lastCell() const { |
| 476 return toLayoutTableCell(lastChild()); | 453 return toLayoutTableCell(lastChild()); |
| 477 } | 454 } |
| 478 | 455 |
| 479 } // namespace blink | 456 } // namespace blink |
| 480 | 457 |
| 481 #endif // LayoutTableCell_h | 458 #endif // LayoutTableCell_h |
| OLD | NEW |