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/layout/LayoutBox.cpp

Issue 2555923002: Changed TextDirection to an enum class and renamed its members (Closed)
Patch Set: Rebase after reopen 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 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) 4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com)
5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com)
6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc.
7 * All rights reserved. 7 * All rights reserved.
8 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. 8 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved.
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 3689 matching lines...) Expand 10 before | Expand all | Expand 10 after
3700 LayoutUnit containerLogicalWidth) { 3700 LayoutUnit containerLogicalWidth) {
3701 if (!logicalLeft.isAuto() || !logicalRight.isAuto()) 3701 if (!logicalLeft.isAuto() || !logicalRight.isAuto())
3702 return; 3702 return;
3703 3703
3704 // For multicol we also need to keep track of the block position, since that 3704 // For multicol we also need to keep track of the block position, since that
3705 // determines which column we're in and thus affects the inline position. 3705 // determines which column we're in and thus affects the inline position.
3706 LayoutUnit staticBlockPosition = child->layer()->staticBlockPosition(); 3706 LayoutUnit staticBlockPosition = child->layer()->staticBlockPosition();
3707 3707
3708 // FIXME: The static distance computation has not been patched for mixed 3708 // FIXME: The static distance computation has not been patched for mixed
3709 // writing modes yet. 3709 // writing modes yet.
3710 if (child->parent()->style()->direction() == LTR) { 3710 if (child->parent()->style()->direction() == TextDirection::Ltr) {
3711 LayoutUnit staticPosition = child->layer()->staticInlinePosition() - 3711 LayoutUnit staticPosition = child->layer()->staticInlinePosition() -
3712 containerBlock->borderLogicalLeft(); 3712 containerBlock->borderLogicalLeft();
3713 for (LayoutObject* curr = child->parent(); curr && curr != containerBlock; 3713 for (LayoutObject* curr = child->parent(); curr && curr != containerBlock;
3714 curr = curr->container()) { 3714 curr = curr->container()) {
3715 if (curr->isBox()) { 3715 if (curr->isBox()) {
3716 staticPosition += toLayoutBox(curr)->logicalLeft(); 3716 staticPosition += toLayoutBox(curr)->logicalLeft();
3717 if (toLayoutBox(curr)->isInFlowPositioned()) 3717 if (toLayoutBox(curr)->isInFlowPositioned())
3718 staticPosition += 3718 staticPosition +=
3719 toLayoutBox(curr)->offsetForInFlowPosition().width(); 3719 toLayoutBox(curr)->offsetForInFlowPosition().width();
3720 if (curr->isInsideFlowThread()) 3720 if (curr->isInsideFlowThread())
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
3998 if (marginLogicalLeft.isAuto() && marginLogicalRight.isAuto()) { 3998 if (marginLogicalLeft.isAuto() && marginLogicalRight.isAuto()) {
3999 // Both margins auto, solve for equality 3999 // Both margins auto, solve for equality
4000 if (availableSpace >= 0) { 4000 if (availableSpace >= 0) {
4001 marginLogicalLeftValue = availableSpace / 2; // split the difference 4001 marginLogicalLeftValue = availableSpace / 2; // split the difference
4002 marginLogicalRightValue = 4002 marginLogicalRightValue =
4003 availableSpace - 4003 availableSpace -
4004 marginLogicalLeftValue; // account for odd valued differences 4004 marginLogicalLeftValue; // account for odd valued differences
4005 } else { 4005 } else {
4006 // Use the containing block's direction rather than the parent block's 4006 // Use the containing block's direction rather than the parent block's
4007 // per CSS 2.1 reference test abspos-non-replaced-width-margin-000. 4007 // per CSS 2.1 reference test abspos-non-replaced-width-margin-000.
4008 if (containerDirection == LTR) { 4008 if (containerDirection == TextDirection::Ltr) {
4009 marginLogicalLeftValue = LayoutUnit(); 4009 marginLogicalLeftValue = LayoutUnit();
4010 marginLogicalRightValue = availableSpace; // will be negative 4010 marginLogicalRightValue = availableSpace; // will be negative
4011 } else { 4011 } else {
4012 marginLogicalLeftValue = availableSpace; // will be negative 4012 marginLogicalLeftValue = availableSpace; // will be negative
4013 marginLogicalRightValue = LayoutUnit(); 4013 marginLogicalRightValue = LayoutUnit();
4014 } 4014 }
4015 } 4015 }
4016 } else if (marginLogicalLeft.isAuto()) { 4016 } else if (marginLogicalLeft.isAuto()) {
4017 // Solve for left margin 4017 // Solve for left margin
4018 marginLogicalRightValue = 4018 marginLogicalRightValue =
4019 valueForLength(marginLogicalRight, containerRelativeLogicalWidth); 4019 valueForLength(marginLogicalRight, containerRelativeLogicalWidth);
4020 marginLogicalLeftValue = availableSpace - marginLogicalRightValue; 4020 marginLogicalLeftValue = availableSpace - marginLogicalRightValue;
4021 } else if (marginLogicalRight.isAuto()) { 4021 } else if (marginLogicalRight.isAuto()) {
4022 // Solve for right margin 4022 // Solve for right margin
4023 marginLogicalLeftValue = 4023 marginLogicalLeftValue =
4024 valueForLength(marginLogicalLeft, containerRelativeLogicalWidth); 4024 valueForLength(marginLogicalLeft, containerRelativeLogicalWidth);
4025 marginLogicalRightValue = availableSpace - marginLogicalLeftValue; 4025 marginLogicalRightValue = availableSpace - marginLogicalLeftValue;
4026 } else { 4026 } else {
4027 // Over-constrained, solve for left if direction is RTL 4027 // Over-constrained, solve for left if direction is RTL
4028 marginLogicalLeftValue = 4028 marginLogicalLeftValue =
4029 valueForLength(marginLogicalLeft, containerRelativeLogicalWidth); 4029 valueForLength(marginLogicalLeft, containerRelativeLogicalWidth);
4030 marginLogicalRightValue = 4030 marginLogicalRightValue =
4031 valueForLength(marginLogicalRight, containerRelativeLogicalWidth); 4031 valueForLength(marginLogicalRight, containerRelativeLogicalWidth);
4032 4032
4033 // Use the containing block's direction rather than the parent block's 4033 // Use the containing block's direction rather than the parent block's
4034 // per CSS 2.1 reference test abspos-non-replaced-width-margin-000. 4034 // per CSS 2.1 reference test abspos-non-replaced-width-margin-000.
4035 if (containerDirection == RTL) 4035 if (containerDirection == TextDirection::Rtl)
4036 logicalLeftValue = (availableSpace + logicalLeftValue) - 4036 logicalLeftValue = (availableSpace + logicalLeftValue) -
4037 marginLogicalLeftValue - marginLogicalRightValue; 4037 marginLogicalLeftValue - marginLogicalRightValue;
4038 } 4038 }
4039 } else { 4039 } else {
4040 // ------------------------------------------------------------------------- 4040 // -------------------------------------------------------------------------
4041 // Otherwise, set 'auto' values for 'margin-left' and 'margin-right' 4041 // Otherwise, set 'auto' values for 'margin-left' and 'margin-right'
4042 // to 0, and pick the one of the following six rules that applies. 4042 // to 0, and pick the one of the following six rules that applies.
4043 // 4043 //
4044 // 1. 'left' and 'width' are 'auto' and 'right' is not 'auto', then the 4044 // 1. 'left' and 'width' are 'auto' and 'right' is not 'auto', then the
4045 // width is shrink-to-fit. Then solve for 'left' 4045 // width is shrink-to-fit. Then solve for 'left'
(...skipping 1614 matching lines...) Expand 10 before | Expand all | Expand 10 after
5660 block->adjustChildDebugRect(rect); 5660 block->adjustChildDebugRect(rect);
5661 5661
5662 return rect; 5662 return rect;
5663 } 5663 }
5664 5664
5665 bool LayoutBox::shouldClipOverflow() const { 5665 bool LayoutBox::shouldClipOverflow() const {
5666 return hasOverflowClip() || styleRef().containsPaint() || hasControlClip(); 5666 return hasOverflowClip() || styleRef().containsPaint() || hasControlClip();
5667 } 5667 }
5668 5668
5669 } // namespace blink 5669 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698