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 Apple Inc. All rights reserved. | 7 * Copyright (C) 2003, 2004, 2005, 2006, 2009 Apple Inc. All rights reserved. |
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 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 Length logicalHeight; | 122 Length logicalHeight; |
123 }; | 123 }; |
124 | 124 |
125 struct SpanningRowsHeight { | 125 struct SpanningRowsHeight { |
126 WTF_MAKE_NONCOPYABLE(SpanningRowsHeight); | 126 WTF_MAKE_NONCOPYABLE(SpanningRowsHeight); |
127 | 127 |
128 public: | 128 public: |
129 SpanningRowsHeight() | 129 SpanningRowsHeight() |
130 : totalRowsHeight(0) | 130 : totalRowsHeight(0) |
131 , spanningCellHeightIgnoringBorderSpacing(0) | 131 , spanningCellHeightIgnoringBorderSpacing(0) |
| 132 , rowWithOnlySpanningCells(false) |
132 { | 133 { |
133 } | 134 } |
134 | 135 |
135 Vector<int> rowHeight; | 136 Vector<int> rowHeight; |
136 int totalRowsHeight; | 137 int totalRowsHeight; |
137 int spanningCellHeightIgnoringBorderSpacing; | 138 int spanningCellHeightIgnoringBorderSpacing; |
| 139 bool rowWithOnlySpanningCells; |
138 }; | 140 }; |
139 | 141 |
140 const BorderValue& borderAdjoiningTableStart() const | 142 const BorderValue& borderAdjoiningTableStart() const |
141 { | 143 { |
142 if (hasSameDirectionAs(table())) | 144 if (hasSameDirectionAs(table())) |
143 return style()->borderStart(); | 145 return style()->borderStart(); |
144 | 146 |
145 return style()->borderEnd(); | 147 return style()->borderEnd(); |
146 } | 148 } |
147 | 149 |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
234 virtual void paintObject(PaintInfo&, const LayoutPoint&); | 236 virtual void paintObject(PaintInfo&, const LayoutPoint&); |
235 | 237 |
236 virtual void imageChanged(WrappedImagePtr, const IntRect* = 0); | 238 virtual void imageChanged(WrappedImagePtr, const IntRect* = 0); |
237 | 239 |
238 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes
tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAct
ion) OVERRIDE; | 240 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes
tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAct
ion) OVERRIDE; |
239 | 241 |
240 int borderSpacingForRow(unsigned row) const { return m_grid[row].rowRenderer
? table()->vBorderSpacing() : 0; } | 242 int borderSpacingForRow(unsigned row) const { return m_grid[row].rowRenderer
? table()->vBorderSpacing() : 0; } |
241 | 243 |
242 void ensureRows(unsigned); | 244 void ensureRows(unsigned); |
243 | 245 |
| 246 bool rowHasOnlySpanningCells(unsigned); |
| 247 unsigned calcRowHeightHavingOnlySpanningCells(unsigned); |
| 248 void updateRowsHeightHavingOnlySpanningCells(RenderTableCell*, struct Spanni
ngRowsHeight&); |
| 249 |
244 void populateSpanningRowsHeightFromCell(RenderTableCell*, struct SpanningRow
sHeight&); | 250 void populateSpanningRowsHeightFromCell(RenderTableCell*, struct SpanningRow
sHeight&); |
245 void distributeExtraRowSpanHeightToPercentRows(RenderTableCell*, int, int&,
Vector<int>&); | 251 void distributeExtraRowSpanHeightToPercentRows(RenderTableCell*, int, int&,
Vector<int>&); |
246 void distributeExtraRowSpanHeightToAutoRows(RenderTableCell*, int, int&, Vec
tor<int>&); | 252 void distributeExtraRowSpanHeightToAutoRows(RenderTableCell*, int, int&, Vec
tor<int>&); |
247 void distributeExtraRowSpanHeightToRemainingRows(RenderTableCell*, int, int&
, Vector<int>&); | 253 void distributeExtraRowSpanHeightToRemainingRows(RenderTableCell*, int, int&
, Vector<int>&); |
248 void distributeRowSpanHeightToRows(SpanningRenderTableCells& rowSpanCells); | 254 void distributeRowSpanHeightToRows(SpanningRenderTableCells& rowSpanCells); |
249 | 255 |
250 void distributeExtraLogicalHeightToPercentRows(int& extraLogicalHeight, int
totalPercent); | 256 void distributeExtraLogicalHeightToPercentRows(int& extraLogicalHeight, int
totalPercent); |
251 void distributeExtraLogicalHeightToAutoRows(int& extraLogicalHeight, unsigne
d autoRowsCount); | 257 void distributeExtraLogicalHeightToAutoRows(int& extraLogicalHeight, unsigne
d autoRowsCount); |
252 void distributeRemainingExtraLogicalHeight(int& extraLogicalHeight); | 258 void distributeRemainingExtraLogicalHeight(int& extraLogicalHeight); |
253 | 259 |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
312 ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isTableSection()); | 318 ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isTableSection()); |
313 return static_cast<const RenderTableSection*>(object); | 319 return static_cast<const RenderTableSection*>(object); |
314 } | 320 } |
315 | 321 |
316 // This will catch anyone doing an unnecessary cast. | 322 // This will catch anyone doing an unnecessary cast. |
317 void toRenderTableSection(const RenderTableSection*); | 323 void toRenderTableSection(const RenderTableSection*); |
318 | 324 |
319 } // namespace WebCore | 325 } // namespace WebCore |
320 | 326 |
321 #endif // RenderTableSection_h | 327 #endif // RenderTableSection_h |
OLD | NEW |