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

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

Issue 2614883007: Change computed style enums to be prefixed with 'k'. (Closed)
Patch Set: Rebase on ToT. Created 3 years, 11 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 * This file is part of the layout object implementation for KHTML. 2 * This file is part of the layout object implementation for KHTML.
3 * 3 *
4 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 4 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
5 * (C) 1999 Antti Koivisto (koivisto@kde.org) 5 * (C) 1999 Antti Koivisto (koivisto@kde.org)
6 * Copyright (C) 2003 Apple Computer, Inc. 6 * Copyright (C) 2003 Apple Computer, Inc.
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 25 matching lines...) Expand all
36 #include <algorithm> 36 #include <algorithm>
37 37
38 namespace blink { 38 namespace blink {
39 39
40 class FlexBoxIterator { 40 class FlexBoxIterator {
41 public: 41 public:
42 FlexBoxIterator(LayoutDeprecatedFlexibleBox* parent) 42 FlexBoxIterator(LayoutDeprecatedFlexibleBox* parent)
43 : m_box(parent), m_largestOrdinal(1) { 43 : m_box(parent), m_largestOrdinal(1) {
44 if (m_box->style()->boxOrient() == HORIZONTAL && 44 if (m_box->style()->boxOrient() == HORIZONTAL &&
45 !m_box->style()->isLeftToRightDirection()) 45 !m_box->style()->isLeftToRightDirection())
46 m_forward = m_box->style()->boxDirection() != EBoxDirection::Normal; 46 m_forward = m_box->style()->boxDirection() != EBoxDirection::kNormal;
47 else 47 else
48 m_forward = m_box->style()->boxDirection() == EBoxDirection::Normal; 48 m_forward = m_box->style()->boxDirection() == EBoxDirection::kNormal;
49 if (!m_forward) { 49 if (!m_forward) {
50 // No choice, since we're going backwards, we have to find out the highest 50 // No choice, since we're going backwards, we have to find out the highest
51 // ordinal up front. 51 // ordinal up front.
52 LayoutBox* child = m_box->firstChildBox(); 52 LayoutBox* child = m_box->firstChildBox();
53 while (child) { 53 while (child) {
54 if (child->style()->boxOrdinalGroup() > m_largestOrdinal) 54 if (child->style()->boxOrdinalGroup() > m_largestOrdinal)
55 m_largestOrdinal = child->style()->boxOrdinalGroup(); 55 m_largestOrdinal = child->style()->boxOrdinalGroup();
56 child = child->nextSiblingBox(); 56 child = child->nextSiblingBox();
57 } 57 }
58 } 58 }
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 // (crawling into blocks). 132 // (crawling into blocks).
133 static bool shouldCheckLines(LayoutBlockFlow* blockFlow) { 133 static bool shouldCheckLines(LayoutBlockFlow* blockFlow) {
134 return !blockFlow->isFloatingOrOutOfFlowPositioned() && 134 return !blockFlow->isFloatingOrOutOfFlowPositioned() &&
135 blockFlow->style()->height().isAuto(); 135 blockFlow->style()->height().isAuto();
136 } 136 }
137 137
138 static int getHeightForLineCount(const LayoutBlockFlow* blockFlow, 138 static int getHeightForLineCount(const LayoutBlockFlow* blockFlow,
139 int lineCount, 139 int lineCount,
140 bool includeBottom, 140 bool includeBottom,
141 int& count) { 141 int& count) {
142 if (blockFlow->style()->visibility() != EVisibility::Visible) 142 if (blockFlow->style()->visibility() != EVisibility::kVisible)
143 return -1; 143 return -1;
144 if (blockFlow->childrenInline()) { 144 if (blockFlow->childrenInline()) {
145 for (RootInlineBox* box = blockFlow->firstRootBox(); box; 145 for (RootInlineBox* box = blockFlow->firstRootBox(); box;
146 box = box->nextRootBox()) { 146 box = box->nextRootBox()) {
147 if (++count == lineCount) 147 if (++count == lineCount)
148 return (box->lineBottom() + 148 return (box->lineBottom() +
149 (includeBottom 149 (includeBottom
150 ? (blockFlow->borderBottom() + blockFlow->paddingBottom()) 150 ? (blockFlow->borderBottom() + blockFlow->paddingBottom())
151 : LayoutUnit())) 151 : LayoutUnit()))
152 .toInt(); 152 .toInt();
(...skipping 21 matching lines...) Expand all
174 return (normalFlowChildWithoutLines->location().y() + 174 return (normalFlowChildWithoutLines->location().y() +
175 normalFlowChildWithoutLines->size().height()) 175 normalFlowChildWithoutLines->size().height())
176 .toInt(); 176 .toInt();
177 177
178 return -1; 178 return -1;
179 } 179 }
180 180
181 static RootInlineBox* lineAtIndex(const LayoutBlockFlow* blockFlow, int i) { 181 static RootInlineBox* lineAtIndex(const LayoutBlockFlow* blockFlow, int i) {
182 ASSERT(i >= 0); 182 ASSERT(i >= 0);
183 183
184 if (blockFlow->style()->visibility() != EVisibility::Visible) 184 if (blockFlow->style()->visibility() != EVisibility::kVisible)
185 return nullptr; 185 return nullptr;
186 186
187 if (blockFlow->childrenInline()) { 187 if (blockFlow->childrenInline()) {
188 for (RootInlineBox* box = blockFlow->firstRootBox(); box; 188 for (RootInlineBox* box = blockFlow->firstRootBox(); box;
189 box = box->nextRootBox()) { 189 box = box->nextRootBox()) {
190 if (!i--) 190 if (!i--)
191 return box; 191 return box;
192 } 192 }
193 return nullptr; 193 return nullptr;
194 } 194 }
195 for (LayoutObject* child = blockFlow->firstChild(); child; 195 for (LayoutObject* child = blockFlow->firstChild(); child;
196 child = child->nextSibling()) { 196 child = child->nextSibling()) {
197 if (!child->isLayoutBlockFlow()) 197 if (!child->isLayoutBlockFlow())
198 continue; 198 continue;
199 LayoutBlockFlow* childBlockFlow = toLayoutBlockFlow(child); 199 LayoutBlockFlow* childBlockFlow = toLayoutBlockFlow(child);
200 if (!shouldCheckLines(childBlockFlow)) 200 if (!shouldCheckLines(childBlockFlow))
201 continue; 201 continue;
202 if (RootInlineBox* box = lineAtIndex(childBlockFlow, i)) 202 if (RootInlineBox* box = lineAtIndex(childBlockFlow, i))
203 return box; 203 return box;
204 } 204 }
205 205
206 return nullptr; 206 return nullptr;
207 } 207 }
208 208
209 static int lineCount(const LayoutBlockFlow* blockFlow, 209 static int lineCount(const LayoutBlockFlow* blockFlow,
210 const RootInlineBox* stopRootInlineBox = nullptr, 210 const RootInlineBox* stopRootInlineBox = nullptr,
211 bool* found = nullptr) { 211 bool* found = nullptr) {
212 if (blockFlow->style()->visibility() != EVisibility::Visible) 212 if (blockFlow->style()->visibility() != EVisibility::kVisible)
213 return 0; 213 return 0;
214 int count = 0; 214 int count = 0;
215 if (blockFlow->childrenInline()) { 215 if (blockFlow->childrenInline()) {
216 for (RootInlineBox* box = blockFlow->firstRootBox(); box; 216 for (RootInlineBox* box = blockFlow->firstRootBox(); box;
217 box = box->nextRootBox()) { 217 box = box->nextRootBox()) {
218 count++; 218 count++;
219 if (box == stopRootInlineBox) { 219 if (box == stopRootInlineBox) {
220 if (found) 220 if (found)
221 *found = true; 221 *found = true;
222 break; 222 break;
(...skipping 13 matching lines...) Expand all
236 if (recursiveFound) { 236 if (recursiveFound) {
237 if (found) 237 if (found)
238 *found = true; 238 *found = true;
239 break; 239 break;
240 } 240 }
241 } 241 }
242 return count; 242 return count;
243 } 243 }
244 244
245 static void clearTruncation(LayoutBlockFlow* blockFlow) { 245 static void clearTruncation(LayoutBlockFlow* blockFlow) {
246 if (blockFlow->style()->visibility() != EVisibility::Visible) 246 if (blockFlow->style()->visibility() != EVisibility::kVisible)
247 return; 247 return;
248 if (blockFlow->childrenInline() && blockFlow->hasMarkupTruncation()) { 248 if (blockFlow->childrenInline() && blockFlow->hasMarkupTruncation()) {
249 blockFlow->setHasMarkupTruncation(false); 249 blockFlow->setHasMarkupTruncation(false);
250 for (RootInlineBox* box = blockFlow->firstRootBox(); box; 250 for (RootInlineBox* box = blockFlow->firstRootBox(); box;
251 box = box->nextRootBox()) 251 box = box->nextRootBox())
252 box->clearTruncation(); 252 box->clearTruncation();
253 return; 253 return;
254 } 254 }
255 for (LayoutObject* obj = blockFlow->firstChild(); obj; 255 for (LayoutObject* obj = blockFlow->firstChild(); obj;
256 obj = obj->nextSibling()) { 256 obj = obj->nextSibling()) {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 if (marginLeft.isFixed()) 290 if (marginLeft.isFixed())
291 margin += marginLeft.value(); 291 margin += marginLeft.value();
292 if (marginRight.isFixed()) 292 if (marginRight.isFixed())
293 margin += marginRight.value(); 293 margin += marginRight.value();
294 return margin; 294 return margin;
295 } 295 }
296 296
297 static bool childDoesNotAffectWidthOrFlexing(LayoutObject* child) { 297 static bool childDoesNotAffectWidthOrFlexing(LayoutObject* child) {
298 // Positioned children and collapsed children don't affect the min/max width. 298 // Positioned children and collapsed children don't affect the min/max width.
299 return child->isOutOfFlowPositioned() || 299 return child->isOutOfFlowPositioned() ||
300 child->style()->visibility() == EVisibility::Collapse; 300 child->style()->visibility() == EVisibility::kCollapse;
301 } 301 }
302 302
303 static LayoutUnit contentWidthForChild(LayoutBox* child) { 303 static LayoutUnit contentWidthForChild(LayoutBox* child) {
304 if (child->hasOverrideLogicalContentWidth()) 304 if (child->hasOverrideLogicalContentWidth())
305 return child->overrideLogicalContentWidth(); 305 return child->overrideLogicalContentWidth();
306 return child->logicalWidth() - child->borderAndPaddingLogicalWidth(); 306 return child->logicalWidth() - child->borderAndPaddingLogicalWidth();
307 } 307 }
308 308
309 static LayoutUnit contentHeightForChild(LayoutBox* child) { 309 static LayoutUnit contentHeightForChild(LayoutBox* child) {
310 if (child->hasOverrideLogicalContentHeight()) 310 if (child->hasOverrideLogicalContentHeight())
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
541 childLayer->setStaticInlinePosition(xPos); 541 childLayer->setStaticInlinePosition(xPos);
542 if (childLayer->staticBlockPosition() != yPos) { 542 if (childLayer->staticBlockPosition() != yPos) {
543 childLayer->setStaticBlockPosition(yPos); 543 childLayer->setStaticBlockPosition(yPos);
544 if (child->style()->hasStaticBlockPosition( 544 if (child->style()->hasStaticBlockPosition(
545 style()->isHorizontalWritingMode())) 545 style()->isHorizontalWritingMode()))
546 child->setChildNeedsLayout(MarkOnlyThis); 546 child->setChildNeedsLayout(MarkOnlyThis);
547 } 547 }
548 continue; 548 continue;
549 } 549 }
550 550
551 if (child->style()->visibility() == EVisibility::Collapse) { 551 if (child->style()->visibility() == EVisibility::kCollapse) {
552 // visibility: collapsed children do not participate in our positioning. 552 // visibility: collapsed children do not participate in our positioning.
553 // But we need to lay them down. 553 // But we need to lay them down.
554 child->layoutIfNeeded(); 554 child->layoutIfNeeded();
555 continue; 555 continue;
556 } 556 }
557 557
558 SubtreeLayoutScope layoutScope(*child); 558 SubtreeLayoutScope layoutScope(*child);
559 559
560 // We need to see if this child's height will change, since we make block 560 // We need to see if this child's height will change, since we make block
561 // elements fill the height of a containing box by default. We cannot 561 // elements fill the height of a containing box by default. We cannot
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
665 // If we just couldn't grow/shrink any more, then it's time to 665 // If we just couldn't grow/shrink any more, then it's time to
666 // transition to the next flex group. 666 // transition to the next flex group.
667 groupRemainingSpace = LayoutUnit(); 667 groupRemainingSpace = LayoutUnit();
668 continue; 668 continue;
669 } 669 }
670 670
671 // Now distribute the space to objects. 671 // Now distribute the space to objects.
672 for (LayoutBox* child = iterator.first(); 672 for (LayoutBox* child = iterator.first();
673 child && spaceAvailableThisPass && totalFlex; 673 child && spaceAvailableThisPass && totalFlex;
674 child = iterator.next()) { 674 child = iterator.next()) {
675 if (child->style()->visibility() == EVisibility::Collapse) 675 if (child->style()->visibility() == EVisibility::kCollapse)
676 continue; 676 continue;
677 677
678 if (allowedChildFlex(child, expanding, i)) { 678 if (allowedChildFlex(child, expanding, i)) {
679 LayoutUnit spaceAdd = 679 LayoutUnit spaceAdd =
680 LayoutUnit(spaceAvailableThisPass * 680 LayoutUnit(spaceAvailableThisPass *
681 (child->style()->boxFlex() / totalFlex)); 681 (child->style()->boxFlex() / totalFlex));
682 if (spaceAdd) { 682 if (spaceAdd) {
683 child->setOverrideLogicalContentWidth( 683 child->setOverrideLogicalContentWidth(
684 contentWidthForChild(child) + spaceAdd); 684 contentWidthForChild(child) + spaceAdd);
685 flexingChildren = true; 685 flexingChildren = true;
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
827 continue; 827 continue;
828 } 828 }
829 829
830 SubtreeLayoutScope layoutScope(*child); 830 SubtreeLayoutScope layoutScope(*child);
831 if (!haveLineClamp && 831 if (!haveLineClamp &&
832 (relayoutChildren || (child->isAtomicInlineLevel() && 832 (relayoutChildren || (child->isAtomicInlineLevel() &&
833 (child->style()->width().isPercentOrCalc() || 833 (child->style()->width().isPercentOrCalc() ||
834 child->style()->height().isPercentOrCalc())))) 834 child->style()->height().isPercentOrCalc()))))
835 layoutScope.setChildNeedsLayout(child); 835 layoutScope.setChildNeedsLayout(child);
836 836
837 if (child->style()->visibility() == EVisibility::Collapse) { 837 if (child->style()->visibility() == EVisibility::kCollapse) {
838 // visibility: collapsed children do not participate in our positioning. 838 // visibility: collapsed children do not participate in our positioning.
839 // But we need to lay them down. 839 // But we need to lay them down.
840 child->layoutIfNeeded(); 840 child->layoutIfNeeded();
841 continue; 841 continue;
842 } 842 }
843 843
844 // Compute the child's vertical margins. 844 // Compute the child's vertical margins.
845 child->computeAndSetBlockDirectionMargins(this); 845 child->computeAndSetBlockDirectionMargins(this);
846 846
847 // Add in the child's marginTop to our height. 847 // Add in the child's marginTop to our height.
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
1130 LayoutUnit newHeight( 1130 LayoutUnit newHeight(
1131 getHeightForLineCount(blockChild, numVisibleLines, true, dummyCount)); 1131 getHeightForLineCount(blockChild, numVisibleLines, true, dummyCount));
1132 if (newHeight == child->size().height()) 1132 if (newHeight == child->size().height())
1133 continue; 1133 continue;
1134 1134
1135 child->setOverrideLogicalContentHeight(newHeight - 1135 child->setOverrideLogicalContentHeight(newHeight -
1136 child->borderAndPaddingHeight()); 1136 child->borderAndPaddingHeight());
1137 child->forceChildLayout(); 1137 child->forceChildLayout();
1138 1138
1139 // FIXME: For now don't support RTL. 1139 // FIXME: For now don't support RTL.
1140 if (style()->direction() != TextDirection::Ltr) 1140 if (style()->direction() != TextDirection::kLtr)
1141 continue; 1141 continue;
1142 1142
1143 // Get the last line 1143 // Get the last line
1144 RootInlineBox* lastLine = lineAtIndex(blockChild, lineCount - 1); 1144 RootInlineBox* lastLine = lineAtIndex(blockChild, lineCount - 1);
1145 if (!lastLine) 1145 if (!lastLine)
1146 continue; 1146 continue;
1147 1147
1148 RootInlineBox* lastVisibleLine = 1148 RootInlineBox* lastVisibleLine =
1149 lineAtIndex(blockChild, numVisibleLines - 1); 1149 lineAtIndex(blockChild, numVisibleLines - 1);
1150 if (!lastVisibleLine) 1150 if (!lastVisibleLine)
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
1265 if (minHeight.isFixed() || minHeight.isAuto()) { 1265 if (minHeight.isFixed() || minHeight.isAuto()) {
1266 LayoutUnit minHeight(child->style()->minHeight().value()); 1266 LayoutUnit minHeight(child->style()->minHeight().value());
1267 LayoutUnit height = contentHeightForChild(child); 1267 LayoutUnit height = contentHeightForChild(child);
1268 LayoutUnit allowedShrinkage = (minHeight - height).clampPositiveToZero(); 1268 LayoutUnit allowedShrinkage = (minHeight - height).clampPositiveToZero();
1269 return allowedShrinkage; 1269 return allowedShrinkage;
1270 } 1270 }
1271 return LayoutUnit(); 1271 return LayoutUnit();
1272 } 1272 }
1273 1273
1274 } // namespace blink 1274 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698