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 reserv
ed. | 7 * Copyright (C) 2003, 2004, 2005, 2006, 2009, 2013 Apple Inc. |
| 8 * All rights reserved. |
8 * | 9 * |
9 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
10 * modify it under the terms of the GNU Library General Public | 11 * modify it under the terms of the GNU Library General Public |
11 * License as published by the Free Software Foundation; either | 12 * License as published by the Free Software Foundation; either |
12 * version 2 of the License, or (at your option) any later version. | 13 * version 2 of the License, or (at your option) any later version. |
13 * | 14 * |
14 * This library is distributed in the hope that it will be useful, | 15 * This library is distributed in the hope that it will be useful, |
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
17 * Library General Public License for more details. | 18 * Library General Public License for more details. |
(...skipping 26 matching lines...) Expand all Loading... |
44 // | 45 // |
45 // The table model prevents any layout overflow on rows (but allow visual | 46 // The table model prevents any layout overflow on rows (but allow visual |
46 // overflow). For row height, it is defined as "the maximum of the row's | 47 // overflow). For row height, it is defined as "the maximum of the row's |
47 // computed 'height', the computed 'height' of each cell in the row, and | 48 // computed 'height', the computed 'height' of each cell in the row, and |
48 // the minimum height (MIN) required by the cells" (CSS 2.1 - section 17.5.3). | 49 // the minimum height (MIN) required by the cells" (CSS 2.1 - section 17.5.3). |
49 // Note that this means that rows and cells differ from other LayoutObject as | 50 // Note that this means that rows and cells differ from other LayoutObject as |
50 // they will ignore 'height' in some situation (when other LayoutObject just | 51 // they will ignore 'height' in some situation (when other LayoutObject just |
51 // allow some layout overflow to occur). | 52 // allow some layout overflow to occur). |
52 // | 53 // |
53 // LayoutTableRow doesn't establish a containing block for the underlying | 54 // LayoutTableRow doesn't establish a containing block for the underlying |
54 // LayoutTableCells. That's why it inherits from LayoutTableBoxComponent and not
LayoutBlock. | 55 // LayoutTableCells. That's why it inherits from LayoutTableBoxComponent and not |
| 56 // LayoutBlock. |
55 // One oddity is that LayoutTableRow doesn't establish a new coordinate system | 57 // One oddity is that LayoutTableRow doesn't establish a new coordinate system |
56 // for its children. LayoutTableCells are positioned with respect to the | 58 // for its children. LayoutTableCells are positioned with respect to the |
57 // enclosing LayoutTableSection (this object's parent()). This particularity is | 59 // enclosing LayoutTableSection (this object's parent()). This particularity is |
58 // why functions accumulating offset while walking the tree have to special case | 60 // why functions accumulating offset while walking the tree have to special case |
59 // LayoutTableRow (see e.g. PaintInvalidationState or | 61 // LayoutTableRow (see e.g. PaintInvalidationState or |
60 // LayoutBox::positionFromPoint()). | 62 // LayoutBox::positionFromPoint()). |
61 // | 63 // |
62 // LayoutTableRow is also positioned with respect to the enclosing | 64 // LayoutTableRow is also positioned with respect to the enclosing |
63 // LayoutTableSection. See LayoutTableSection::layoutRows() for the placement | 65 // LayoutTableSection. See LayoutTableSection::layoutRows() for the placement |
64 // logic. | 66 // logic. |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 | 120 |
119 bool nodeAtPoint(HitTestResult&, | 121 bool nodeAtPoint(HitTestResult&, |
120 const HitTestLocation& locationInContainer, | 122 const HitTestLocation& locationInContainer, |
121 const LayoutPoint& accumulatedOffset, | 123 const LayoutPoint& accumulatedOffset, |
122 HitTestAction) override; | 124 HitTestAction) override; |
123 | 125 |
124 void computeOverflow(); | 126 void computeOverflow(); |
125 | 127 |
126 const char* name() const override { return "LayoutTableRow"; } | 128 const char* name() const override { return "LayoutTableRow"; } |
127 | 129 |
128 // Whether a row has opaque background depends on many factors, e.g. border sp
acing, | 130 // Whether a row has opaque background depends on many factors, e.g. border |
129 // border collapsing, missing cells, etc. | 131 // spacing, border collapsing, missing cells, etc. |
130 // For simplicity, just conservatively assume all table rows are not opaque. | 132 // For simplicity, just conservatively assume all table rows are not opaque. |
131 bool foregroundIsKnownToBeOpaqueInRect(const LayoutRect&, | 133 bool foregroundIsKnownToBeOpaqueInRect(const LayoutRect&, |
132 unsigned) const override { | 134 unsigned) const override { |
133 return false; | 135 return false; |
134 } | 136 } |
135 bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect&) const override { | 137 bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect&) const override { |
136 return false; | 138 return false; |
137 } | 139 } |
138 | 140 |
139 private: | 141 private: |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
189 return toLayoutTableRow(firstChild()); | 191 return toLayoutTableRow(firstChild()); |
190 } | 192 } |
191 | 193 |
192 inline LayoutTableRow* LayoutTableSection::lastRow() const { | 194 inline LayoutTableRow* LayoutTableSection::lastRow() const { |
193 return toLayoutTableRow(lastChild()); | 195 return toLayoutTableRow(lastChild()); |
194 } | 196 } |
195 | 197 |
196 } // namespace blink | 198 } // namespace blink |
197 | 199 |
198 #endif // LayoutTableRow_h | 200 #endif // LayoutTableRow_h |
OLD | NEW |