| 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, 2010 Apple Inc. | 7 * Copyright (C) 2003, 2004, 2005, 2006, 2009, 2010 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 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 409 LayoutTableCell* CellBelow(const LayoutTableCell*) const; | 409 LayoutTableCell* CellBelow(const LayoutTableCell*) const; |
| 410 LayoutTableCell* CellBefore(const LayoutTableCell*) const; | 410 LayoutTableCell* CellBefore(const LayoutTableCell*) const; |
| 411 LayoutTableCell* CellAfter(const LayoutTableCell*) const; | 411 LayoutTableCell* CellAfter(const LayoutTableCell*) const; |
| 412 | 412 |
| 413 using CollapsedBorderValues = Vector<CollapsedBorderValue>; | 413 using CollapsedBorderValues = Vector<CollapsedBorderValue>; |
| 414 const CollapsedBorderValues& CollapsedBorders() const { | 414 const CollapsedBorderValues& CollapsedBorders() const { |
| 415 DCHECK(collapsed_borders_valid_); | 415 DCHECK(collapsed_borders_valid_); |
| 416 return collapsed_borders_; | 416 return collapsed_borders_; |
| 417 } | 417 } |
| 418 void InvalidateCollapsedBorders(); | 418 void InvalidateCollapsedBorders(); |
| 419 void InvalidateCollapsedBordersForAllCellsIfNeeded(); |
| 419 | 420 |
| 420 bool HasSections() const { return Header() || Footer() || FirstBody(); } | 421 bool HasSections() const { return Header() || Footer() || FirstBody(); } |
| 421 | 422 |
| 422 void RecalcSectionsIfNeeded() const { | 423 void RecalcSectionsIfNeeded() const { |
| 423 if (needs_section_recalc_) | 424 if (needs_section_recalc_) |
| 424 RecalcSections(); | 425 RecalcSections(); |
| 425 } | 426 } |
| 426 | 427 |
| 427 static LayoutTable* CreateAnonymousWithParent(const LayoutObject*); | 428 static LayoutTable* CreateAnonymousWithParent(const LayoutObject*); |
| 428 LayoutBox* CreateAnonymousBoxWithSameTypeAs( | 429 LayoutBox* CreateAnonymousBoxWithSameTypeAs( |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 581 std::unique_ptr<TableLayoutAlgorithm> table_layout_; | 582 std::unique_ptr<TableLayoutAlgorithm> table_layout_; |
| 582 | 583 |
| 583 // A sorted list of all unique border values that we want to paint. | 584 // A sorted list of all unique border values that we want to paint. |
| 584 // | 585 // |
| 585 // Collapsed borders are SUPER EXPENSIVE to compute. The reason is that we | 586 // Collapsed borders are SUPER EXPENSIVE to compute. The reason is that we |
| 586 // need to compare a cells border against all the adjoining cells, rows, | 587 // need to compare a cells border against all the adjoining cells, rows, |
| 587 // row groups, column, column groups and table. Thus we cache them in this | 588 // row groups, column, column groups and table. Thus we cache them in this |
| 588 // field. | 589 // field. |
| 589 CollapsedBorderValues collapsed_borders_; | 590 CollapsedBorderValues collapsed_borders_; |
| 590 bool collapsed_borders_valid_ : 1; | 591 bool collapsed_borders_valid_ : 1; |
| 592 bool needs_invalidate_collapsed_borders_for_all_cells_ : 1; |
| 591 | 593 |
| 592 mutable bool has_col_elements_ : 1; | 594 mutable bool has_col_elements_ : 1; |
| 593 mutable bool needs_section_recalc_ : 1; | 595 mutable bool needs_section_recalc_ : 1; |
| 594 | 596 |
| 595 bool column_logical_width_changed_ : 1; | 597 bool column_logical_width_changed_ : 1; |
| 596 mutable bool column_layout_objects_valid_ : 1; | 598 mutable bool column_layout_objects_valid_ : 1; |
| 597 mutable unsigned no_cell_colspan_at_least_; | 599 mutable unsigned no_cell_colspan_at_least_; |
| 598 unsigned CalcNoCellColspanAtLeast() const { | 600 unsigned CalcNoCellColspanAtLeast() const { |
| 599 for (unsigned c = 0; c < NumEffectiveColumns(); c++) { | 601 for (unsigned c = 0; c < NumEffectiveColumns(); c++) { |
| 600 if (effective_columns_[c].span > 1) | 602 if (effective_columns_[c].span > 1) |
| (...skipping 19 matching lines...) Expand all Loading... |
| 620 if (first_body_) | 622 if (first_body_) |
| 621 return first_body_; | 623 return first_body_; |
| 622 return foot_; | 624 return foot_; |
| 623 } | 625 } |
| 624 | 626 |
| 625 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutTable, IsTable()); | 627 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutTable, IsTable()); |
| 626 | 628 |
| 627 } // namespace blink | 629 } // namespace blink |
| 628 | 630 |
| 629 #endif // LayoutTable_h | 631 #endif // LayoutTable_h |
| OLD | NEW |