| 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, 2010 Apple Inc. All rights reserv
ed. | 7 * Copyright (C) 2003, 2004, 2005, 2006, 2009, 2010 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 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 explicit RenderTable(Element*); | 45 explicit RenderTable(Element*); |
| 46 virtual ~RenderTable(); | 46 virtual ~RenderTable(); |
| 47 | 47 |
| 48 // Per CSS 3 writing-mode: "The first and second values of the 'border-spaci
ng' property represent spacing between columns | 48 // Per CSS 3 writing-mode: "The first and second values of the 'border-spaci
ng' property represent spacing between columns |
| 49 // and rows respectively, not necessarily the horizontal and vertical spacin
g respectively". | 49 // and rows respectively, not necessarily the horizontal and vertical spacin
g respectively". |
| 50 int hBorderSpacing() const { return m_hSpacing; } | 50 int hBorderSpacing() const { return m_hSpacing; } |
| 51 int vBorderSpacing() const { return m_vSpacing; } | 51 int vBorderSpacing() const { return m_vSpacing; } |
| 52 | 52 |
| 53 bool collapseBorders() const { return style()->borderCollapse(); } | 53 bool collapseBorders() const { return style()->borderCollapse(); } |
| 54 | 54 |
| 55 int borderStart() const { return m_borderStart; } | 55 virtual int borderStart() const OVERRIDE { return m_borderStart; } |
| 56 int borderEnd() const { return m_borderEnd; } | 56 virtual int borderEnd() const OVERRIDE { return m_borderEnd; } |
| 57 int borderBefore() const; | 57 virtual int borderBefore() const OVERRIDE; |
| 58 int borderAfter() const; | 58 virtual int borderAfter() const OVERRIDE; |
| 59 | 59 |
| 60 int borderLeft() const | 60 virtual int borderLeft() const OVERRIDE |
| 61 { | 61 { |
| 62 if (style()->isHorizontalWritingMode()) | 62 if (style()->isHorizontalWritingMode()) |
| 63 return style()->isLeftToRightDirection() ? borderStart() : borderEnd
(); | 63 return style()->isLeftToRightDirection() ? borderStart() : borderEnd
(); |
| 64 return style()->isFlippedBlocksWritingMode() ? borderAfter() : borderBef
ore(); | 64 return style()->isFlippedBlocksWritingMode() ? borderAfter() : borderBef
ore(); |
| 65 } | 65 } |
| 66 | 66 |
| 67 int borderRight() const | 67 virtual int borderRight() const OVERRIDE |
| 68 { | 68 { |
| 69 if (style()->isHorizontalWritingMode()) | 69 if (style()->isHorizontalWritingMode()) |
| 70 return style()->isLeftToRightDirection() ? borderEnd() : borderStart
(); | 70 return style()->isLeftToRightDirection() ? borderEnd() : borderStart
(); |
| 71 return style()->isFlippedBlocksWritingMode() ? borderBefore() : borderAf
ter(); | 71 return style()->isFlippedBlocksWritingMode() ? borderBefore() : borderAf
ter(); |
| 72 } | 72 } |
| 73 | 73 |
| 74 int borderTop() const | 74 virtual int borderTop() const OVERRIDE |
| 75 { | 75 { |
| 76 if (style()->isHorizontalWritingMode()) | 76 if (style()->isHorizontalWritingMode()) |
| 77 return style()->isFlippedBlocksWritingMode() ? borderAfter() : borde
rBefore(); | 77 return style()->isFlippedBlocksWritingMode() ? borderAfter() : borde
rBefore(); |
| 78 return style()->isLeftToRightDirection() ? borderStart() : borderEnd(); | 78 return style()->isLeftToRightDirection() ? borderStart() : borderEnd(); |
| 79 } | 79 } |
| 80 | 80 |
| 81 int borderBottom() const | 81 virtual int borderBottom() const OVERRIDE |
| 82 { | 82 { |
| 83 if (style()->isHorizontalWritingMode()) | 83 if (style()->isHorizontalWritingMode()) |
| 84 return style()->isFlippedBlocksWritingMode() ? borderBefore() : bord
erAfter(); | 84 return style()->isFlippedBlocksWritingMode() ? borderBefore() : bord
erAfter(); |
| 85 return style()->isLeftToRightDirection() ? borderEnd() : borderStart(); | 85 return style()->isLeftToRightDirection() ? borderEnd() : borderStart(); |
| 86 } | 86 } |
| 87 | 87 |
| 88 Color bgColor() const { return resolveColor(CSSPropertyBackgroundColor); } | 88 Color bgColor() const { return resolveColor(CSSPropertyBackgroundColor); } |
| 89 | 89 |
| 90 int outerBorderBefore() const; | 90 int outerBorderBefore() const; |
| 91 int outerBorderAfter() const; | 91 int outerBorderAfter() const; |
| (...skipping 25 matching lines...) Expand all Loading... |
| 117 { | 117 { |
| 118 if (style()->isHorizontalWritingMode()) | 118 if (style()->isHorizontalWritingMode()) |
| 119 return style()->isFlippedBlocksWritingMode() ? outerBorderBefore() :
outerBorderAfter(); | 119 return style()->isFlippedBlocksWritingMode() ? outerBorderBefore() :
outerBorderAfter(); |
| 120 return style()->isLeftToRightDirection() ? outerBorderEnd() : outerBorde
rStart(); | 120 return style()->isLeftToRightDirection() ? outerBorderEnd() : outerBorde
rStart(); |
| 121 } | 121 } |
| 122 | 122 |
| 123 int calcBorderStart() const; | 123 int calcBorderStart() const; |
| 124 int calcBorderEnd() const; | 124 int calcBorderEnd() const; |
| 125 void recalcBordersInRowDirection(); | 125 void recalcBordersInRowDirection(); |
| 126 | 126 |
| 127 virtual void addChild(RenderObject* child, RenderObject* beforeChild = 0); | 127 virtual void addChild(RenderObject* child, RenderObject* beforeChild = 0) OV
ERRIDE; |
| 128 | 128 |
| 129 struct ColumnStruct { | 129 struct ColumnStruct { |
| 130 explicit ColumnStruct(unsigned initialSpan = 1) | 130 explicit ColumnStruct(unsigned initialSpan = 1) |
| 131 : span(initialSpan) | 131 : span(initialSpan) |
| 132 { | 132 { |
| 133 } | 133 } |
| 134 | 134 |
| 135 unsigned span; | 135 unsigned span; |
| 136 }; | 136 }; |
| 137 | 137 |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 | 256 |
| 257 const BorderValue& tableStartBorderAdjoiningCell(const RenderTableCell*) con
st; | 257 const BorderValue& tableStartBorderAdjoiningCell(const RenderTableCell*) con
st; |
| 258 const BorderValue& tableEndBorderAdjoiningCell(const RenderTableCell*) const
; | 258 const BorderValue& tableEndBorderAdjoiningCell(const RenderTableCell*) const
; |
| 259 | 259 |
| 260 void addCaption(const RenderTableCaption*); | 260 void addCaption(const RenderTableCaption*); |
| 261 void removeCaption(const RenderTableCaption*); | 261 void removeCaption(const RenderTableCaption*); |
| 262 void addColumn(const RenderTableCol*); | 262 void addColumn(const RenderTableCol*); |
| 263 void removeColumn(const RenderTableCol*); | 263 void removeColumn(const RenderTableCol*); |
| 264 | 264 |
| 265 protected: | 265 protected: |
| 266 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle); | 266 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) OV
ERRIDE; |
| 267 virtual void simplifiedNormalFlowLayout(); | 267 virtual void simplifiedNormalFlowLayout() OVERRIDE; |
| 268 | 268 |
| 269 private: | 269 private: |
| 270 virtual const char* renderName() const { return "RenderTable"; } | 270 virtual const char* renderName() const OVERRIDE { return "RenderTable"; } |
| 271 | 271 |
| 272 virtual bool isTable() const { return true; } | 272 virtual bool isTable() const OVERRIDE { return true; } |
| 273 | 273 |
| 274 virtual bool avoidsFloats() const { return true; } | 274 virtual bool avoidsFloats() const OVERRIDE { return true; } |
| 275 | 275 |
| 276 virtual void paint(PaintInfo&, const LayoutPoint&); | 276 virtual void paint(PaintInfo&, const LayoutPoint&) OVERRIDE; |
| 277 virtual void paintObject(PaintInfo&, const LayoutPoint&); | 277 virtual void paintObject(PaintInfo&, const LayoutPoint&) OVERRIDE; |
| 278 virtual void paintBoxDecorations(PaintInfo&, const LayoutPoint&); | 278 virtual void paintBoxDecorations(PaintInfo&, const LayoutPoint&) OVERRIDE; |
| 279 virtual void paintMask(PaintInfo&, const LayoutPoint&); | 279 virtual void paintMask(PaintInfo&, const LayoutPoint&) OVERRIDE; |
| 280 virtual void layout(); | 280 virtual void layout() OVERRIDE; |
| 281 virtual bool supportsPartialLayout() const OVERRIDE { return false; } | 281 virtual bool supportsPartialLayout() const OVERRIDE { return false; } |
| 282 virtual void computeIntrinsicLogicalWidths(LayoutUnit& minWidth, LayoutUnit&
maxWidth) const OVERRIDE; | 282 virtual void computeIntrinsicLogicalWidths(LayoutUnit& minWidth, LayoutUnit&
maxWidth) const OVERRIDE; |
| 283 virtual void computePreferredLogicalWidths() OVERRIDE; | 283 virtual void computePreferredLogicalWidths() OVERRIDE; |
| 284 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes
tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAct
ion) OVERRIDE; | 284 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes
tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAct
ion) OVERRIDE; |
| 285 | 285 |
| 286 virtual int baselinePosition(FontBaseline, bool firstLine, LineDirectionMode
, LinePositionMode = PositionOnContainingLine) const OVERRIDE; | 286 virtual int baselinePosition(FontBaseline, bool firstLine, LineDirectionMode
, LinePositionMode = PositionOnContainingLine) const OVERRIDE; |
| 287 virtual int firstLineBoxBaseline() const OVERRIDE; | 287 virtual int firstLineBoxBaseline() const OVERRIDE; |
| 288 virtual int inlineBlockBaseline(LineDirectionMode) const OVERRIDE; | 288 virtual int inlineBlockBaseline(LineDirectionMode) const OVERRIDE; |
| 289 | 289 |
| 290 RenderTableCol* slowColElement(unsigned col, bool* startEdge, bool* endEdge)
const; | 290 RenderTableCol* slowColElement(unsigned col, bool* startEdge, bool* endEdge)
const; |
| 291 | 291 |
| 292 void updateColumnCache() const; | 292 void updateColumnCache() const; |
| 293 void invalidateCachedColumns(); | 293 void invalidateCachedColumns(); |
| 294 | 294 |
| 295 virtual RenderBlock* firstLineBlock() const; | 295 virtual RenderBlock* firstLineBlock() const OVERRIDE; |
| 296 virtual void updateFirstLetter(); | 296 virtual void updateFirstLetter() OVERRIDE; |
| 297 | 297 |
| 298 virtual void updateLogicalWidth() OVERRIDE; | 298 virtual void updateLogicalWidth() OVERRIDE; |
| 299 | 299 |
| 300 LayoutUnit convertStyleLogicalWidthToComputedWidth(const Length& styleLogica
lWidth, LayoutUnit availableWidth); | 300 LayoutUnit convertStyleLogicalWidthToComputedWidth(const Length& styleLogica
lWidth, LayoutUnit availableWidth); |
| 301 LayoutUnit convertStyleLogicalHeightToComputedHeight(const Length& styleLogi
calHeight); | 301 LayoutUnit convertStyleLogicalHeightToComputedHeight(const Length& styleLogi
calHeight); |
| 302 | 302 |
| 303 virtual LayoutRect overflowClipRect(const LayoutPoint& location, RenderRegio
n*, OverlayScrollbarSizeRelevancy = IgnoreOverlayScrollbarSize); | 303 virtual LayoutRect overflowClipRect(const LayoutPoint& location, RenderRegio
n*, OverlayScrollbarSizeRelevancy = IgnoreOverlayScrollbarSize); |
| 304 | 304 |
| 305 virtual void addOverflowFromChildren(); | 305 virtual void addOverflowFromChildren() OVERRIDE; |
| 306 | 306 |
| 307 void subtractCaptionRect(LayoutRect&) const; | 307 void subtractCaptionRect(LayoutRect&) const; |
| 308 | 308 |
| 309 void recalcCollapsedBorders(); | 309 void recalcCollapsedBorders(); |
| 310 void recalcSections() const; | 310 void recalcSections() const; |
| 311 void layoutCaption(RenderTableCaption*); | 311 void layoutCaption(RenderTableCaption*); |
| 312 | 312 |
| 313 void distributeExtraLogicalHeight(int extraLogicalHeight); | 313 void distributeExtraLogicalHeight(int extraLogicalHeight); |
| 314 | 314 |
| 315 mutable Vector<int> m_columnPos; | 315 mutable Vector<int> m_columnPos; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 347 if (m_firstBody) | 347 if (m_firstBody) |
| 348 return m_firstBody; | 348 return m_firstBody; |
| 349 return m_foot; | 349 return m_foot; |
| 350 } | 350 } |
| 351 | 351 |
| 352 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderTable, isTable()); | 352 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderTable, isTable()); |
| 353 | 353 |
| 354 } // namespace WebCore | 354 } // namespace WebCore |
| 355 | 355 |
| 356 #endif // RenderTable_h | 356 #endif // RenderTable_h |
| OLD | NEW |