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. All rights reserv
ed. |
8 * | 8 * |
9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
(...skipping 25 matching lines...) Expand all Loading... |
36 | 36 |
37 enum CollapsedBorderSide { | 37 enum CollapsedBorderSide { |
38 CBSBefore, | 38 CBSBefore, |
39 CBSAfter, | 39 CBSAfter, |
40 CBSStart, | 40 CBSStart, |
41 CBSEnd | 41 CBSEnd |
42 }; | 42 }; |
43 | 43 |
44 // Helper class for paintObject. | 44 // Helper class for paintObject. |
45 class CellSpan { | 45 class CellSpan { |
| 46 STACK_ALLOCATED(); |
46 public: | 47 public: |
47 CellSpan(unsigned start, unsigned end) | 48 CellSpan(unsigned start, unsigned end) |
48 : m_start(start) | 49 : m_start(start) |
49 , m_end(end) | 50 , m_end(end) |
50 { | 51 { |
51 } | 52 } |
52 | 53 |
53 unsigned start() const { return m_start; } | 54 unsigned start() const { return m_start; } |
54 unsigned end() const { return m_end; } | 55 unsigned end() const { return m_end; } |
55 | 56 |
(...skipping 29 matching lines...) Expand all Loading... |
85 | 86 |
86 int calcRowLogicalHeight(); | 87 int calcRowLogicalHeight(); |
87 void layoutRows(); | 88 void layoutRows(); |
88 void computeOverflowFromCells(); | 89 void computeOverflowFromCells(); |
89 | 90 |
90 LayoutTable* table() const { return toLayoutTable(parent()); } | 91 LayoutTable* table() const { return toLayoutTable(parent()); } |
91 | 92 |
92 typedef Vector<LayoutTableCell*, 2> SpanningLayoutTableCells; | 93 typedef Vector<LayoutTableCell*, 2> SpanningLayoutTableCells; |
93 | 94 |
94 struct CellStruct { | 95 struct CellStruct { |
| 96 ALLOW_ONLY_INLINE_ALLOCATION(); |
95 public: | 97 public: |
96 Vector<LayoutTableCell*, 1> cells; | 98 Vector<LayoutTableCell*, 1> cells; |
97 bool inColSpan; // true for columns after the first in a colspan | 99 bool inColSpan; // true for columns after the first in a colspan |
98 | 100 |
99 CellStruct() | 101 CellStruct() |
100 : inColSpan(false) | 102 : inColSpan(false) |
101 { | 103 { |
102 } | 104 } |
103 | 105 |
104 LayoutTableCell* primaryCell() | 106 LayoutTableCell* primaryCell() |
105 { | 107 { |
106 return hasCells() ? cells[cells.size() - 1] : 0; | 108 return hasCells() ? cells[cells.size() - 1] : 0; |
107 } | 109 } |
108 | 110 |
109 const LayoutTableCell* primaryCell() const | 111 const LayoutTableCell* primaryCell() const |
110 { | 112 { |
111 return hasCells() ? cells[cells.size() - 1] : 0; | 113 return hasCells() ? cells[cells.size() - 1] : 0; |
112 } | 114 } |
113 | 115 |
114 bool hasCells() const { return cells.size() > 0; } | 116 bool hasCells() const { return cells.size() > 0; } |
115 }; | 117 }; |
116 | 118 |
117 typedef Vector<CellStruct> Row; | 119 typedef Vector<CellStruct> Row; |
118 | 120 |
119 struct RowStruct { | 121 struct RowStruct { |
| 122 ALLOW_ONLY_INLINE_ALLOCATION(); |
120 public: | 123 public: |
121 RowStruct() | 124 RowStruct() |
122 : rowLayoutObject(nullptr) | 125 : rowLayoutObject(nullptr) |
123 , baseline(-1) | 126 , baseline(-1) |
124 { | 127 { |
125 } | 128 } |
126 | 129 |
127 Row row; | 130 Row row; |
128 LayoutTableRow* rowLayoutObject; | 131 LayoutTableRow* rowLayoutObject; |
129 LayoutUnit baseline; | 132 LayoutUnit baseline; |
130 Length logicalHeight; | 133 Length logicalHeight; |
131 }; | 134 }; |
132 | 135 |
133 struct SpanningRowsHeight { | 136 struct SpanningRowsHeight { |
| 137 STACK_ALLOCATED(); |
134 WTF_MAKE_NONCOPYABLE(SpanningRowsHeight); | 138 WTF_MAKE_NONCOPYABLE(SpanningRowsHeight); |
135 | 139 |
136 public: | 140 public: |
137 SpanningRowsHeight() | 141 SpanningRowsHeight() |
138 : totalRowsHeight(0) | 142 : totalRowsHeight(0) |
139 , spanningCellHeightIgnoringBorderSpacing(0) | 143 , spanningCellHeightIgnoringBorderSpacing(0) |
140 , isAnyRowWithOnlySpanningCells(false) | 144 , isAnyRowWithOnlySpanningCells(false) |
141 { | 145 { |
142 } | 146 } |
143 | 147 |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
315 // It is held at LayoutTableSection level to spare memory consumption by tab
le cells. | 319 // It is held at LayoutTableSection level to spare memory consumption by tab
le cells. |
316 using CellsCollapsedBordersMap = HashMap<pair<const LayoutTableCell*, int>,
CollapsedBorderValue>; | 320 using CellsCollapsedBordersMap = HashMap<pair<const LayoutTableCell*, int>,
CollapsedBorderValue>; |
317 CellsCollapsedBordersMap m_cellsCollapsedBorders; | 321 CellsCollapsedBordersMap m_cellsCollapsedBorders; |
318 }; | 322 }; |
319 | 323 |
320 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutTableSection, isTableSection()); | 324 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutTableSection, isTableSection()); |
321 | 325 |
322 } // namespace blink | 326 } // namespace blink |
323 | 327 |
324 #endif // LayoutTableSection_h | 328 #endif // LayoutTableSection_h |
OLD | NEW |