void FrameSetPainter::paintBorders(const PaintInfo& paintInfo, const LayoutPoint& adjustedPaintOffset) { LayoutRect adjustedFrameRect(adjustedPaintOffset, m_layoutFrameSet.size()); LayoutObjectDrawingRecorder recorder(*paintInfo.context, m_layoutFrameSet, paintInfo.phase, adjustedFrameRect); if (recorder.canUseCachedDrawing()) return; LayoutObject* child = m_layoutFrameSet.firstChild(); size_t rows = m_layoutFrameSet.rows().m_sizes.size(); size_t cols = m_layoutFrameSet.columns().m_sizes.size(); LayoutUnit borderThickness = m_layoutFrameSet.frameSet()->border(); LayoutUnit yPos = 0; for (size_t r = 0; r < rows; r++) { LayoutUnit xPos = 0; for (size_t c = 0; c < cols; c++) { xPos += m_layoutFrameSet.columns().m_sizes[c]; if (borderThickness && m_layoutFrameSet.columns().m_allowBorder[c + 1]) { paintColumnBorder(paintInfo, pixelSnappedIntRect( LayoutRect(adjustedPaintOffset.x() + xPos, adjustedPaintOffset.y() + yPos, borderThickness, m_layoutFrameSet.size().height()))); xPos += borderThickness; } child = child->nextSibling(); if (!child) return; } yPos += m_layoutFrameSet.rows().m_sizes[r]; if (borderThickness && m_layoutFrameSet.rows().m_allowBorder[r + 1]) { paintRowBorder(paintInfo, pixelSnappedIntRect( LayoutRect(adjustedPaintOffset.x(), adjustedPaintOffset.y() + yPos, m_layoutFrameSet.size().width(), borderThickness))); yPos += borderThickness; } } }
void RenderFrameSet::paint(PaintInfo& paintInfo, int tx, int ty) { if (paintInfo.phase != PaintPhaseForeground) return; RenderObject* child = firstChild(); if (!child) return; // Add in our offsets. tx += x(); ty += y(); int rows = frameSet()->totalRows(); int cols = frameSet()->totalCols(); int borderThickness = frameSet()->border(); int yPos = 0; for (int r = 0; r < rows; r++) { int xPos = 0; for (int c = 0; c < cols; c++) { child->paint(paintInfo, tx, ty); xPos += m_cols.m_sizes[c]; if (borderThickness && m_cols.m_allowBorder[c + 1]) { paintColumnBorder(paintInfo, IntRect(tx + xPos, ty + yPos, borderThickness, height())); xPos += borderThickness; } child = child->nextSibling(); if (!child) return; } yPos += m_rows.m_sizes[r]; if (borderThickness && m_rows.m_allowBorder[r + 1]) { paintRowBorder(paintInfo, IntRect(tx, ty + yPos, width(), borderThickness)); yPos += borderThickness; } } }
void RenderFrameSet::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffset) { if (paintInfo.phase != PaintPhaseForeground) return; RenderObject* child = firstChild(); if (!child) return; LayoutPoint adjustedPaintOffset = paintOffset + location(); size_t rows = m_rows.m_sizes.size(); size_t cols = m_cols.m_sizes.size(); LayoutUnit borderThickness = frameSetElement().border(); LayoutUnit yPos = 0; for (size_t r = 0; r < rows; r++) { LayoutUnit xPos = 0; for (size_t c = 0; c < cols; c++) { toRenderElement(child)->paint(paintInfo, adjustedPaintOffset); xPos += m_cols.m_sizes[c]; if (borderThickness && m_cols.m_allowBorder[c + 1]) { paintColumnBorder(paintInfo, pixelSnappedIntRect(LayoutRect(adjustedPaintOffset.x() + xPos, adjustedPaintOffset.y() + yPos, borderThickness, height()))); xPos += borderThickness; } child = child->nextSibling(); if (!child) return; } yPos += m_rows.m_sizes[r]; if (borderThickness && m_rows.m_allowBorder[r + 1]) { paintRowBorder(paintInfo, pixelSnappedIntRect(LayoutRect(adjustedPaintOffset.x(), adjustedPaintOffset.y() + yPos, width(), borderThickness))); yPos += borderThickness; } } }