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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 void increaseEnd() { ++m_end; } | 56 void increaseEnd() { ++m_end; } |
57 | 57 |
58 private: | 58 private: |
59 unsigned m_start; | 59 unsigned m_start; |
60 unsigned m_end; | 60 unsigned m_end; |
61 }; | 61 }; |
62 | 62 |
63 class LayoutTableCell; | 63 class LayoutTableCell; |
64 class LayoutTableRow; | 64 class LayoutTableRow; |
65 | 65 |
66 class LayoutTableSection final : public RenderBox { | 66 class LayoutTableSection final : public LayoutBox { |
67 public: | 67 public: |
68 LayoutTableSection(Element*); | 68 LayoutTableSection(Element*); |
69 virtual ~LayoutTableSection(); | 69 virtual ~LayoutTableSection(); |
70 | 70 |
71 LayoutTableRow* firstRow() const; | 71 LayoutTableRow* firstRow() const; |
72 LayoutTableRow* lastRow() const; | 72 LayoutTableRow* lastRow() const; |
73 | 73 |
74 const LayoutObjectChildList* children() const { return &m_children; } | 74 const LayoutObjectChildList* children() const { return &m_children; } |
75 LayoutObjectChildList* children() { return &m_children; } | 75 LayoutObjectChildList* children() { return &m_children; } |
76 | 76 |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 | 208 |
209 void removeCachedCollapsedBorders(const LayoutTableCell*); | 209 void removeCachedCollapsedBorders(const LayoutTableCell*); |
210 void setCachedCollapsedBorder(const LayoutTableCell*, CollapsedBorderSide, C
ollapsedBorderValue); | 210 void setCachedCollapsedBorder(const LayoutTableCell*, CollapsedBorderSide, C
ollapsedBorderValue); |
211 CollapsedBorderValue& cachedCollapsedBorder(const LayoutTableCell*, Collapse
dBorderSide); | 211 CollapsedBorderValue& cachedCollapsedBorder(const LayoutTableCell*, Collapse
dBorderSide); |
212 | 212 |
213 // distributeExtraLogicalHeightToRows methods return the *consumed* extra lo
gical height. | 213 // distributeExtraLogicalHeightToRows methods return the *consumed* extra lo
gical height. |
214 // FIXME: We may want to introduce a structure holding the in-flux layout in
formation. | 214 // FIXME: We may want to introduce a structure holding the in-flux layout in
formation. |
215 int distributeExtraLogicalHeightToRows(int extraLogicalHeight); | 215 int distributeExtraLogicalHeightToRows(int extraLogicalHeight); |
216 | 216 |
217 static LayoutTableSection* createAnonymousWithParentRenderer(const LayoutObj
ect*); | 217 static LayoutTableSection* createAnonymousWithParentRenderer(const LayoutObj
ect*); |
218 virtual RenderBox* createAnonymousBoxWithSameTypeAs(const LayoutObject* pare
nt) const override | 218 virtual LayoutBox* createAnonymousBoxWithSameTypeAs(const LayoutObject* pare
nt) const override |
219 { | 219 { |
220 return createAnonymousWithParentRenderer(parent); | 220 return createAnonymousWithParentRenderer(parent); |
221 } | 221 } |
222 | 222 |
223 virtual void paint(const PaintInfo&, const LayoutPoint&) override; | 223 virtual void paint(const PaintInfo&, const LayoutPoint&) override; |
224 | 224 |
225 // Flip the rect so it aligns with the coordinates used by the rowPos and co
lumnPos vectors. | 225 // Flip the rect so it aligns with the coordinates used by the rowPos and co
lumnPos vectors. |
226 LayoutRect logicalRectForWritingModeAndDirection(const LayoutRect&) const; | 226 LayoutRect logicalRectForWritingModeAndDirection(const LayoutRect&) const; |
227 | 227 |
228 CellSpan dirtiedRows(const LayoutRect& paintInvalidationRect) const; | 228 CellSpan dirtiedRows(const LayoutRect& paintInvalidationRect) const; |
229 CellSpan dirtiedColumns(const LayoutRect& paintInvalidationRect) const; | 229 CellSpan dirtiedColumns(const LayoutRect& paintInvalidationRect) const; |
230 HashSet<LayoutTableCell*>& overflowingCells() { return m_overflowingCells; } | 230 HashSet<LayoutTableCell*>& overflowingCells() { return m_overflowingCells; } |
231 bool hasMultipleCellLevels() { return m_hasMultipleCellLevels; } | 231 bool hasMultipleCellLevels() { return m_hasMultipleCellLevels; } |
232 | 232 |
233 protected: | 233 protected: |
234 virtual void styleDidChange(StyleDifference, const LayoutStyle* oldStyle) ov
erride; | 234 virtual void styleDidChange(StyleDifference, const LayoutStyle* oldStyle) ov
erride; |
235 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes
tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAct
ion) override; | 235 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes
tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAct
ion) override; |
236 | 236 |
237 private: | 237 private: |
238 virtual LayoutObjectChildList* virtualChildren() override { return children(
); } | 238 virtual LayoutObjectChildList* virtualChildren() override { return children(
); } |
239 virtual const LayoutObjectChildList* virtualChildren() const override { retu
rn children(); } | 239 virtual const LayoutObjectChildList* virtualChildren() const override { retu
rn children(); } |
240 | 240 |
241 virtual const char* renderName() const override { return (isAnonymous() || i
sPseudoElement()) ? "LayoutTableSection (anonymous)" : "LayoutTableSection"; } | 241 virtual const char* renderName() const override { return (isAnonymous() || i
sPseudoElement()) ? "LayoutTableSection (anonymous)" : "LayoutTableSection"; } |
242 | 242 |
243 virtual bool isOfType(LayoutObjectType type) const override { return type ==
LayoutObjectTableSection || RenderBox::isOfType(type); } | 243 virtual bool isOfType(LayoutObjectType type) const override { return type ==
LayoutObjectTableSection || LayoutBox::isOfType(type); } |
244 | 244 |
245 virtual void willBeRemovedFromTree() override; | 245 virtual void willBeRemovedFromTree() override; |
246 | 246 |
247 virtual void layout() override; | 247 virtual void layout() override; |
248 | 248 |
249 virtual void paintObject(const PaintInfo&, const LayoutPoint&) override; | 249 virtual void paintObject(const PaintInfo&, const LayoutPoint&) override; |
250 | 250 |
251 virtual void imageChanged(WrappedImagePtr, const IntRect* = 0) override; | 251 virtual void imageChanged(WrappedImagePtr, const IntRect* = 0) override; |
252 | 252 |
253 int borderSpacingForRow(unsigned row) const { return m_grid[row].rowRenderer
? table()->vBorderSpacing() : 0; } | 253 int borderSpacingForRow(unsigned row) const { return m_grid[row].rowRenderer
? table()->vBorderSpacing() : 0; } |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
312 // This map holds the collapsed border values for cells with collapsed borde
rs. | 312 // This map holds the collapsed border values for cells with collapsed borde
rs. |
313 // It is held at LayoutTableSection level to spare memory consumption by tab
le cells. | 313 // It is held at LayoutTableSection level to spare memory consumption by tab
le cells. |
314 HashMap<pair<const LayoutTableCell*, int>, CollapsedBorderValue> m_cellsColl
apsedBorders; | 314 HashMap<pair<const LayoutTableCell*, int>, CollapsedBorderValue> m_cellsColl
apsedBorders; |
315 }; | 315 }; |
316 | 316 |
317 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutTableSection, isTableSection()); | 317 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutTableSection, isTableSection()); |
318 | 318 |
319 } // namespace blink | 319 } // namespace blink |
320 | 320 |
321 #endif // LayoutTableSection_h | 321 #endif // LayoutTableSection_h |
OLD | NEW |