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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutTableSection.h

Issue 2548333003: Revert of Paint collapsed borders of a table as one display item (Closed)
Patch Set: Created 4 years 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
OLDNEW
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 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 void decreaseStart() { --m_start; } 50 void decreaseStart() { --m_start; }
51 void increaseEnd() { ++m_end; } 51 void increaseEnd() { ++m_end; }
52 52
53 void ensureConsistency(const unsigned); 53 void ensureConsistency(const unsigned);
54 54
55 private: 55 private:
56 unsigned m_start; 56 unsigned m_start;
57 unsigned m_end; 57 unsigned m_end;
58 }; 58 };
59 59
60 inline bool operator==(const CellSpan& a, const CellSpan& b) {
61 return a.start() == b.start() && a.end() == b.end();
62 }
63 inline bool operator!=(const CellSpan& a, const CellSpan& b) {
64 return !(a == b);
65 }
66
67 class LayoutTableCell; 60 class LayoutTableCell;
68 class LayoutTableRow; 61 class LayoutTableRow;
69 62
70 // LayoutTableSection is used to represent table row group (display: 63 // LayoutTableSection is used to represent table row group (display:
71 // table-row-group), header group (display: table-header-group) and footer group 64 // table-row-group), header group (display: table-header-group) and footer group
72 // (display: table-footer-group). 65 // (display: table-footer-group).
73 // 66 //
74 // The object holds the internal representation of the rows (m_grid). See 67 // The object holds the internal representation of the rows (m_grid). See
75 // recalcCells() below for some extra explanation. 68 // recalcCells() below for some extra explanation.
76 // 69 //
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 const LayoutObject* parent) const override { 289 const LayoutObject* parent) const override {
297 return createAnonymousWithParent(parent); 290 return createAnonymousWithParent(parent);
298 } 291 }
299 292
300 void paint(const PaintInfo&, const LayoutPoint&) const override; 293 void paint(const PaintInfo&, const LayoutPoint&) const override;
301 294
302 // Flip the rect so it aligns with the coordinates used by the rowPos and 295 // Flip the rect so it aligns with the coordinates used by the rowPos and
303 // columnPos vectors. 296 // columnPos vectors.
304 LayoutRect logicalRectForWritingModeAndDirection(const LayoutRect&) const; 297 LayoutRect logicalRectForWritingModeAndDirection(const LayoutRect&) const;
305 298
306 CellSpan fullTableRowSpan() const { return CellSpan(0, m_grid.size()); }
307 CellSpan fullTableEffectiveColumnSpan() const {
308 return CellSpan(0, table()->numEffectiveColumns());
309 }
310 CellSpan dirtiedRows(const LayoutRect& visualRect) const; 299 CellSpan dirtiedRows(const LayoutRect& visualRect) const;
311 CellSpan dirtiedEffectiveColumns(const LayoutRect& visualRect) const; 300 CellSpan dirtiedEffectiveColumns(const LayoutRect& visualRect) const;
312
313 const HashSet<LayoutTableCell*>& overflowingCells() const { 301 const HashSet<LayoutTableCell*>& overflowingCells() const {
314 return m_overflowingCells; 302 return m_overflowingCells;
315 } 303 }
316 bool hasMultipleCellLevels() const { return m_hasMultipleCellLevels; } 304 bool hasMultipleCellLevels() const { return m_hasMultipleCellLevels; }
317 305
318 const char* name() const override { return "LayoutTableSection"; } 306 const char* name() const override { return "LayoutTableSection"; }
319 307
320 // Whether a section has opaque background depends on many factors, e.g. 308 // Whether a section has opaque background depends on many factors, e.g.
321 // border spacing, border collapsing, missing cells, etc. For simplicity, 309 // border spacing, border collapsing, missing cells, etc. For simplicity,
322 // just conservatively assume all table sections are not opaque. 310 // just conservatively assume all table sections are not opaque.
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
406 void updateBaselineForCell(LayoutTableCell*, 394 void updateBaselineForCell(LayoutTableCell*,
407 unsigned row, 395 unsigned row,
408 int& baselineDescent); 396 int& baselineDescent);
409 397
410 bool hasOverflowingCell() const { 398 bool hasOverflowingCell() const {
411 return m_overflowingCells.size() || m_forceSlowPaintPathWithOverflowingCell; 399 return m_overflowingCells.size() || m_forceSlowPaintPathWithOverflowingCell;
412 } 400 }
413 401
414 void computeOverflowFromCells(unsigned totalRows, unsigned nEffCols); 402 void computeOverflowFromCells(unsigned totalRows, unsigned nEffCols);
415 403
404 CellSpan fullTableRowSpan() const { return CellSpan(0, m_grid.size()); }
405 CellSpan fullTableEffectiveColumnSpan() const {
406 return CellSpan(0, table()->numEffectiveColumns());
407 }
408
416 // These two functions take a rectangle as input that has been flipped by 409 // These two functions take a rectangle as input that has been flipped by
417 // logicalRectForWritingModeAndDirection. 410 // logicalRectForWritingModeAndDirection.
418 // The returned span of rows or columns is end-exclusive, and empty if 411 // The returned span of rows or columns is end-exclusive, and empty if
419 // start==end. 412 // start==end.
420 CellSpan spannedRows(const LayoutRect& flippedRect) const; 413 CellSpan spannedRows(const LayoutRect& flippedRect) const;
421 CellSpan spannedEffectiveColumns(const LayoutRect& flippedRect) const; 414 CellSpan spannedEffectiveColumns(const LayoutRect& flippedRect) const;
422 415
423 void setLogicalPositionForCell(LayoutTableCell*, 416 void setLogicalPositionForCell(LayoutTableCell*,
424 unsigned effectiveColumn) const; 417 unsigned effectiveColumn) const;
425 418
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 bool m_hasMultipleCellLevels; 472 bool m_hasMultipleCellLevels;
480 473
481 LayoutUnit m_offsetForRepeatingHeader; 474 LayoutUnit m_offsetForRepeatingHeader;
482 }; 475 };
483 476
484 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutTableSection, isTableSection()); 477 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutTableSection, isTableSection());
485 478
486 } // namespace blink 479 } // namespace blink
487 480
488 #endif // LayoutTableSection_h 481 #endif // LayoutTableSection_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutTableRow.cpp ('k') | third_party/WebKit/Source/core/layout/LayoutTableSection.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698