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, 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 |
11 * License as published by the Free Software Foundation; either | 11 * License as published by the Free Software Foundation; either |
12 * version 2 of the License, or (at your option) any later version. | 12 * version 2 of the License, or (at your option) any later version. |
13 * | 13 * |
14 * This library is distributed in the hope that it will be useful, | 14 * This library is distributed in the hope that it will be useful, |
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
17 * Library General Public License for more details. | 17 * Library General Public License for more details. |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 }; | 58 }; |
59 | 59 |
60 class RenderTableCell; | 60 class RenderTableCell; |
61 class RenderTableRow; | 61 class RenderTableRow; |
62 | 62 |
63 class RenderTableSection FINAL : public RenderBox { | 63 class RenderTableSection FINAL : public RenderBox { |
64 public: | 64 public: |
65 RenderTableSection(Element*); | 65 RenderTableSection(Element*); |
66 virtual ~RenderTableSection(); | 66 virtual ~RenderTableSection(); |
67 | 67 |
68 // FIXME: These methods should return a RenderTableRow. | 68 RenderTableRow* firstRow() const; |
69 RenderObject* firstChild() const { ASSERT(children() == virtualChildren());
return children()->firstChild(); } | 69 RenderTableRow* lastRow() const; |
70 RenderObject* lastChild() const { ASSERT(children() == virtualChildren()); r
eturn children()->lastChild(); } | |
71 | 70 |
72 const RenderObjectChildList* children() const { return &m_children; } | 71 const RenderObjectChildList* children() const { return &m_children; } |
73 RenderObjectChildList* children() { return &m_children; } | 72 RenderObjectChildList* children() { return &m_children; } |
74 | 73 |
75 virtual void addChild(RenderObject* child, RenderObject* beforeChild = 0) OV
ERRIDE; | 74 virtual void addChild(RenderObject* child, RenderObject* beforeChild = 0) OV
ERRIDE; |
76 | 75 |
77 virtual int firstLineBoxBaseline() const OVERRIDE; | 76 virtual int firstLineBoxBaseline() const OVERRIDE; |
78 | 77 |
79 void addCell(RenderTableCell*, RenderTableRow* row); | 78 void addCell(RenderTableCell*, RenderTableRow* row); |
80 | 79 |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
213 static RenderTableSection* createAnonymousWithParentRenderer(const RenderObj
ect*); | 212 static RenderTableSection* createAnonymousWithParentRenderer(const RenderObj
ect*); |
214 virtual RenderBox* createAnonymousBoxWithSameTypeAs(const RenderObject* pare
nt) const OVERRIDE | 213 virtual RenderBox* createAnonymousBoxWithSameTypeAs(const RenderObject* pare
nt) const OVERRIDE |
215 { | 214 { |
216 return createAnonymousWithParentRenderer(parent); | 215 return createAnonymousWithParentRenderer(parent); |
217 } | 216 } |
218 | 217 |
219 virtual void paint(PaintInfo&, const LayoutPoint&) OVERRIDE; | 218 virtual void paint(PaintInfo&, const LayoutPoint&) OVERRIDE; |
220 | 219 |
221 protected: | 220 protected: |
222 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) OV
ERRIDE; | 221 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) OV
ERRIDE; |
| 222 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes
tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAct
ion) OVERRIDE; |
223 | 223 |
224 private: | 224 private: |
225 virtual RenderObjectChildList* virtualChildren() OVERRIDE { return children(
); } | 225 virtual RenderObjectChildList* virtualChildren() OVERRIDE { return children(
); } |
226 virtual const RenderObjectChildList* virtualChildren() const OVERRIDE { retu
rn children(); } | 226 virtual const RenderObjectChildList* virtualChildren() const OVERRIDE { retu
rn children(); } |
227 | 227 |
228 virtual const char* renderName() const OVERRIDE { return (isAnonymous() || i
sPseudoElement()) ? "RenderTableSection (anonymous)" : "RenderTableSection"; } | 228 virtual const char* renderName() const OVERRIDE { return (isAnonymous() || i
sPseudoElement()) ? "RenderTableSection (anonymous)" : "RenderTableSection"; } |
229 | 229 |
230 virtual bool isTableSection() const OVERRIDE { return true; } | 230 virtual bool isTableSection() const OVERRIDE { return true; } |
231 | 231 |
232 virtual void willBeRemovedFromTree() OVERRIDE; | 232 virtual void willBeRemovedFromTree() OVERRIDE; |
233 | 233 |
234 virtual void layout() OVERRIDE; | 234 virtual void layout() OVERRIDE; |
235 | 235 |
236 void paintCell(RenderTableCell*, PaintInfo&, const LayoutPoint&); | 236 void paintCell(RenderTableCell*, PaintInfo&, const LayoutPoint&); |
237 virtual void paintObject(PaintInfo&, const LayoutPoint&) OVERRIDE; | 237 virtual void paintObject(PaintInfo&, const LayoutPoint&) OVERRIDE; |
238 | 238 |
239 virtual void imageChanged(WrappedImagePtr, const IntRect* = 0) OVERRIDE; | 239 virtual void imageChanged(WrappedImagePtr, const IntRect* = 0) OVERRIDE; |
240 | 240 |
241 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes
tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAct
ion) OVERRIDE; | |
242 | |
243 int borderSpacingForRow(unsigned row) const { return m_grid[row].rowRenderer
? table()->vBorderSpacing() : 0; } | 241 int borderSpacingForRow(unsigned row) const { return m_grid[row].rowRenderer
? table()->vBorderSpacing() : 0; } |
244 | 242 |
245 void ensureRows(unsigned); | 243 void ensureRows(unsigned); |
246 | 244 |
247 bool rowHasOnlySpanningCells(unsigned); | 245 bool rowHasOnlySpanningCells(unsigned); |
248 unsigned calcRowHeightHavingOnlySpanningCells(unsigned); | 246 unsigned calcRowHeightHavingOnlySpanningCells(unsigned); |
249 void updateRowsHeightHavingOnlySpanningCells(RenderTableCell*, struct Spanni
ngRowsHeight&); | 247 void updateRowsHeightHavingOnlySpanningCells(RenderTableCell*, struct Spanni
ngRowsHeight&); |
250 bool isHeightNeededForRowHavingOnlySpanningCells(unsigned); | 248 bool isHeightNeededForRowHavingOnlySpanningCells(unsigned); |
251 | 249 |
252 void populateSpanningRowsHeightFromCell(RenderTableCell*, struct SpanningRow
sHeight&); | 250 void populateSpanningRowsHeightFromCell(RenderTableCell*, struct SpanningRow
sHeight&); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 // This map holds the collapsed border values for cells with collapsed borde
rs. | 305 // This map holds the collapsed border values for cells with collapsed borde
rs. |
308 // It is held at RenderTableSection level to spare memory consumption by tab
le cells. | 306 // It is held at RenderTableSection level to spare memory consumption by tab
le cells. |
309 HashMap<pair<const RenderTableCell*, int>, CollapsedBorderValue > m_cellsCol
lapsedBorders; | 307 HashMap<pair<const RenderTableCell*, int>, CollapsedBorderValue > m_cellsCol
lapsedBorders; |
310 }; | 308 }; |
311 | 309 |
312 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderTableSection, isTableSection()); | 310 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderTableSection, isTableSection()); |
313 | 311 |
314 } // namespace WebCore | 312 } // namespace WebCore |
315 | 313 |
316 #endif // RenderTableSection_h | 314 #endif // RenderTableSection_h |
OLD | NEW |