OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "config.h" | 5 #include "config.h" |
6 #include "core/paint/BlockPainter.h" | 6 #include "core/paint/BlockPainter.h" |
7 | 7 |
8 #include "core/editing/Caret.h" | 8 #include "core/editing/Caret.h" |
9 #include "core/editing/FrameSelection.h" | 9 #include "core/editing/FrameSelection.h" |
10 #include "core/frame/LocalFrame.h" | 10 #include "core/frame/LocalFrame.h" |
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
273 currLogicalLeftOffset -= (inlineDirectionSize + colGap); | 273 currLogicalLeftOffset -= (inlineDirectionSize + colGap); |
274 } | 274 } |
275 | 275 |
276 // Now paint the column rule. | 276 // Now paint the column rule. |
277 if (i < colCount - 1) { | 277 if (i < colCount - 1) { |
278 LayoutUnit ruleLeft = m_renderBlock.isHorizontalWritingMode() ?
paintOffset.x() + ruleLogicalLeft - ruleThickness / 2 + ruleAdd : paintOffset.x(
) + m_renderBlock.borderLeft() + m_renderBlock.paddingLeft(); | 278 LayoutUnit ruleLeft = m_renderBlock.isHorizontalWritingMode() ?
paintOffset.x() + ruleLogicalLeft - ruleThickness / 2 + ruleAdd : paintOffset.x(
) + m_renderBlock.borderLeft() + m_renderBlock.paddingLeft(); |
279 LayoutUnit ruleRight = m_renderBlock.isHorizontalWritingMode() ?
ruleLeft + ruleThickness : ruleLeft + m_renderBlock.contentWidth(); | 279 LayoutUnit ruleRight = m_renderBlock.isHorizontalWritingMode() ?
ruleLeft + ruleThickness : ruleLeft + m_renderBlock.contentWidth(); |
280 LayoutUnit ruleTop = m_renderBlock.isHorizontalWritingMode() ? p
aintOffset.y() + m_renderBlock.borderTop() + m_renderBlock.paddingTop() : paintO
ffset.y() + ruleLogicalLeft - ruleThickness / 2 + ruleAdd; | 280 LayoutUnit ruleTop = m_renderBlock.isHorizontalWritingMode() ? p
aintOffset.y() + m_renderBlock.borderTop() + m_renderBlock.paddingTop() : paintO
ffset.y() + ruleLogicalLeft - ruleThickness / 2 + ruleAdd; |
281 LayoutUnit ruleBottom = m_renderBlock.isHorizontalWritingMode()
? ruleTop + m_renderBlock.contentHeight() : ruleTop + ruleThickness; | 281 LayoutUnit ruleBottom = m_renderBlock.isHorizontalWritingMode()
? ruleTop + m_renderBlock.contentHeight() : ruleTop + ruleThickness; |
282 IntRect pixelSnappedRuleRect = pixelSnappedIntRectFromEdges(rule
Left, ruleTop, ruleRight, ruleBottom); | 282 IntRect pixelSnappedRuleRect = pixelSnappedIntRectFromEdges(rule
Left, ruleTop, ruleRight, ruleBottom); |
283 m_renderBlock.drawLineForBoxSide(paintInfo.context, pixelSnapped
RuleRect.x(), pixelSnappedRuleRect.y(), pixelSnappedRuleRect.maxX(), pixelSnappe
dRuleRect.maxY(), boxSide, ruleColor, ruleStyle, 0, 0, antialias); | 283 ObjectPainter::drawLineForBoxSide(paintInfo.context, pixelSnappe
dRuleRect.x(), pixelSnappedRuleRect.y(), pixelSnappedRuleRect.maxX(), pixelSnapp
edRuleRect.maxY(), boxSide, ruleColor, ruleStyle, 0, 0, antialias); |
284 } | 284 } |
285 | 285 |
286 ruleLogicalLeft = currLogicalLeftOffset; | 286 ruleLogicalLeft = currLogicalLeftOffset; |
287 } | 287 } |
288 } else { | 288 } else { |
289 bool topToBottom = !m_renderBlock.style()->isFlippedBlocksWritingMode(); | 289 bool topToBottom = !m_renderBlock.style()->isFlippedBlocksWritingMode(); |
290 LayoutUnit ruleLeft = m_renderBlock.isHorizontalWritingMode() | 290 LayoutUnit ruleLeft = m_renderBlock.isHorizontalWritingMode() |
291 ? m_renderBlock.borderLeft() + m_renderBlock.paddingLeft() | 291 ? m_renderBlock.borderLeft() + m_renderBlock.paddingLeft() |
292 : colGap / 2 - colGap - ruleThickness / 2 + m_renderBlock.borderBefo
re() + m_renderBlock.paddingBefore(); | 292 : colGap / 2 - colGap - ruleThickness / 2 + m_renderBlock.borderBefo
re() + m_renderBlock.paddingBefore(); |
293 LayoutUnit ruleWidth = m_renderBlock.isHorizontalWritingMode() ? m_rende
rBlock.contentWidth() : ruleThickness; | 293 LayoutUnit ruleWidth = m_renderBlock.isHorizontalWritingMode() ? m_rende
rBlock.contentWidth() : ruleThickness; |
(...skipping 16 matching lines...) Expand all Loading... |
310 ? topToBottom ? BSTop : BSBottom | 310 ? topToBottom ? BSTop : BSBottom |
311 : topToBottom ? BSLeft : BSRight; | 311 : topToBottom ? BSLeft : BSRight; |
312 | 312 |
313 LayoutSize step(0, topToBottom ? colInfo->columnHeight() + colGap : -(co
lInfo->columnHeight() + colGap)); | 313 LayoutSize step(0, topToBottom ? colInfo->columnHeight() + colGap : -(co
lInfo->columnHeight() + colGap)); |
314 if (!m_renderBlock.isHorizontalWritingMode()) | 314 if (!m_renderBlock.isHorizontalWritingMode()) |
315 step = step.transposedSize(); | 315 step = step.transposedSize(); |
316 | 316 |
317 for (unsigned i = 1; i < colCount; i++) { | 317 for (unsigned i = 1; i < colCount; i++) { |
318 ruleRect.move(step); | 318 ruleRect.move(step); |
319 IntRect pixelSnappedRuleRect = pixelSnappedIntRect(ruleRect); | 319 IntRect pixelSnappedRuleRect = pixelSnappedIntRect(ruleRect); |
320 m_renderBlock.drawLineForBoxSide(paintInfo.context, pixelSnappedRule
Rect.x(), pixelSnappedRuleRect.y(), pixelSnappedRuleRect.maxX(), pixelSnappedRul
eRect.maxY(), boxSide, ruleColor, ruleStyle, 0, 0, antialias); | 320 ObjectPainter::drawLineForBoxSide(paintInfo.context, pixelSnappedRul
eRect.x(), pixelSnappedRuleRect.y(), pixelSnappedRuleRect.maxX(), pixelSnappedRu
leRect.maxY(), boxSide, ruleColor, ruleStyle, 0, 0, antialias); |
321 } | 321 } |
322 } | 322 } |
323 } | 323 } |
324 | 324 |
325 void BlockPainter::paintColumnContents(PaintInfo& paintInfo, const LayoutPoint&
paintOffset, bool paintingFloats) | 325 void BlockPainter::paintColumnContents(PaintInfo& paintInfo, const LayoutPoint&
paintOffset, bool paintingFloats) |
326 { | 326 { |
327 // We need to do multiple passes, breaking up our child painting into strips
. | 327 // We need to do multiple passes, breaking up our child painting into strips
. |
328 GraphicsContext* context = paintInfo.context; | 328 GraphicsContext* context = paintInfo.context; |
329 ColumnInfo* colInfo = m_renderBlock.columnInfo(); | 329 ColumnInfo* colInfo = m_renderBlock.columnInfo(); |
330 unsigned colCount = m_renderBlock.columnCount(colInfo); | 330 unsigned colCount = m_renderBlock.columnCount(colInfo); |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
467 RenderBlock* block = flow->containingBlock(); | 467 RenderBlock* block = flow->containingBlock(); |
468 for ( ; block && block != &m_renderBlock; block = block->containingBlock
()) | 468 for ( ; block && block != &m_renderBlock; block = block->containingBlock
()) |
469 accumulatedPaintOffset.moveBy(block->location()); | 469 accumulatedPaintOffset.moveBy(block->location()); |
470 ASSERT(block); | 470 ASSERT(block); |
471 flow->paintOutline(info, accumulatedPaintOffset); | 471 flow->paintOutline(info, accumulatedPaintOffset); |
472 } | 472 } |
473 } | 473 } |
474 | 474 |
475 | 475 |
476 } // namespace blink | 476 } // namespace blink |
OLD | NEW |