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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutTableCell.cpp

Issue 2701993002: DO NOT COMMIT: Results of running new (proposed) clang-format on Blink (Closed)
Patch Set: Created 3 years, 10 months 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, 2007, 2008, 2009 Apple Inc. 7 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 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 430 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 if (bottom) { 441 if (bottom) {
442 if (LayoutTableCell* below = table()->cellBelow(this)) { 442 if (LayoutTableCell* below = table()->cellBelow(this)) {
443 left = std::max(left, below->borderHalfLeft(true)); 443 left = std::max(left, below->borderHalfLeft(true));
444 right = std::max(right, below->borderHalfRight(true)); 444 right = std::max(right, below->borderHalfRight(true));
445 } 445 }
446 } 446 }
447 447
448 LayoutRect selfVisualOverflowRect = this->selfVisualOverflowRect(); 448 LayoutRect selfVisualOverflowRect = this->selfVisualOverflowRect();
449 LayoutPoint location(std::max(LayoutUnit(left), -selfVisualOverflowRect.x()), 449 LayoutPoint location(std::max(LayoutUnit(left), -selfVisualOverflowRect.x()),
450 std::max(LayoutUnit(top), -selfVisualOverflowRect.y())); 450 std::max(LayoutUnit(top), -selfVisualOverflowRect.y()));
451 return LayoutRect(-location.x(), -location.y(), 451 return LayoutRect(
452 location.x() + std::max(size().width() + right, 452 -location.x(), -location.y(),
453 selfVisualOverflowRect.maxX()), 453 location.x() +
454 location.y() + std::max(size().height() + bottom, 454 std::max(size().width() + right, selfVisualOverflowRect.maxX()),
455 selfVisualOverflowRect.maxY())); 455 location.y() +
456 std::max(size().height() + bottom, selfVisualOverflowRect.maxY()));
456 } 457 }
457 458
458 int LayoutTableCell::cellBaselinePosition() const { 459 int LayoutTableCell::cellBaselinePosition() const {
459 // <http://www.w3.org/TR/2007/CR-CSS21-20070719/tables.html#height-layout>: 460 // <http://www.w3.org/TR/2007/CR-CSS21-20070719/tables.html#height-layout>:
460 // The baseline of a cell is the baseline of the first in-flow line box in the 461 // The baseline of a cell is the baseline of the first in-flow line box in the
461 // cell, or the first in-flow table-row in the cell, whichever comes first. If 462 // cell, or the first in-flow table-row in the cell, whichever comes first. If
462 // there is no such line box or table-row, the baseline is the bottom of 463 // there is no such line box or table-row, the baseline is the bottom of
463 // content edge of the cell box. 464 // content edge of the cell box.
464 int firstLineBaseline = firstLineBoxBaseline(); 465 int firstLineBaseline = firstLineBoxBaseline();
465 if (firstLineBaseline != -1) 466 if (firstLineBaseline != -1)
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
663 result, 664 result,
664 CollapsedBorderValue( 665 CollapsedBorderValue(
665 row()->borderAdjoiningStartCell(this), 666 row()->borderAdjoiningStartCell(this),
666 includeColor ? parent()->resolveColor(startColorProperty) : Color(), 667 includeColor ? parent()->resolveColor(startColorProperty) : Color(),
667 BorderPrecedenceRow)); 668 BorderPrecedenceRow));
668 if (!result.exists()) 669 if (!result.exists())
669 return result; 670 return result;
670 671
671 // (4) Our row group's start border. 672 // (4) Our row group's start border.
672 result = chooseBorder( 673 result = chooseBorder(
673 result, CollapsedBorderValue( 674 result,
674 section()->borderAdjoiningStartCell(this), 675 CollapsedBorderValue(section()->borderAdjoiningStartCell(this),
675 includeColor ? section()->resolveColor(startColorProperty) 676 includeColor
677 ? section()->resolveColor(startColorProperty)
676 : Color(), 678 : Color(),
677 BorderPrecedenceRowGroup)); 679 BorderPrecedenceRowGroup));
678 if (!result.exists()) 680 if (!result.exists())
679 return result; 681 return result;
680 } 682 }
681 683
682 // (5) Our column and column group's start borders. 684 // (5) Our column and column group's start borders.
683 LayoutTable::ColAndColGroup colAndColGroup = 685 LayoutTable::ColAndColGroup colAndColGroup =
684 table->colElementAtAbsoluteColumn(absoluteColumnIndex()); 686 table->colElementAtAbsoluteColumn(absoluteColumnIndex());
685 if (colAndColGroup.colgroup && colAndColGroup.adjoinsStartBorderOfColGroup) { 687 if (colAndColGroup.colgroup && colAndColGroup.adjoinsStartBorderOfColGroup) {
686 // Only apply the colgroup's border if this cell touches the colgroup edge. 688 // Only apply the colgroup's border if this cell touches the colgroup edge.
687 result = chooseBorder( 689 result = chooseBorder(
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
875 BorderPrecedenceColumnGroup)); 877 BorderPrecedenceColumnGroup));
876 if (!result.exists()) 878 if (!result.exists())
877 return result; 879 return result;
878 } 880 }
879 if (colAndColGroup.col) { 881 if (colAndColGroup.col) {
880 // Always apply the col's border irrespective of whether this cell touches 882 // Always apply the col's border irrespective of whether this cell touches
881 // it. This is per HTML5: "For the purposes of the CSS table model, the 883 // it. This is per HTML5: "For the purposes of the CSS table model, the
882 // col element is expected to be treated as if it "was present as many 884 // col element is expected to be treated as if it "was present as many
883 // times as its span attribute specifies". 885 // times as its span attribute specifies".
884 result = chooseBorder( 886 result = chooseBorder(
885 result, CollapsedBorderValue( 887 result,
886 colAndColGroup.col->borderAdjoiningCellBefore(this), 888 CollapsedBorderValue(
887 includeColor 889 colAndColGroup.col->borderAdjoiningCellBefore(this),
888 ? colAndColGroup.col->resolveColor(startColorProperty) 890 includeColor
889 : Color(), 891 ? colAndColGroup.col->resolveColor(startColorProperty)
890 BorderPrecedenceColumn)); 892 : Color(),
893 BorderPrecedenceColumn));
891 if (!result.exists()) 894 if (!result.exists())
892 return result; 895 return result;
893 } 896 }
894 } 897 }
895 898
896 if (endBorderAdjoinsTable) { 899 if (endBorderAdjoinsTable) {
897 // (7) The table's end border. 900 // (7) The table's end border.
898 result = chooseBorder( 901 result = chooseBorder(
899 result, 902 result,
900 CollapsedBorderValue( 903 CollapsedBorderValue(
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
1004 } 1007 }
1005 } 1008 }
1006 1009
1007 if (!currSection) { 1010 if (!currSection) {
1008 // (8) Our column and column group's before borders. 1011 // (8) Our column and column group's before borders.
1009 LayoutTableCol* colElt = 1012 LayoutTableCol* colElt =
1010 table->colElementAtAbsoluteColumn(absoluteColumnIndex()) 1013 table->colElementAtAbsoluteColumn(absoluteColumnIndex())
1011 .innermostColOrColGroup(); 1014 .innermostColOrColGroup();
1012 if (colElt) { 1015 if (colElt) {
1013 result = chooseBorder( 1016 result = chooseBorder(
1014 result, CollapsedBorderValue( 1017 result,
1015 colElt->style()->borderBefore(), 1018 CollapsedBorderValue(colElt->style()->borderBefore(),
1016 includeColor ? colElt->resolveColor(beforeColorProperty) 1019 includeColor
1020 ? colElt->resolveColor(beforeColorProperty)
1017 : Color(), 1021 : Color(),
1018 BorderPrecedenceColumn)); 1022 BorderPrecedenceColumn));
1019 if (!result.exists()) 1023 if (!result.exists())
1020 return result; 1024 return result;
1021 if (LayoutTableCol* enclosingColumnGroup = 1025 if (LayoutTableCol* enclosingColumnGroup =
1022 colElt->enclosingColumnGroup()) { 1026 colElt->enclosingColumnGroup()) {
1023 result = chooseBorder( 1027 result = chooseBorder(
1024 result, 1028 result,
1025 CollapsedBorderValue( 1029 CollapsedBorderValue(
1026 enclosingColumnGroup->style()->borderBefore(), 1030 enclosingColumnGroup->style()->borderBefore(),
1027 includeColor 1031 includeColor
1028 ? enclosingColumnGroup->resolveColor(beforeColorProperty) 1032 ? enclosingColumnGroup->resolveColor(beforeColorProperty)
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1067 : 0; 1071 : 0;
1068 CollapsedBorderValue result = CollapsedBorderValue( 1072 CollapsedBorderValue result = CollapsedBorderValue(
1069 style()->borderAfter(), 1073 style()->borderAfter(),
1070 includeColor ? resolveColor(afterColorProperty) : Color(), 1074 includeColor ? resolveColor(afterColorProperty) : Color(),
1071 BorderPrecedenceCell); 1075 BorderPrecedenceCell);
1072 1076
1073 LayoutTableCell* nextCell = table->cellBelow(this); 1077 LayoutTableCell* nextCell = table->cellBelow(this);
1074 if (nextCell) { 1078 if (nextCell) {
1075 // (2) An after cell's before border. 1079 // (2) An after cell's before border.
1076 result = chooseBorder( 1080 result = chooseBorder(
1077 result, CollapsedBorderValue( 1081 result,
1078 nextCell->style()->borderBefore(), 1082 CollapsedBorderValue(nextCell->style()->borderBefore(),
1079 includeColor ? nextCell->resolveColor(beforeColorProperty) 1083 includeColor
1084 ? nextCell->resolveColor(beforeColorProperty)
1080 : Color(), 1085 : Color(),
1081 BorderPrecedenceCell)); 1086 BorderPrecedenceCell));
1082 if (!result.exists()) 1087 if (!result.exists())
1083 return result; 1088 return result;
1084 } 1089 }
1085 1090
1086 // (3) Our row's after border. (FIXME: Deal with rowspan!) 1091 // (3) Our row's after border. (FIXME: Deal with rowspan!)
1087 result = chooseBorder( 1092 result = chooseBorder(
1088 result, 1093 result,
1089 CollapsedBorderValue( 1094 CollapsedBorderValue(
1090 parent()->style()->borderAfter(), 1095 parent()->style()->borderAfter(),
1091 includeColor ? parent()->resolveColor(afterColorProperty) : Color(), 1096 includeColor ? parent()->resolveColor(afterColorProperty) : Color(),
(...skipping 12 matching lines...) Expand all
1104 BorderPrecedenceRow)); 1109 BorderPrecedenceRow));
1105 if (!result.exists()) 1110 if (!result.exists())
1106 return result; 1111 return result;
1107 } 1112 }
1108 1113
1109 // Now check row groups. 1114 // Now check row groups.
1110 LayoutTableSection* currSection = section(); 1115 LayoutTableSection* currSection = section();
1111 if (rowIndex() + rowSpan() >= currSection->numRows()) { 1116 if (rowIndex() + rowSpan() >= currSection->numRows()) {
1112 // (5) Our row group's after border. 1117 // (5) Our row group's after border.
1113 result = chooseBorder( 1118 result = chooseBorder(
1114 result, CollapsedBorderValue( 1119 result,
1115 currSection->style()->borderAfter(), 1120 CollapsedBorderValue(currSection->style()->borderAfter(),
1116 includeColor ? currSection->resolveColor(afterColorProperty) 1121 includeColor
1122 ? currSection->resolveColor(afterColorProperty)
1117 : Color(), 1123 : Color(),
1118 BorderPrecedenceRowGroup)); 1124 BorderPrecedenceRowGroup));
1119 if (!result.exists()) 1125 if (!result.exists())
1120 return result; 1126 return result;
1121 1127
1122 // (6) Following row group's before border. 1128 // (6) Following row group's before border.
1123 currSection = table->sectionBelow(currSection, SkipEmptySections); 1129 currSection = table->sectionBelow(currSection, SkipEmptySections);
1124 if (currSection) { 1130 if (currSection) {
1125 result = chooseBorder( 1131 result = chooseBorder(
1126 result, 1132 result,
1127 CollapsedBorderValue( 1133 CollapsedBorderValue(
1128 currSection->style()->borderBefore(), 1134 currSection->style()->borderBefore(),
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after
1498 } 1504 }
1499 1505
1500 bool LayoutTableCell::hasLineIfEmpty() const { 1506 bool LayoutTableCell::hasLineIfEmpty() const {
1501 if (node() && hasEditableStyle(*node())) 1507 if (node() && hasEditableStyle(*node()))
1502 return true; 1508 return true;
1503 1509
1504 return LayoutBlock::hasLineIfEmpty(); 1510 return LayoutBlock::hasLineIfEmpty();
1505 } 1511 }
1506 1512
1507 } // namespace blink 1513 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutTable.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