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, 2007, 2008, 2009, 2010, 2013 Apple Inc.
All rights reserved. | 7 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2013 Apple Inc.
All rights reserved. |
8 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 8 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
9 * | 9 * |
10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
(...skipping 12 matching lines...) Expand all Loading... |
23 * Boston, MA 02110-1301, USA. | 23 * Boston, MA 02110-1301, USA. |
24 */ | 24 */ |
25 | 25 |
26 #include "config.h" | 26 #include "config.h" |
27 #include "core/rendering/RenderTable.h" | 27 #include "core/rendering/RenderTable.h" |
28 | 28 |
29 #include "core/HTMLNames.h" | 29 #include "core/HTMLNames.h" |
30 #include "core/dom/Document.h" | 30 #include "core/dom/Document.h" |
31 #include "core/frame/FrameView.h" | 31 #include "core/frame/FrameView.h" |
32 #include "core/html/HTMLTableElement.h" | 32 #include "core/html/HTMLTableElement.h" |
| 33 #include "core/paint/BoxPainter.h" |
33 #include "core/rendering/AutoTableLayout.h" | 34 #include "core/rendering/AutoTableLayout.h" |
34 #include "core/rendering/FixedTableLayout.h" | 35 #include "core/rendering/FixedTableLayout.h" |
35 #include "core/rendering/GraphicsContextAnnotator.h" | 36 #include "core/rendering/GraphicsContextAnnotator.h" |
36 #include "core/rendering/HitTestResult.h" | 37 #include "core/rendering/HitTestResult.h" |
37 #include "core/rendering/RenderLayer.h" | 38 #include "core/rendering/RenderLayer.h" |
38 #include "core/rendering/RenderTableCaption.h" | 39 #include "core/rendering/RenderTableCaption.h" |
39 #include "core/rendering/RenderTableCell.h" | 40 #include "core/rendering/RenderTableCell.h" |
40 #include "core/rendering/RenderTableCol.h" | 41 #include "core/rendering/RenderTableCol.h" |
41 #include "core/rendering/RenderTableSection.h" | 42 #include "core/rendering/RenderTableSection.h" |
42 #include "core/rendering/RenderView.h" | 43 #include "core/rendering/RenderView.h" |
(...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
702 } | 703 } |
703 } | 704 } |
704 | 705 |
705 void RenderTable::paintBoxDecorationBackground(PaintInfo& paintInfo, const Layou
tPoint& paintOffset) | 706 void RenderTable::paintBoxDecorationBackground(PaintInfo& paintInfo, const Layou
tPoint& paintOffset) |
706 { | 707 { |
707 if (!paintInfo.shouldPaintWithinRoot(this)) | 708 if (!paintInfo.shouldPaintWithinRoot(this)) |
708 return; | 709 return; |
709 | 710 |
710 LayoutRect rect(paintOffset, size()); | 711 LayoutRect rect(paintOffset, size()); |
711 subtractCaptionRect(rect); | 712 subtractCaptionRect(rect); |
712 paintBoxDecorationBackgroundWithRect(paintInfo, paintOffset, rect); | 713 BoxPainter(*this).paintBoxDecorationBackgroundWithRect(paintInfo, paintOffse
t, rect); |
713 } | 714 } |
714 | 715 |
715 void RenderTable::paintMask(PaintInfo& paintInfo, const LayoutPoint& paintOffset
) | 716 void RenderTable::paintMask(PaintInfo& paintInfo, const LayoutPoint& paintOffset
) |
716 { | 717 { |
717 if (style()->visibility() != VISIBLE || paintInfo.phase != PaintPhaseMask) | 718 if (style()->visibility() != VISIBLE || paintInfo.phase != PaintPhaseMask) |
718 return; | 719 return; |
719 | 720 |
720 LayoutRect rect(paintOffset, size()); | 721 LayoutRect rect(paintOffset, size()); |
721 subtractCaptionRect(rect); | 722 subtractCaptionRect(rect); |
722 | 723 |
723 paintMaskImages(paintInfo, rect); | 724 BoxPainter(*this).paintMaskImages(paintInfo, rect); |
724 } | 725 } |
725 | 726 |
726 void RenderTable::computeIntrinsicLogicalWidths(LayoutUnit& minWidth, LayoutUnit
& maxWidth) const | 727 void RenderTable::computeIntrinsicLogicalWidths(LayoutUnit& minWidth, LayoutUnit
& maxWidth) const |
727 { | 728 { |
728 recalcSectionsIfNeeded(); | 729 recalcSectionsIfNeeded(); |
729 // FIXME: Do the recalc in borderStart/borderEnd and make those const_cast t
his call. | 730 // FIXME: Do the recalc in borderStart/borderEnd and make those const_cast t
his call. |
730 // Then m_borderStart/m_borderEnd will be transparent a cache and it removes
the possibility | 731 // Then m_borderStart/m_borderEnd will be transparent a cache and it removes
the possibility |
731 // of reading out stale values. | 732 // of reading out stale values. |
732 const_cast<RenderTable*>(this)->recalcBordersInRowDirection(); | 733 const_cast<RenderTable*>(this)->recalcBordersInRowDirection(); |
733 // FIXME: Restructure the table layout code so that we can make this method
const. | 734 // FIXME: Restructure the table layout code so that we can make this method
const. |
(...skipping 683 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1417 const BorderValue& RenderTable::tableEndBorderAdjoiningCell(const RenderTableCel
l* cell) const | 1418 const BorderValue& RenderTable::tableEndBorderAdjoiningCell(const RenderTableCel
l* cell) const |
1418 { | 1419 { |
1419 ASSERT(cell->isFirstOrLastCellInRow()); | 1420 ASSERT(cell->isFirstOrLastCellInRow()); |
1420 if (hasSameDirectionAs(cell->row())) | 1421 if (hasSameDirectionAs(cell->row())) |
1421 return style()->borderEnd(); | 1422 return style()->borderEnd(); |
1422 | 1423 |
1423 return style()->borderStart(); | 1424 return style()->borderStart(); |
1424 } | 1425 } |
1425 | 1426 |
1426 } | 1427 } |
OLD | NEW |