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

Side by Side Diff: third_party/WebKit/Source/core/layout/line/InlineFlowBox.cpp

Issue 2845893002: Make EBoxDecorationBreak an enum class. (Closed)
Patch Set: Rebase Created 3 years, 7 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. 2 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc.
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 // The root inline box never has borders/margins/padding. 332 // The root inline box never has borders/margins/padding.
333 if (Parent()) { 333 if (Parent()) {
334 bool ltr = GetLineLayoutItem().Style()->IsLeftToRightDirection(); 334 bool ltr = GetLineLayoutItem().Style()->IsLeftToRightDirection();
335 335
336 // Check to see if all initial lines are unconstructed. If so, then 336 // Check to see if all initial lines are unconstructed. If so, then
337 // we know the inline began on this line (unless we are a continuation). 337 // we know the inline began on this line (unless we are a continuation).
338 LineBoxList* line_box_list = LineBoxes(); 338 LineBoxList* line_box_list = LineBoxes();
339 if (!line_box_list->FirstLineBox()->IsConstructed() && 339 if (!line_box_list->FirstLineBox()->IsConstructed() &&
340 !GetLineLayoutItem().IsInlineElementContinuation()) { 340 !GetLineLayoutItem().IsInlineElementContinuation()) {
341 if (GetLineLayoutItem().Style()->BoxDecorationBreak() == 341 if (GetLineLayoutItem().Style()->BoxDecorationBreak() ==
342 kBoxDecorationBreakClone) 342 EBoxDecorationBreak::kClone)
343 include_left_edge = include_right_edge = true; 343 include_left_edge = include_right_edge = true;
344 else if (ltr && line_box_list->FirstLineBox() == this) 344 else if (ltr && line_box_list->FirstLineBox() == this)
345 include_left_edge = true; 345 include_left_edge = true;
346 else if (!ltr && line_box_list->LastLineBox() == this) 346 else if (!ltr && line_box_list->LastLineBox() == this)
347 include_right_edge = true; 347 include_right_edge = true;
348 } 348 }
349 349
350 if (!line_box_list->LastLineBox()->IsConstructed()) { 350 if (!line_box_list->LastLineBox()->IsConstructed()) {
351 LineLayoutInline inline_flow = LineLayoutInline(GetLineLayoutItem()); 351 LineLayoutInline inline_flow = LineLayoutInline(GetLineLayoutItem());
352 LineLayoutItem logically_last_run_layout_item( 352 LineLayoutItem logically_last_run_layout_item(
353 logically_last_run_layout_object); 353 logically_last_run_layout_object);
354 bool is_last_object_on_line = 354 bool is_last_object_on_line =
355 !IsAncestorAndWithinBlock(GetLineLayoutItem(), 355 !IsAncestorAndWithinBlock(GetLineLayoutItem(),
356 logically_last_run_layout_item) || 356 logically_last_run_layout_item) ||
357 (IsLastChildForLayoutObject(GetLineLayoutItem(), 357 (IsLastChildForLayoutObject(GetLineLayoutItem(),
358 logically_last_run_layout_item) && 358 logically_last_run_layout_item) &&
359 !is_logically_last_run_wrapped); 359 !is_logically_last_run_wrapped);
360 360
361 // We include the border under these conditions: 361 // We include the border under these conditions:
362 // (1) The next line was not created, or it is constructed. We check the 362 // (1) The next line was not created, or it is constructed. We check the
363 // previous line for rtl. 363 // previous line for rtl.
364 // (2) The logicallyLastRun is not a descendant of this layout object. 364 // (2) The logicallyLastRun is not a descendant of this layout object.
365 // (3) The logicallyLastRun is a descendant of this layout object, but it 365 // (3) The logicallyLastRun is a descendant of this layout object, but it
366 // is the last child of this layout object and it does not wrap to the 366 // is the last child of this layout object and it does not wrap to the
367 // next line. 367 // next line.
368 // (4) The decoration break is set to clone therefore there will be 368 // (4) The decoration break is set to clone therefore there will be
369 // borders on every sides. 369 // borders on every sides.
370 if (GetLineLayoutItem().Style()->BoxDecorationBreak() == 370 if (GetLineLayoutItem().Style()->BoxDecorationBreak() ==
371 kBoxDecorationBreakClone) { 371 EBoxDecorationBreak::kClone) {
372 include_left_edge = include_right_edge = true; 372 include_left_edge = include_right_edge = true;
373 } else if (ltr) { 373 } else if (ltr) {
374 if (!NextLineBox() && ((last_line || is_last_object_on_line) && 374 if (!NextLineBox() && ((last_line || is_last_object_on_line) &&
375 !inline_flow.Continuation())) 375 !inline_flow.Continuation()))
376 include_right_edge = true; 376 include_right_edge = true;
377 } else { 377 } else {
378 if ((!PrevLineBox() || PrevLineBox()->IsConstructed()) && 378 if ((!PrevLineBox() || PrevLineBox()->IsConstructed()) &&
379 ((last_line || is_last_object_on_line) && 379 ((last_line || is_last_object_on_line) &&
380 !inline_flow.Continuation())) 380 !inline_flow.Continuation()))
381 include_left_edge = true; 381 include_left_edge = true;
(...skipping 1371 matching lines...) Expand 10 before | Expand all | Expand 10 after
1753 DCHECK_EQ(child->prevOnLine(), prev); 1753 DCHECK_EQ(child->prevOnLine(), prev);
1754 prev = child; 1754 prev = child;
1755 } 1755 }
1756 DCHECK_EQ(prev, m_lastChild); 1756 DCHECK_EQ(prev, m_lastChild);
1757 #endif 1757 #endif
1758 } 1758 }
1759 1759
1760 #endif 1760 #endif
1761 1761
1762 } // namespace blink 1762 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698