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

Side by Side Diff: third_party/WebKit/Source/core/paint/InlineFlowBoxPainter.cpp

Issue 2555923002: Changed TextDirection to an enum class and renamed its members (Closed)
Patch Set: Added 2 changes in mac files Created 4 years 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
OLDNEW
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 "core/paint/InlineFlowBoxPainter.h" 5 #include "core/paint/InlineFlowBoxPainter.h"
6 6
7 #include "core/layout/api/LineLayoutAPIShim.h" 7 #include "core/layout/api/LineLayoutAPIShim.h"
8 #include "core/layout/line/RootInlineBox.h" 8 #include "core/layout/line/RootInlineBox.h"
9 #include "core/paint/BoxPainter.h" 9 #include "core/paint/BoxPainter.h"
10 #include "core/paint/PaintInfo.h" 10 #include "core/paint/PaintInfo.h"
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 TextDirection direction) const { 160 TextDirection direction) const {
161 // We have a fill/border/mask image that spans multiple lines. 161 // We have a fill/border/mask image that spans multiple lines.
162 // We need to adjust the offset by the width of all previous lines. 162 // We need to adjust the offset by the width of all previous lines.
163 // Think of background painting on inlines as though you had one long line, a 163 // Think of background painting on inlines as though you had one long line, a
164 // single continuous strip. Even though that strip has been broken up across 164 // single continuous strip. Even though that strip has been broken up across
165 // multiple lines, you still paint it as though you had one single line. This 165 // multiple lines, you still paint it as though you had one single line. This
166 // means each line has to pick up the background where the previous line left 166 // means each line has to pick up the background where the previous line left
167 // off. 167 // off.
168 LayoutUnit logicalOffsetOnLine; 168 LayoutUnit logicalOffsetOnLine;
169 LayoutUnit totalLogicalWidth; 169 LayoutUnit totalLogicalWidth;
170 if (direction == LTR) { 170 if (direction == TextDirection::Ltr) {
171 for (const InlineFlowBox* curr = m_inlineFlowBox.prevLineBox(); curr; 171 for (const InlineFlowBox* curr = m_inlineFlowBox.prevLineBox(); curr;
172 curr = curr->prevLineBox()) 172 curr = curr->prevLineBox())
173 logicalOffsetOnLine += curr->logicalWidth(); 173 logicalOffsetOnLine += curr->logicalWidth();
174 totalLogicalWidth = logicalOffsetOnLine; 174 totalLogicalWidth = logicalOffsetOnLine;
175 for (const InlineFlowBox* curr = &m_inlineFlowBox; curr; 175 for (const InlineFlowBox* curr = &m_inlineFlowBox; curr;
176 curr = curr->nextLineBox()) 176 curr = curr->nextLineBox())
177 totalLogicalWidth += curr->logicalWidth(); 177 totalLogicalWidth += curr->logicalWidth();
178 } else { 178 } else {
179 for (const InlineFlowBox* curr = m_inlineFlowBox.nextLineBox(); curr; 179 for (const InlineFlowBox* curr = m_inlineFlowBox.nextLineBox(); curr;
180 curr = curr->nextLineBox()) 180 curr = curr->nextLineBox())
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 paintInfo, adjustedFrameRect, 294 paintInfo, adjustedFrameRect,
295 m_inlineFlowBox.getLineLayoutItem().styleRef( 295 m_inlineFlowBox.getLineLayoutItem().styleRef(
296 m_inlineFlowBox.isFirstLineStyle()), 296 m_inlineFlowBox.isFirstLineStyle()),
297 BackgroundBleedNone, m_inlineFlowBox.includeLogicalLeftEdge(), 297 BackgroundBleedNone, m_inlineFlowBox.includeLogicalLeftEdge(),
298 m_inlineFlowBox.includeLogicalRightEdge()); 298 m_inlineFlowBox.includeLogicalRightEdge());
299 break; 299 break;
300 case PaintBordersWithClip: 300 case PaintBordersWithClip:
301 // FIXME: What the heck do we do with RTL here? The math we're using is 301 // FIXME: What the heck do we do with RTL here? The math we're using is
302 // obviously not right, but it isn't even clear how this should work at 302 // obviously not right, but it isn't even clear how this should work at
303 // all. 303 // all.
304 LayoutRect imageStripPaintRect = 304 LayoutRect imageStripPaintRect = paintRectForImageStrip(
305 paintRectForImageStrip(adjustedPaintOffset, frameRect.size(), LTR); 305 adjustedPaintOffset, frameRect.size(), TextDirection::Ltr);
306 GraphicsContextStateSaver stateSaver(paintInfo.context); 306 GraphicsContextStateSaver stateSaver(paintInfo.context);
307 paintInfo.context.clip(adjustedClipRect); 307 paintInfo.context.clip(adjustedClipRect);
308 BoxPainter::paintBorder( 308 BoxPainter::paintBorder(
309 *toLayoutBoxModelObject(LineLayoutAPIShim::layoutObjectFrom( 309 *toLayoutBoxModelObject(LineLayoutAPIShim::layoutObjectFrom(
310 m_inlineFlowBox.boxModelObject())), 310 m_inlineFlowBox.boxModelObject())),
311 paintInfo, imageStripPaintRect, 311 paintInfo, imageStripPaintRect,
312 m_inlineFlowBox.getLineLayoutItem().styleRef( 312 m_inlineFlowBox.getLineLayoutItem().styleRef(
313 m_inlineFlowBox.isFirstLineStyle())); 313 m_inlineFlowBox.isFirstLineStyle()));
314 break; 314 break;
315 } 315 }
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 // cases only a single call to draw is required. 380 // cases only a single call to draw is required.
381 if (!m_inlineFlowBox.prevLineBox() && !m_inlineFlowBox.nextLineBox()) { 381 if (!m_inlineFlowBox.prevLineBox() && !m_inlineFlowBox.nextLineBox()) {
382 BoxPainter::paintNinePieceImage( 382 BoxPainter::paintNinePieceImage(
383 *boxModel, paintInfo.context, paintRect, 383 *boxModel, paintInfo.context, paintRect,
384 m_inlineFlowBox.getLineLayoutItem().styleRef(), maskNinePieceImage, 384 m_inlineFlowBox.getLineLayoutItem().styleRef(), maskNinePieceImage,
385 compositeOp); 385 compositeOp);
386 } else { 386 } else {
387 // We have a mask image that spans multiple lines. 387 // We have a mask image that spans multiple lines.
388 // FIXME: What the heck do we do with RTL here? The math we're using is 388 // FIXME: What the heck do we do with RTL here? The math we're using is
389 // obviously not right, but it isn't even clear how this should work at all. 389 // obviously not right, but it isn't even clear how this should work at all.
390 LayoutRect imageStripPaintRect = 390 LayoutRect imageStripPaintRect = paintRectForImageStrip(
391 paintRectForImageStrip(adjustedPaintOffset, frameRect.size(), LTR); 391 adjustedPaintOffset, frameRect.size(), TextDirection::Ltr);
392 FloatRect clipRect(clipRectForNinePieceImageStrip( 392 FloatRect clipRect(clipRectForNinePieceImageStrip(
393 m_inlineFlowBox, maskNinePieceImage, paintRect)); 393 m_inlineFlowBox, maskNinePieceImage, paintRect));
394 GraphicsContextStateSaver stateSaver(paintInfo.context); 394 GraphicsContextStateSaver stateSaver(paintInfo.context);
395 // TODO(chrishtr): this should be pixel-snapped. 395 // TODO(chrishtr): this should be pixel-snapped.
396 paintInfo.context.clip(clipRect); 396 paintInfo.context.clip(clipRect);
397 BoxPainter::paintNinePieceImage( 397 BoxPainter::paintNinePieceImage(
398 *boxModel, paintInfo.context, imageStripPaintRect, 398 *boxModel, paintInfo.context, imageStripPaintRect,
399 m_inlineFlowBox.getLineLayoutItem().styleRef(), maskNinePieceImage, 399 m_inlineFlowBox.getLineLayoutItem().styleRef(), maskNinePieceImage,
400 compositeOp); 400 compositeOp);
401 } 401 }
(...skipping 26 matching lines...) Expand all
428 rect.setHeight(logicalHeight); 428 rect.setHeight(logicalHeight);
429 } else { 429 } else {
430 rect.setX(logicalTop); 430 rect.setX(logicalTop);
431 rect.setWidth(logicalHeight); 431 rect.setWidth(logicalHeight);
432 } 432 }
433 } 433 }
434 return rect; 434 return rect;
435 } 435 }
436 436
437 } // namespace blink 437 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698