| 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 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 unsigned m_start; | 62 unsigned m_start; |
| 63 unsigned m_end; | 63 unsigned m_end; |
| 64 }; | 64 }; |
| 65 | 65 |
| 66 class LayoutTableCell; | 66 class LayoutTableCell; |
| 67 class LayoutTableRow; | 67 class LayoutTableRow; |
| 68 | 68 |
| 69 class CORE_EXPORT LayoutTableSection final : public LayoutBox { | 69 class CORE_EXPORT LayoutTableSection final : public LayoutBox { |
| 70 public: | 70 public: |
| 71 LayoutTableSection(Element*); | 71 LayoutTableSection(Element*); |
| 72 virtual ~LayoutTableSection(); | 72 ~LayoutTableSection() override; |
| 73 | 73 |
| 74 LayoutTableRow* firstRow() const; | 74 LayoutTableRow* firstRow() const; |
| 75 LayoutTableRow* lastRow() const; | 75 LayoutTableRow* lastRow() const; |
| 76 | 76 |
| 77 const LayoutObjectChildList* children() const { return &m_children; } | 77 const LayoutObjectChildList* children() const { return &m_children; } |
| 78 LayoutObjectChildList* children() { return &m_children; } | 78 LayoutObjectChildList* children() { return &m_children; } |
| 79 | 79 |
| 80 virtual void addChild(LayoutObject* child, LayoutObject* beforeChild = nullp
tr) override; | 80 void addChild(LayoutObject* child, LayoutObject* beforeChild = nullptr) over
ride; |
| 81 | 81 |
| 82 virtual int firstLineBoxBaseline() const override; | 82 int firstLineBoxBaseline() const override; |
| 83 | 83 |
| 84 void addCell(LayoutTableCell*, LayoutTableRow*); | 84 void addCell(LayoutTableCell*, LayoutTableRow*); |
| 85 | 85 |
| 86 int calcRowLogicalHeight(); | 86 int calcRowLogicalHeight(); |
| 87 void layoutRows(); | 87 void layoutRows(); |
| 88 void computeOverflowFromCells(); | 88 void computeOverflowFromCells(); |
| 89 | 89 |
| 90 LayoutTable* table() const { return toLayoutTable(parent()); } | 90 LayoutTable* table() const { return toLayoutTable(parent()); } |
| 91 | 91 |
| 92 typedef Vector<LayoutTableCell*, 2> SpanningLayoutTableCells; | 92 typedef Vector<LayoutTableCell*, 2> SpanningLayoutTableCells; |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 211 | 211 |
| 212 void removeCachedCollapsedBorders(const LayoutTableCell*); | 212 void removeCachedCollapsedBorders(const LayoutTableCell*); |
| 213 bool setCachedCollapsedBorder(const LayoutTableCell*, CollapsedBorderSide, c
onst CollapsedBorderValue&); | 213 bool setCachedCollapsedBorder(const LayoutTableCell*, CollapsedBorderSide, c
onst CollapsedBorderValue&); |
| 214 const CollapsedBorderValue& cachedCollapsedBorder(const LayoutTableCell*, Co
llapsedBorderSide) const; | 214 const CollapsedBorderValue& cachedCollapsedBorder(const LayoutTableCell*, Co
llapsedBorderSide) const; |
| 215 | 215 |
| 216 // distributeExtraLogicalHeightToRows methods return the *consumed* extra lo
gical height. | 216 // distributeExtraLogicalHeightToRows methods return the *consumed* extra lo
gical height. |
| 217 // FIXME: We may want to introduce a structure holding the in-flux layout in
formation. | 217 // FIXME: We may want to introduce a structure holding the in-flux layout in
formation. |
| 218 int distributeExtraLogicalHeightToRows(int extraLogicalHeight); | 218 int distributeExtraLogicalHeightToRows(int extraLogicalHeight); |
| 219 | 219 |
| 220 static LayoutTableSection* createAnonymousWithParent(const LayoutObject*); | 220 static LayoutTableSection* createAnonymousWithParent(const LayoutObject*); |
| 221 virtual LayoutBox* createAnonymousBoxWithSameTypeAs(const LayoutObject* pare
nt) const override | 221 LayoutBox* createAnonymousBoxWithSameTypeAs(const LayoutObject* parent) cons
t override |
| 222 { | 222 { |
| 223 return createAnonymousWithParent(parent); | 223 return createAnonymousWithParent(parent); |
| 224 } | 224 } |
| 225 | 225 |
| 226 virtual void paint(const PaintInfo&, const LayoutPoint&) override; | 226 void paint(const PaintInfo&, const LayoutPoint&) override; |
| 227 | 227 |
| 228 // Flip the rect so it aligns with the coordinates used by the rowPos and co
lumnPos vectors. | 228 // Flip the rect so it aligns with the coordinates used by the rowPos and co
lumnPos vectors. |
| 229 LayoutRect logicalRectForWritingModeAndDirection(const LayoutRect&) const; | 229 LayoutRect logicalRectForWritingModeAndDirection(const LayoutRect&) const; |
| 230 | 230 |
| 231 CellSpan dirtiedRows(const LayoutRect& paintInvalidationRect) const; | 231 CellSpan dirtiedRows(const LayoutRect& paintInvalidationRect) const; |
| 232 CellSpan dirtiedColumns(const LayoutRect& paintInvalidationRect) const; | 232 CellSpan dirtiedColumns(const LayoutRect& paintInvalidationRect) const; |
| 233 HashSet<LayoutTableCell*>& overflowingCells() { return m_overflowingCells; } | 233 HashSet<LayoutTableCell*>& overflowingCells() { return m_overflowingCells; } |
| 234 bool hasMultipleCellLevels() { return m_hasMultipleCellLevels; } | 234 bool hasMultipleCellLevels() { return m_hasMultipleCellLevels; } |
| 235 | 235 |
| 236 virtual const char* name() const override { return "LayoutTableSection"; } | 236 const char* name() const override { return "LayoutTableSection"; } |
| 237 | 237 |
| 238 protected: | 238 protected: |
| 239 virtual void styleDidChange(StyleDifference, const ComputedStyle* oldStyle)
override; | 239 void styleDidChange(StyleDifference, const ComputedStyle* oldStyle) override
; |
| 240 virtual bool nodeAtPoint(HitTestResult&, const HitTestLocation& locationInCo
ntainer, const LayoutPoint& accumulatedOffset, HitTestAction) override; | 240 bool nodeAtPoint(HitTestResult&, const HitTestLocation& locationInContainer,
const LayoutPoint& accumulatedOffset, HitTestAction) override; |
| 241 | 241 |
| 242 private: | 242 private: |
| 243 virtual LayoutObjectChildList* virtualChildren() override { return children(
); } | 243 LayoutObjectChildList* virtualChildren() override { return children(); } |
| 244 virtual const LayoutObjectChildList* virtualChildren() const override { retu
rn children(); } | 244 const LayoutObjectChildList* virtualChildren() const override { return child
ren(); } |
| 245 | 245 |
| 246 virtual bool isOfType(LayoutObjectType type) const override { return type ==
LayoutObjectTableSection || LayoutBox::isOfType(type); } | 246 bool isOfType(LayoutObjectType type) const override { return type == LayoutO
bjectTableSection || LayoutBox::isOfType(type); } |
| 247 | 247 |
| 248 virtual void willBeRemovedFromTree() override; | 248 void willBeRemovedFromTree() override; |
| 249 | 249 |
| 250 virtual void layout() override; | 250 void layout() override; |
| 251 | 251 |
| 252 virtual void imageChanged(WrappedImagePtr, const IntRect* = nullptr) overrid
e; | 252 void imageChanged(WrappedImagePtr, const IntRect* = nullptr) override; |
| 253 | 253 |
| 254 int borderSpacingForRow(unsigned row) const { return m_grid[row].rowLayoutOb
ject ? table()->vBorderSpacing() : 0; } | 254 int borderSpacingForRow(unsigned row) const { return m_grid[row].rowLayoutOb
ject ? table()->vBorderSpacing() : 0; } |
| 255 | 255 |
| 256 void ensureRows(unsigned); | 256 void ensureRows(unsigned); |
| 257 | 257 |
| 258 bool rowHasOnlySpanningCells(unsigned); | 258 bool rowHasOnlySpanningCells(unsigned); |
| 259 unsigned calcRowHeightHavingOnlySpanningCells(unsigned, int&, unsigned, unsi
gned&, Vector<int>&); | 259 unsigned calcRowHeightHavingOnlySpanningCells(unsigned, int&, unsigned, unsi
gned&, Vector<int>&); |
| 260 void updateRowsHeightHavingOnlySpanningCells(LayoutTableCell*, struct Spanni
ngRowsHeight&, unsigned&, Vector<int>&); | 260 void updateRowsHeightHavingOnlySpanningCells(LayoutTableCell*, struct Spanni
ngRowsHeight&, unsigned&, Vector<int>&); |
| 261 | 261 |
| 262 void populateSpanningRowsHeightFromCell(LayoutTableCell*, struct SpanningRow
sHeight&); | 262 void populateSpanningRowsHeightFromCell(LayoutTableCell*, struct SpanningRow
sHeight&); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 314 // It is held at LayoutTableSection level to spare memory consumption by tab
le cells. | 314 // It is held at LayoutTableSection level to spare memory consumption by tab
le cells. |
| 315 using CellsCollapsedBordersMap = HashMap<pair<const LayoutTableCell*, int>,
CollapsedBorderValue>; | 315 using CellsCollapsedBordersMap = HashMap<pair<const LayoutTableCell*, int>,
CollapsedBorderValue>; |
| 316 CellsCollapsedBordersMap m_cellsCollapsedBorders; | 316 CellsCollapsedBordersMap m_cellsCollapsedBorders; |
| 317 }; | 317 }; |
| 318 | 318 |
| 319 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutTableSection, isTableSection()); | 319 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutTableSection, isTableSection()); |
| 320 | 320 |
| 321 } // namespace blink | 321 } // namespace blink |
| 322 | 322 |
| 323 #endif // LayoutTableSection_h | 323 #endif // LayoutTableSection_h |
| OLD | NEW |