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

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

Issue 1419813004: Remove the "horizontal-bt" value from -webkit-writing-mode (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add static_assert to ensure TransformedWritingMode matches to WritingMode Created 5 years, 1 month 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) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 LayoutUnit borderAndPadding = child.borderAndPaddingLogicalWidth(); 451 LayoutUnit borderAndPadding = child.borderAndPaddingLogicalWidth();
452 if (child.styleRef().logicalWidth().isAuto()) { 452 if (child.styleRef().logicalWidth().isAuto()) {
453 if (size.type() == MinContent) 453 if (size.type() == MinContent)
454 return child.minPreferredLogicalWidth() - borderAndPadding; 454 return child.minPreferredLogicalWidth() - borderAndPadding;
455 if (size.type() == MaxContent) 455 if (size.type() == MaxContent)
456 return child.maxPreferredLogicalWidth() - borderAndPadding; 456 return child.maxPreferredLogicalWidth() - borderAndPadding;
457 } 457 }
458 return child.computeLogicalWidthUsing(sizeType, size, contentLogicalWidth(), this) - borderAndPadding; 458 return child.computeLogicalWidthUsing(sizeType, size, contentLogicalWidth(), this) - borderAndPadding;
459 } 459 }
460 460
461 WritingMode LayoutFlexibleBox::transformedWritingMode() const 461 LayoutFlexibleBox::TransformedWritingMode LayoutFlexibleBox::transformedWritingM ode() const
462 { 462 {
463 WritingMode mode = style()->writingMode(); 463 WritingMode mode = style()->writingMode();
464 if (!isColumnFlow()) 464 if (!isColumnFlow()) {
465 return mode; 465 static_assert(static_cast<TransformedWritingMode>(TopToBottomWritingMode ) == TransformedWritingMode::TopToBottomWritingMode
466 && static_cast<TransformedWritingMode>(LeftToRightWritingMode) == Tr ansformedWritingMode::LeftToRightWritingMode
467 && static_cast<TransformedWritingMode>(RightToLeftWritingMode) == Tr ansformedWritingMode::RightToLeftWritingMode,
468 "WritingMode and TransformedWritingMode must match values.");
469 return static_cast<TransformedWritingMode>(mode);
470 }
466 471
467 switch (mode) { 472 switch (mode) {
468 case TopToBottomWritingMode: 473 case TopToBottomWritingMode:
469 case BottomToTopWritingMode: 474 return style()->isLeftToRightDirection() ? TransformedWritingMode::LeftT oRightWritingMode : TransformedWritingMode::RightToLeftWritingMode;
470 return style()->isLeftToRightDirection() ? LeftToRightWritingMode : Righ tToLeftWritingMode;
471 case LeftToRightWritingMode: 475 case LeftToRightWritingMode:
472 case RightToLeftWritingMode: 476 case RightToLeftWritingMode:
473 return style()->isLeftToRightDirection() ? TopToBottomWritingMode : Bott omToTopWritingMode; 477 return style()->isLeftToRightDirection() ? TransformedWritingMode::TopTo BottomWritingMode : TransformedWritingMode::BottomToTopWritingMode;
474 } 478 }
475 ASSERT_NOT_REACHED(); 479 ASSERT_NOT_REACHED();
476 return TopToBottomWritingMode; 480 return TransformedWritingMode::TopToBottomWritingMode;
477 } 481 }
478 482
479 LayoutUnit LayoutFlexibleBox::flowAwareBorderStart() const 483 LayoutUnit LayoutFlexibleBox::flowAwareBorderStart() const
480 { 484 {
481 if (isHorizontalFlow()) 485 if (isHorizontalFlow())
482 return isLeftToRightFlow() ? borderLeft() : borderRight(); 486 return isLeftToRightFlow() ? borderLeft() : borderRight();
483 return isLeftToRightFlow() ? borderTop() : borderBottom(); 487 return isLeftToRightFlow() ? borderTop() : borderBottom();
484 } 488 }
485 489
486 LayoutUnit LayoutFlexibleBox::flowAwareBorderEnd() const 490 LayoutUnit LayoutFlexibleBox::flowAwareBorderEnd() const
487 { 491 {
488 if (isHorizontalFlow()) 492 if (isHorizontalFlow())
489 return isLeftToRightFlow() ? borderRight() : borderLeft(); 493 return isLeftToRightFlow() ? borderRight() : borderLeft();
490 return isLeftToRightFlow() ? borderBottom() : borderTop(); 494 return isLeftToRightFlow() ? borderBottom() : borderTop();
491 } 495 }
492 496
493 LayoutUnit LayoutFlexibleBox::flowAwareBorderBefore() const 497 LayoutUnit LayoutFlexibleBox::flowAwareBorderBefore() const
494 { 498 {
495 switch (transformedWritingMode()) { 499 switch (transformedWritingMode()) {
496 case TopToBottomWritingMode: 500 case TransformedWritingMode::TopToBottomWritingMode:
497 return borderTop(); 501 return borderTop();
498 case BottomToTopWritingMode: 502 case TransformedWritingMode::BottomToTopWritingMode:
499 return borderBottom(); 503 return borderBottom();
500 case LeftToRightWritingMode: 504 case TransformedWritingMode::LeftToRightWritingMode:
501 return borderLeft(); 505 return borderLeft();
502 case RightToLeftWritingMode: 506 case TransformedWritingMode::RightToLeftWritingMode:
503 return borderRight(); 507 return borderRight();
504 } 508 }
505 ASSERT_NOT_REACHED(); 509 ASSERT_NOT_REACHED();
506 return borderTop(); 510 return borderTop();
507 } 511 }
508 512
509 LayoutUnit LayoutFlexibleBox::flowAwareBorderAfter() const 513 LayoutUnit LayoutFlexibleBox::flowAwareBorderAfter() const
510 { 514 {
511 switch (transformedWritingMode()) { 515 switch (transformedWritingMode()) {
512 case TopToBottomWritingMode: 516 case TransformedWritingMode::TopToBottomWritingMode:
513 return borderBottom(); 517 return borderBottom();
514 case BottomToTopWritingMode: 518 case TransformedWritingMode::BottomToTopWritingMode:
515 return borderTop(); 519 return borderTop();
516 case LeftToRightWritingMode: 520 case TransformedWritingMode::LeftToRightWritingMode:
517 return borderRight(); 521 return borderRight();
518 case RightToLeftWritingMode: 522 case TransformedWritingMode::RightToLeftWritingMode:
519 return borderLeft(); 523 return borderLeft();
520 } 524 }
521 ASSERT_NOT_REACHED(); 525 ASSERT_NOT_REACHED();
522 return borderTop(); 526 return borderTop();
523 } 527 }
524 528
525 LayoutUnit LayoutFlexibleBox::flowAwarePaddingStart() const 529 LayoutUnit LayoutFlexibleBox::flowAwarePaddingStart() const
526 { 530 {
527 if (isHorizontalFlow()) 531 if (isHorizontalFlow())
528 return isLeftToRightFlow() ? paddingLeft() : paddingRight(); 532 return isLeftToRightFlow() ? paddingLeft() : paddingRight();
529 return isLeftToRightFlow() ? paddingTop() : paddingBottom(); 533 return isLeftToRightFlow() ? paddingTop() : paddingBottom();
530 } 534 }
531 535
532 LayoutUnit LayoutFlexibleBox::flowAwarePaddingEnd() const 536 LayoutUnit LayoutFlexibleBox::flowAwarePaddingEnd() const
533 { 537 {
534 if (isHorizontalFlow()) 538 if (isHorizontalFlow())
535 return isLeftToRightFlow() ? paddingRight() : paddingLeft(); 539 return isLeftToRightFlow() ? paddingRight() : paddingLeft();
536 return isLeftToRightFlow() ? paddingBottom() : paddingTop(); 540 return isLeftToRightFlow() ? paddingBottom() : paddingTop();
537 } 541 }
538 542
539 LayoutUnit LayoutFlexibleBox::flowAwarePaddingBefore() const 543 LayoutUnit LayoutFlexibleBox::flowAwarePaddingBefore() const
540 { 544 {
541 switch (transformedWritingMode()) { 545 switch (transformedWritingMode()) {
542 case TopToBottomWritingMode: 546 case TransformedWritingMode::TopToBottomWritingMode:
543 return paddingTop(); 547 return paddingTop();
544 case BottomToTopWritingMode: 548 case TransformedWritingMode::BottomToTopWritingMode:
545 return paddingBottom(); 549 return paddingBottom();
546 case LeftToRightWritingMode: 550 case TransformedWritingMode::LeftToRightWritingMode:
547 return paddingLeft(); 551 return paddingLeft();
548 case RightToLeftWritingMode: 552 case TransformedWritingMode::RightToLeftWritingMode:
549 return paddingRight(); 553 return paddingRight();
550 } 554 }
551 ASSERT_NOT_REACHED(); 555 ASSERT_NOT_REACHED();
552 return paddingTop(); 556 return paddingTop();
553 } 557 }
554 558
555 LayoutUnit LayoutFlexibleBox::flowAwarePaddingAfter() const 559 LayoutUnit LayoutFlexibleBox::flowAwarePaddingAfter() const
556 { 560 {
557 switch (transformedWritingMode()) { 561 switch (transformedWritingMode()) {
558 case TopToBottomWritingMode: 562 case TransformedWritingMode::TopToBottomWritingMode:
559 return paddingBottom(); 563 return paddingBottom();
560 case BottomToTopWritingMode: 564 case TransformedWritingMode::BottomToTopWritingMode:
561 return paddingTop(); 565 return paddingTop();
562 case LeftToRightWritingMode: 566 case TransformedWritingMode::LeftToRightWritingMode:
563 return paddingRight(); 567 return paddingRight();
564 case RightToLeftWritingMode: 568 case TransformedWritingMode::RightToLeftWritingMode:
565 return paddingLeft(); 569 return paddingLeft();
566 } 570 }
567 ASSERT_NOT_REACHED(); 571 ASSERT_NOT_REACHED();
568 return paddingTop(); 572 return paddingTop();
569 } 573 }
570 574
571 LayoutUnit LayoutFlexibleBox::flowAwareMarginStartForChild(const LayoutBox& chil d) const 575 LayoutUnit LayoutFlexibleBox::flowAwareMarginStartForChild(const LayoutBox& chil d) const
572 { 576 {
573 if (isHorizontalFlow()) 577 if (isHorizontalFlow())
574 return isLeftToRightFlow() ? child.marginLeft() : child.marginRight(); 578 return isLeftToRightFlow() ? child.marginLeft() : child.marginRight();
575 return isLeftToRightFlow() ? child.marginTop() : child.marginBottom(); 579 return isLeftToRightFlow() ? child.marginTop() : child.marginBottom();
576 } 580 }
577 581
578 LayoutUnit LayoutFlexibleBox::flowAwareMarginEndForChild(const LayoutBox& child) const 582 LayoutUnit LayoutFlexibleBox::flowAwareMarginEndForChild(const LayoutBox& child) const
579 { 583 {
580 if (isHorizontalFlow()) 584 if (isHorizontalFlow())
581 return isLeftToRightFlow() ? child.marginRight() : child.marginLeft(); 585 return isLeftToRightFlow() ? child.marginRight() : child.marginLeft();
582 return isLeftToRightFlow() ? child.marginBottom() : child.marginTop(); 586 return isLeftToRightFlow() ? child.marginBottom() : child.marginTop();
583 } 587 }
584 588
585 LayoutUnit LayoutFlexibleBox::flowAwareMarginBeforeForChild(const LayoutBox& chi ld) const 589 LayoutUnit LayoutFlexibleBox::flowAwareMarginBeforeForChild(const LayoutBox& chi ld) const
586 { 590 {
587 switch (transformedWritingMode()) { 591 switch (transformedWritingMode()) {
588 case TopToBottomWritingMode: 592 case TransformedWritingMode::TopToBottomWritingMode:
589 return child.marginTop(); 593 return child.marginTop();
590 case BottomToTopWritingMode: 594 case TransformedWritingMode::BottomToTopWritingMode:
591 return child.marginBottom(); 595 return child.marginBottom();
592 case LeftToRightWritingMode: 596 case TransformedWritingMode::LeftToRightWritingMode:
593 return child.marginLeft(); 597 return child.marginLeft();
594 case RightToLeftWritingMode: 598 case TransformedWritingMode::RightToLeftWritingMode:
595 return child.marginRight(); 599 return child.marginRight();
596 } 600 }
597 ASSERT_NOT_REACHED(); 601 ASSERT_NOT_REACHED();
598 return marginTop(); 602 return marginTop();
599 } 603 }
600 604
601 LayoutUnit LayoutFlexibleBox::crossAxisMarginExtentForChild(const LayoutBox& chi ld) const 605 LayoutUnit LayoutFlexibleBox::crossAxisMarginExtentForChild(const LayoutBox& chi ld) const
602 { 606 {
603 return isHorizontalFlow() ? child.marginHeight() : child.marginWidth(); 607 return isHorizontalFlow() ? child.marginHeight() : child.marginWidth();
604 } 608 }
(...skipping 913 matching lines...) Expand 10 before | Expand all | Expand 10 after
1518 ASSERT(child); 1522 ASSERT(child);
1519 LayoutUnit lineCrossAxisExtent = lineContexts[lineNumber].crossAxisE xtent; 1523 LayoutUnit lineCrossAxisExtent = lineContexts[lineNumber].crossAxisE xtent;
1520 LayoutUnit originalOffset = lineContexts[lineNumber].crossAxisOffset - crossAxisStartEdge; 1524 LayoutUnit originalOffset = lineContexts[lineNumber].crossAxisOffset - crossAxisStartEdge;
1521 LayoutUnit newOffset = contentExtent - originalOffset - lineCrossAxi sExtent; 1525 LayoutUnit newOffset = contentExtent - originalOffset - lineCrossAxi sExtent;
1522 adjustAlignmentForChild(*child, newOffset - originalOffset); 1526 adjustAlignmentForChild(*child, newOffset - originalOffset);
1523 } 1527 }
1524 } 1528 }
1525 } 1529 }
1526 1530
1527 } 1531 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698