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

Side by Side Diff: Source/core/rendering/RenderInline.cpp

Issue 940373003: Rename RenderText to LayoutText (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Merge w/HEAD again Created 5 years, 10 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) 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 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. 4 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 dirtyLineBoxes(false); 252 dirtyLineBoxes(false);
253 setAlwaysCreateLineBoxes(); 253 setAlwaysCreateLineBoxes();
254 } 254 }
255 } 255 }
256 256
257 LayoutRect RenderInline::localCaretRect(InlineBox* inlineBox, int, LayoutUnit* e xtraWidthToEndOfLine) 257 LayoutRect RenderInline::localCaretRect(InlineBox* inlineBox, int, LayoutUnit* e xtraWidthToEndOfLine)
258 { 258 {
259 if (firstChild()) { 259 if (firstChild()) {
260 // This condition is possible if the RenderInline is at an editing bound ary, 260 // This condition is possible if the RenderInline is at an editing bound ary,
261 // i.e. the VisiblePosition is: 261 // i.e. the VisiblePosition is:
262 // <RenderInline editingBoundary=true>|<RenderText> </RenderText></Ren derInline> 262 // <RenderInline editingBoundary=true>|<LayoutText> </LayoutText></Ren derInline>
263 // FIXME: need to figure out how to make this return a valid rect, note that 263 // FIXME: need to figure out how to make this return a valid rect, note that
264 // there are no line boxes created in the above case. 264 // there are no line boxes created in the above case.
265 return LayoutRect(); 265 return LayoutRect();
266 } 266 }
267 267
268 ASSERT_UNUSED(inlineBox, !inlineBox); 268 ASSERT_UNUSED(inlineBox, !inlineBox);
269 269
270 if (extraWidthToEndOfLine) 270 if (extraWidthToEndOfLine)
271 *extraWidthToEndOfLine = 0; 271 *extraWidthToEndOfLine = 0;
272 272
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
611 childLine->logicalWidth() + childLine->marginLogical Left() + childLine->marginLogicalRight(), 611 childLine->logicalWidth() + childLine->marginLogical Left() + childLine->marginLogicalRight(),
612 logicalHeight)); 612 logicalHeight));
613 else 613 else
614 yield(FloatRect(logicalTop, 614 yield(FloatRect(logicalTop,
615 childLine->y() - childLine->marginLogicalLeft(), 615 childLine->y() - childLine->marginLogicalLeft(),
616 logicalHeight, 616 logicalHeight,
617 childLine->logicalWidth() + childLine->marginLogical Left() + childLine->marginLogicalRight())); 617 childLine->logicalWidth() + childLine->marginLogical Left() + childLine->marginLogicalRight()));
618 } 618 }
619 } 619 }
620 } else if (curr->isText()) { 620 } else if (curr->isText()) {
621 RenderText* currText = toRenderText(curr); 621 LayoutText* currText = toLayoutText(curr);
622 for (InlineTextBox* childText = currText->firstTextBox(); childText; childText = childText->nextTextBox()) { 622 for (InlineTextBox* childText = currText->firstTextBox(); childText; childText = childText->nextTextBox()) {
623 RootInlineBox& rootBox = childText->root(); 623 RootInlineBox& rootBox = childText->root();
624 int logicalTop = rootBox.logicalTop() + (rootBox.renderer().styl e(rootBox.isFirstLineStyle())->font().fontMetrics().ascent() - container->style( rootBox.isFirstLineStyle())->font().fontMetrics().ascent()); 624 int logicalTop = rootBox.logicalTop() + (rootBox.renderer().styl e(rootBox.isFirstLineStyle())->font().fontMetrics().ascent() - container->style( rootBox.isFirstLineStyle())->font().fontMetrics().ascent());
625 int logicalHeight = container->style(rootBox.isFirstLineStyle()) ->font().fontMetrics().height(); 625 int logicalHeight = container->style(rootBox.isFirstLineStyle()) ->font().fontMetrics().height();
626 if (isHorizontal) 626 if (isHorizontal)
627 yield(FloatRect(childText->x(), logicalTop, childText->logic alWidth(), logicalHeight)); 627 yield(FloatRect(childText->x(), logicalTop, childText->logic alWidth(), logicalHeight));
628 else 628 else
629 yield(FloatRect(logicalTop, childText->y(), logicalHeight, c hildText->logicalWidth())); 629 yield(FloatRect(logicalTop, childText->y(), logicalHeight, c hildText->logicalWidth()));
630 } 630 }
631 } 631 }
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
917 // We want to get the margin box in the inline direction, and then use o ur font ascent/descent in the block 917 // We want to get the margin box in the inline direction, and then use o ur font ascent/descent in the block
918 // direction (aligned to the root box's baseline). 918 // direction (aligned to the root box's baseline).
919 if (curr->isBox()) 919 if (curr->isBox())
920 return toLayoutBox(curr)->inlineBoxWrapper(); 920 return toLayoutBox(curr)->inlineBoxWrapper();
921 if (curr->isRenderInline()) { 921 if (curr->isRenderInline()) {
922 RenderInline* currInline = toRenderInline(curr); 922 RenderInline* currInline = toRenderInline(curr);
923 InlineBox* result = currInline->firstLineBoxIncludingCulling(); 923 InlineBox* result = currInline->firstLineBoxIncludingCulling();
924 if (result) 924 if (result)
925 return result; 925 return result;
926 } else if (curr->isText()) { 926 } else if (curr->isText()) {
927 RenderText* currText = toRenderText(curr); 927 LayoutText* currText = toLayoutText(curr);
928 if (currText->firstTextBox()) 928 if (currText->firstTextBox())
929 return currText->firstTextBox(); 929 return currText->firstTextBox();
930 } 930 }
931 } 931 }
932 return 0; 932 return 0;
933 } 933 }
934 934
935 InlineBox* RenderInline::culledInlineLastLineBox() const 935 InlineBox* RenderInline::culledInlineLastLineBox() const
936 { 936 {
937 for (LayoutObject* curr = lastChild(); curr; curr = curr->previousSibling()) { 937 for (LayoutObject* curr = lastChild(); curr; curr = curr->previousSibling()) {
938 if (curr->isFloatingOrOutOfFlowPositioned()) 938 if (curr->isFloatingOrOutOfFlowPositioned())
939 continue; 939 continue;
940 940
941 // We want to get the margin box in the inline direction, and then use o ur font ascent/descent in the block 941 // We want to get the margin box in the inline direction, and then use o ur font ascent/descent in the block
942 // direction (aligned to the root box's baseline). 942 // direction (aligned to the root box's baseline).
943 if (curr->isBox()) 943 if (curr->isBox())
944 return toLayoutBox(curr)->inlineBoxWrapper(); 944 return toLayoutBox(curr)->inlineBoxWrapper();
945 if (curr->isRenderInline()) { 945 if (curr->isRenderInline()) {
946 RenderInline* currInline = toRenderInline(curr); 946 RenderInline* currInline = toRenderInline(curr);
947 InlineBox* result = currInline->lastLineBoxIncludingCulling(); 947 InlineBox* result = currInline->lastLineBoxIncludingCulling();
948 if (result) 948 if (result)
949 return result; 949 return result;
950 } else if (curr->isText()) { 950 } else if (curr->isText()) {
951 RenderText* currText = toRenderText(curr); 951 LayoutText* currText = toLayoutText(curr);
952 if (currText->lastTextBox()) 952 if (currText->lastTextBox())
953 return currText->lastTextBox(); 953 return currText->lastTextBox();
954 } 954 }
955 } 955 }
956 return 0; 956 return 0;
957 } 957 }
958 958
959 LayoutRect RenderInline::culledInlineVisualOverflowBoundingBox() const 959 LayoutRect RenderInline::culledInlineVisualOverflowBoundingBox() const
960 { 960 {
961 FloatRect floatResult; 961 FloatRect floatResult;
(...skipping 21 matching lines...) Expand all
983 } else if (curr->isRenderInline()) { 983 } else if (curr->isRenderInline()) {
984 // If the child doesn't need line boxes either, then we can recur. 984 // If the child doesn't need line boxes either, then we can recur.
985 RenderInline* currInline = toRenderInline(curr); 985 RenderInline* currInline = toRenderInline(curr);
986 if (!currInline->alwaysCreateLineBoxes()) 986 if (!currInline->alwaysCreateLineBoxes())
987 result.uniteIfNonZero(currInline->culledInlineVisualOverflowBoun dingBox()); 987 result.uniteIfNonZero(currInline->culledInlineVisualOverflowBoun dingBox());
988 else if (!currInline->hasSelfPaintingLayer()) 988 else if (!currInline->hasSelfPaintingLayer())
989 result.uniteIfNonZero(currInline->linesVisualOverflowBoundingBox ()); 989 result.uniteIfNonZero(currInline->linesVisualOverflowBoundingBox ());
990 } else if (curr->isText()) { 990 } else if (curr->isText()) {
991 // FIXME; Overflow from text boxes is lost. We will need to cache th is information in 991 // FIXME; Overflow from text boxes is lost. We will need to cache th is information in
992 // InlineTextBoxes. 992 // InlineTextBoxes.
993 RenderText* currText = toRenderText(curr); 993 LayoutText* currText = toLayoutText(curr);
994 result.uniteIfNonZero(currText->linesVisualOverflowBoundingBox()); 994 result.uniteIfNonZero(currText->linesVisualOverflowBoundingBox());
995 } 995 }
996 } 996 }
997 return result; 997 return result;
998 } 998 }
999 999
1000 LayoutRect RenderInline::linesVisualOverflowBoundingBox() const 1000 LayoutRect RenderInline::linesVisualOverflowBoundingBox() const
1001 { 1001 {
1002 if (!alwaysCreateLineBoxes()) 1002 if (!alwaysCreateLineBoxes())
1003 return culledInlineVisualOverflowBoundingBox(); 1003 return culledInlineVisualOverflowBoundingBox();
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
1278 if (curr->isBox() && !curr->needsLayout()) { 1278 if (curr->isBox() && !curr->needsLayout()) {
1279 LayoutBox* currBox = toLayoutBox(curr); 1279 LayoutBox* currBox = toLayoutBox(curr);
1280 if (currBox->inlineBoxWrapper()) 1280 if (currBox->inlineBoxWrapper())
1281 currBox->inlineBoxWrapper()->root().markDirty(); 1281 currBox->inlineBoxWrapper()->root().markDirty();
1282 } else if (!curr->selfNeedsLayout()) { 1282 } else if (!curr->selfNeedsLayout()) {
1283 if (curr->isRenderInline()) { 1283 if (curr->isRenderInline()) {
1284 RenderInline* currInline = toRenderInline(curr); 1284 RenderInline* currInline = toRenderInline(curr);
1285 for (InlineFlowBox* childLine = currInline->firstLineBox(); childLine; childLine = childLine->nextLineBox()) 1285 for (InlineFlowBox* childLine = currInline->firstLineBox(); childLine; childLine = childLine->nextLineBox())
1286 childLine->root().markDirty(); 1286 childLine->root().markDirty();
1287 } else if (curr->isText()) { 1287 } else if (curr->isText()) {
1288 RenderText* currText = toRenderText(curr); 1288 LayoutText* currText = toLayoutText(curr);
1289 for (InlineTextBox* childText = currText->firstTextBox(); ch ildText; childText = childText->nextTextBox()) 1289 for (InlineTextBox* childText = currText->firstTextBox(); ch ildText; childText = childText->nextTextBox())
1290 childText->root().markDirty(); 1290 childText->root().markDirty();
1291 } 1291 }
1292 } 1292 }
1293 } 1293 }
1294 } else 1294 } else
1295 m_lineBoxes.dirtyLineBoxes(); 1295 m_lineBoxes.dirtyLineBoxes();
1296 } 1296 }
1297 1297
1298 InlineFlowBox* RenderInline::createInlineFlowBox() 1298 InlineFlowBox* RenderInline::createInlineFlowBox()
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
1452 } 1452 }
1453 1453
1454 void RenderInline::invalidateDisplayItemClients(DisplayItemList* displayItemList ) const 1454 void RenderInline::invalidateDisplayItemClients(DisplayItemList* displayItemList ) const
1455 { 1455 {
1456 LayoutBoxModelObject::invalidateDisplayItemClients(displayItemList); 1456 LayoutBoxModelObject::invalidateDisplayItemClients(displayItemList);
1457 for (InlineFlowBox* box = firstLineBox(); box; box = box->nextLineBox()) 1457 for (InlineFlowBox* box = firstLineBox(); box; box = box->nextLineBox())
1458 displayItemList->invalidate(box->displayItemClient()); 1458 displayItemList->invalidate(box->displayItemClient());
1459 } 1459 }
1460 1460
1461 } // namespace blink 1461 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698