| 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, 2009, 2013 Apple Inc. All rights | 7 * Copyright (C) 2003, 2004, 2005, 2006, 2009, 2013 Apple Inc. All rights |
| 8 * reserved. | 8 * 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 21 matching lines...) Expand all Loading... |
| 32 #include "core/layout/TableGridCell.h" | 32 #include "core/layout/TableGridCell.h" |
| 33 #include "platform/wtf/Vector.h" | 33 #include "platform/wtf/Vector.h" |
| 34 | 34 |
| 35 namespace blink { | 35 namespace blink { |
| 36 | 36 |
| 37 // Helper class for paintObject. | 37 // Helper class for paintObject. |
| 38 class CellSpan { | 38 class CellSpan { |
| 39 STACK_ALLOCATED(); | 39 STACK_ALLOCATED(); |
| 40 | 40 |
| 41 public: | 41 public: |
| 42 CellSpan() : start_(0), end_(0) {} |
| 42 CellSpan(unsigned start, unsigned end) : start_(start), end_(end) {} | 43 CellSpan(unsigned start, unsigned end) : start_(start), end_(end) {} |
| 43 | 44 |
| 44 unsigned Start() const { return start_; } | 45 unsigned Start() const { return start_; } |
| 45 unsigned end() const { return end_; } | 46 unsigned End() const { return end_; } |
| 46 | 47 |
| 47 void DecreaseStart() { --start_; } | 48 void DecreaseStart() { --start_; } |
| 48 void IncreaseEnd() { ++end_; } | 49 void IncreaseEnd() { ++end_; } |
| 49 | 50 |
| 50 void EnsureConsistency(const unsigned); | 51 void EnsureConsistency(const unsigned); |
| 51 | 52 |
| 52 private: | 53 private: |
| 53 unsigned start_; | 54 unsigned start_; |
| 54 unsigned end_; | 55 unsigned end_; |
| 55 }; | 56 }; |
| 56 | 57 |
| 57 inline bool operator==(const CellSpan& s1, const CellSpan& s2) { | 58 inline bool operator==(const CellSpan& s1, const CellSpan& s2) { |
| 58 return s1.Start() == s2.Start() && s1.end() == s2.end(); | 59 return s1.Start() == s2.Start() && s1.End() == s2.End(); |
| 59 } | 60 } |
| 60 inline bool operator!=(const CellSpan& s1, const CellSpan& s2) { | 61 inline bool operator!=(const CellSpan& s1, const CellSpan& s2) { |
| 61 return !(s1 == s2); | 62 return !(s1 == s2); |
| 62 } | 63 } |
| 63 | 64 |
| 64 class LayoutTableCell; | 65 class LayoutTableCell; |
| 65 class LayoutTableRow; | 66 class LayoutTableRow; |
| 66 | 67 |
| 67 // LayoutTableSection is used to represent table row group (display: | 68 // LayoutTableSection is used to represent table row group (display: |
| 68 // table-row-group), header group (display: table-header-group) and footer group | 69 // table-row-group), header group (display: table-header-group) and footer group |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 const LayoutObject* parent) const override { | 257 const LayoutObject* parent) const override { |
| 257 return CreateAnonymousWithParent(parent); | 258 return CreateAnonymousWithParent(parent); |
| 258 } | 259 } |
| 259 | 260 |
| 260 void Paint(const PaintInfo&, const LayoutPoint&) const override; | 261 void Paint(const PaintInfo&, const LayoutPoint&) const override; |
| 261 | 262 |
| 262 // Flip the rect so it aligns with the coordinates used by the rowPos and | 263 // Flip the rect so it aligns with the coordinates used by the rowPos and |
| 263 // columnPos vectors. | 264 // columnPos vectors. |
| 264 LayoutRect LogicalRectForWritingModeAndDirection(const LayoutRect&) const; | 265 LayoutRect LogicalRectForWritingModeAndDirection(const LayoutRect&) const; |
| 265 | 266 |
| 266 // Returns a row or column span covering all grid slots from each of which | 267 // Sets |rows| and |columns| to cover all cells needing repaint in |
| 267 // a primary cell intersecting |visualRect| originates. | 268 // |damage_rect|. |
| 268 CellSpan DirtiedRows(const LayoutRect& visual_rect) const; | 269 void DirtiedRowsAndEffectiveColumns(const LayoutRect& damage_rect, |
| 269 CellSpan DirtiedEffectiveColumns(const LayoutRect& visual_rect) const; | 270 CellSpan& rows, |
| 271 CellSpan& columns) const; |
| 270 | 272 |
| 271 const HashSet<const LayoutTableCell*>& OverflowingCells() const { | 273 const HashSet<const LayoutTableCell*>& OverflowingCells() const { |
| 272 return overflowing_cells_; | 274 return overflowing_cells_; |
| 273 } | 275 } |
| 274 bool HasOverflowingCell() const { | 276 bool HasOverflowingCell() const { |
| 275 return overflowing_cells_.size() || force_full_paint_; | 277 return overflowing_cells_.size() || force_full_paint_; |
| 276 } | 278 } |
| 277 bool HasMultipleCellLevels() const { return has_multiple_cell_levels_; } | 279 bool HasMultipleCellLevels() const { return has_multiple_cell_levels_; } |
| 278 | 280 |
| 279 const char* GetName() const override { return "LayoutTableSection"; } | 281 const char* GetName() const override { return "LayoutTableSection"; } |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 456 | 458 |
| 457 // Whether any cell spans multiple rows or cols. | 459 // Whether any cell spans multiple rows or cols. |
| 458 bool has_spanning_cells_; | 460 bool has_spanning_cells_; |
| 459 }; | 461 }; |
| 460 | 462 |
| 461 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutTableSection, IsTableSection()); | 463 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutTableSection, IsTableSection()); |
| 462 | 464 |
| 463 } // namespace blink | 465 } // namespace blink |
| 464 | 466 |
| 465 #endif // LayoutTableSection_h | 467 #endif // LayoutTableSection_h |
| OLD | NEW |