Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Side by Side Diff: Source/core/rendering/RenderTableRow.cpp

Issue 576823004: Move painting code for tables into *Paint classes. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/core/rendering/RenderTableRow.h ('k') | Source/core/rendering/RenderTableSection.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 * 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.
18 * 18 *
19 * You should have received a copy of the GNU Library General Public License 19 * You should have received a copy of the GNU Library General Public License
20 * along with this library; see the file COPYING.LIB. If not, write to 20 * along with this library; see the file COPYING.LIB. If not, write to
21 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 21 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22 * Boston, MA 02110-1301, USA. 22 * Boston, MA 02110-1301, USA.
23 */ 23 */
24 24
25 #include "config.h" 25 #include "config.h"
26 #include "core/rendering/RenderTableRow.h" 26 #include "core/rendering/RenderTableRow.h"
27 27
28 #include "core/HTMLNames.h" 28 #include "core/HTMLNames.h"
29 #include "core/fetch/ImageResource.h" 29 #include "core/fetch/ImageResource.h"
30 #include "core/paint/TableRowPainter.h"
30 #include "core/rendering/GraphicsContextAnnotator.h" 31 #include "core/rendering/GraphicsContextAnnotator.h"
31 #include "core/rendering/HitTestResult.h" 32 #include "core/rendering/HitTestResult.h"
32 #include "core/rendering/PaintInfo.h" 33 #include "core/rendering/PaintInfo.h"
33 #include "core/rendering/RenderTableCell.h" 34 #include "core/rendering/RenderTableCell.h"
34 #include "core/rendering/RenderView.h" 35 #include "core/rendering/RenderView.h"
35 #include "core/rendering/SubtreeLayoutScope.h" 36 #include "core/rendering/SubtreeLayoutScope.h"
36 #include "core/rendering/style/StyleInheritedData.h" 37 #include "core/rendering/style/StyleInheritedData.h"
37 38
38 namespace blink { 39 namespace blink {
39 40
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 if (cell->nodeAtPoint(request, result, locationInContainer, cellPoin t, action)) { 213 if (cell->nodeAtPoint(request, result, locationInContainer, cellPoin t, action)) {
213 updateHitTestResult(result, locationInContainer.point() - toLayo utSize(cellPoint)); 214 updateHitTestResult(result, locationInContainer.point() - toLayo utSize(cellPoint));
214 return true; 215 return true;
215 } 216 }
216 } 217 }
217 } 218 }
218 219
219 return false; 220 return false;
220 } 221 }
221 222
222 void RenderTableRow::paintOutlineForRowIfNeeded(PaintInfo& paintInfo, const Layo utPoint& paintOffset)
223 {
224 LayoutPoint adjustedPaintOffset = paintOffset + location();
225 PaintPhase paintPhase = paintInfo.phase;
226 if ((paintPhase == PaintPhaseOutline || paintPhase == PaintPhaseSelfOutline) && style()->visibility() == VISIBLE)
227 paintOutline(paintInfo, LayoutRect(adjustedPaintOffset, size()));
228 }
229
230 void RenderTableRow::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffset) 223 void RenderTableRow::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffset)
231 { 224 {
232 ASSERT(hasSelfPaintingLayer()); 225 TableRowPainter(*this).paint(paintInfo, paintOffset);
233 ANNOTATE_GRAPHICS_CONTEXT(paintInfo, this);
234
235 paintOutlineForRowIfNeeded(paintInfo, paintOffset);
236 for (RenderTableCell* cell = firstCell(); cell; cell = cell->nextCell()) {
237 // Paint the row background behind the cell.
238 if (paintInfo.phase == PaintPhaseBlockBackground || paintInfo.phase == P aintPhaseChildBlockBackground)
239 cell->paintBackgroundsBehindCell(paintInfo, paintOffset, this);
240 if (!cell->hasSelfPaintingLayer())
241 cell->paint(paintInfo, paintOffset);
242 }
243 } 226 }
244 227
245 void RenderTableRow::imageChanged(WrappedImagePtr, const IntRect*) 228 void RenderTableRow::imageChanged(WrappedImagePtr, const IntRect*)
246 { 229 {
247 // FIXME: Examine cells and issue paint invalidations of only the rect the i mage paints in. 230 // FIXME: Examine cells and issue paint invalidations of only the rect the i mage paints in.
248 setShouldDoFullPaintInvalidation(true); 231 setShouldDoFullPaintInvalidation(true);
249 } 232 }
250 233
251 RenderTableRow* RenderTableRow::createAnonymous(Document* document) 234 RenderTableRow* RenderTableRow::createAnonymous(Document* document)
252 { 235 {
253 RenderTableRow* renderer = new RenderTableRow(0); 236 RenderTableRow* renderer = new RenderTableRow(0);
254 renderer->setDocumentForAnonymous(document); 237 renderer->setDocumentForAnonymous(document);
255 return renderer; 238 return renderer;
256 } 239 }
257 240
258 RenderTableRow* RenderTableRow::createAnonymousWithParentRenderer(const RenderOb ject* parent) 241 RenderTableRow* RenderTableRow::createAnonymousWithParentRenderer(const RenderOb ject* parent)
259 { 242 {
260 RenderTableRow* newRow = RenderTableRow::createAnonymous(&parent->document() ); 243 RenderTableRow* newRow = RenderTableRow::createAnonymous(&parent->document() );
261 RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay( parent->style(), TABLE_ROW); 244 RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay( parent->style(), TABLE_ROW);
262 newRow->setStyle(newStyle.release()); 245 newRow->setStyle(newStyle.release());
263 return newRow; 246 return newRow;
264 } 247 }
265 248
266 } // namespace blink 249 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderTableRow.h ('k') | Source/core/rendering/RenderTableSection.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698