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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutBlock.h

Issue 1993943002: Move m_lineBoxes and its getters down to LayoutBlockFlow. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/layout/LayoutBlock.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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) 2007 David Smith (catfish.man@gmail.com) 4 * (C) 2007 David Smith (catfish.man@gmail.com)
5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All r ights reserved. 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All r ights reserved.
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
11 * 11 *
12 * This library is distributed in the hope that it will be useful, 12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Library General Public License for more details. 15 * Library General Public License for more details.
16 * 16 *
17 * You should have received a copy of the GNU Library General Public License 17 * You should have received a copy of the GNU Library General Public License
18 * along with this library; see the file COPYING.LIB. If not, write to 18 * along with this library; see the file COPYING.LIB. If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 * Boston, MA 02110-1301, USA. 20 * Boston, MA 02110-1301, USA.
21 */ 21 */
22 22
23 #ifndef LayoutBlock_h 23 #ifndef LayoutBlock_h
24 #define LayoutBlock_h 24 #define LayoutBlock_h
25 25
26 #include "core/CoreExport.h" 26 #include "core/CoreExport.h"
27 #include "core/layout/FloatingObjects.h" 27 #include "core/layout/FloatingObjects.h"
28 #include "core/layout/GapRects.h" 28 #include "core/layout/GapRects.h"
29 #include "core/layout/LayoutBox.h" 29 #include "core/layout/LayoutBox.h"
30 #include "core/layout/api/LineLayoutItem.h"
31 #include "core/layout/line/LineBoxList.h"
32 #include "core/layout/line/RootInlineBox.h"
33 #include "core/style/ShapeValue.h" 30 #include "core/style/ShapeValue.h"
34 #include "platform/text/TextBreakIterator.h" 31 #include "platform/text/TextBreakIterator.h"
35 #include "wtf/ListHashSet.h" 32 #include "wtf/ListHashSet.h"
36 #include "wtf/OwnPtr.h" 33 #include "wtf/OwnPtr.h"
37 34
38 namespace blink { 35 namespace blink {
39 36
40 class LineLayoutState; 37 class LineLayoutState;
41 struct PaintInfo; 38 struct PaintInfo;
42 class LayoutInline; 39 class LayoutInline;
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 LayoutObjectChildList* children() { return &m_children; } 122 LayoutObjectChildList* children() { return &m_children; }
126 123
127 // These two functions are overridden for inline-block. 124 // These two functions are overridden for inline-block.
128 LayoutUnit lineHeight(bool firstLine, LineDirectionMode, LinePositionMode = PositionOnContainingLine) const final; 125 LayoutUnit lineHeight(bool firstLine, LineDirectionMode, LinePositionMode = PositionOnContainingLine) const final;
129 int baselinePosition(FontBaseline, bool firstLine, LineDirectionMode, LinePo sitionMode = PositionOnContainingLine) const override; 126 int baselinePosition(FontBaseline, bool firstLine, LineDirectionMode, LinePo sitionMode = PositionOnContainingLine) const override;
130 127
131 LayoutUnit minLineHeightForReplacedObject(bool isFirstLine, LayoutUnit repla cedHeight) const; 128 LayoutUnit minLineHeightForReplacedObject(bool isFirstLine, LayoutUnit repla cedHeight) const;
132 129
133 bool createsNewFormattingContext() const; 130 bool createsNewFormattingContext() const;
134 131
135 const LineBoxList& lineBoxes() const { return m_lineBoxes; }
136 LineBoxList* lineBoxes() { return &m_lineBoxes; }
137
138 const char* name() const override; 132 const char* name() const override;
139 133
140 protected: 134 protected:
141 InlineFlowBox* firstLineBox() const { return m_lineBoxes.firstLineBox(); }
142 InlineFlowBox* lastLineBox() const { return m_lineBoxes.lastLineBox(); }
143
144 RootInlineBox* firstRootBox() const { return static_cast<RootInlineBox*>(fir stLineBox()); }
145 RootInlineBox* lastRootBox() const { return static_cast<RootInlineBox*>(last LineBox()); }
146
147 // Insert a child correctly into the tree when |beforeDescendant| isn't a di rect child of 135 // Insert a child correctly into the tree when |beforeDescendant| isn't a di rect child of
148 // |this|. This happens e.g. when there's an anonymous block child of |this| and 136 // |this|. This happens e.g. when there's an anonymous block child of |this| and
149 // |beforeDescendant| has been reparented into that one. Such things are inv isible to the DOM, 137 // |beforeDescendant| has been reparented into that one. Such things are inv isible to the DOM,
150 // and addChild() is typically called with the DOM tree (and not the layout tree) in mind. 138 // and addChild() is typically called with the DOM tree (and not the layout tree) in mind.
151 void addChildBeforeDescendant(LayoutObject* newChild, LayoutObject* beforeDe scendant); 139 void addChildBeforeDescendant(LayoutObject* newChild, LayoutObject* beforeDe scendant);
152 140
153 public: 141 public:
154 // FIXME-BLOCKFLOW: Remove virtualizaion when all callers have moved to Layo utBlockFlow 142 // FIXME-BLOCKFLOW: Remove virtualizaion when all callers have moved to Layo utBlockFlow
155 virtual void deleteLineBoxTree(); 143 virtual void deleteLineBoxTree();
156 144
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 430
443 // Adjust from painting offsets to the local coords of this layoutObject 431 // Adjust from painting offsets to the local coords of this layoutObject
444 void offsetForContents(LayoutPoint&) const; 432 void offsetForContents(LayoutPoint&) const;
445 433
446 PositionWithAffinity positionForPointRespectingEditingBoundaries(LineLayoutB ox child, const LayoutPoint& pointInParentCoordinates); 434 PositionWithAffinity positionForPointRespectingEditingBoundaries(LineLayoutB ox child, const LayoutPoint& pointInParentCoordinates);
447 PositionWithAffinity positionForPointIfOutsideAtomicInlineLevel(const Layout Point&); 435 PositionWithAffinity positionForPointIfOutsideAtomicInlineLevel(const Layout Point&);
448 436
449 virtual bool updateLogicalWidthAndColumnWidth(); 437 virtual bool updateLogicalWidthAndColumnWidth();
450 438
451 LayoutObjectChildList m_children; 439 LayoutObjectChildList m_children;
452 LineBoxList m_lineBoxes; // All of the root line boxes created for this bloc k flow. For example, <div>Hello<br>world.</div> will have two total lines for t he <div>.
453 440
454 unsigned m_hasMarginBeforeQuirk : 1; // Note these quirk values can't be put in LayoutBlockRareData since they are set too frequently. 441 unsigned m_hasMarginBeforeQuirk : 1; // Note these quirk values can't be put in LayoutBlockRareData since they are set too frequently.
455 unsigned m_hasMarginAfterQuirk : 1; 442 unsigned m_hasMarginAfterQuirk : 1;
456 unsigned m_beingDestroyed : 1; 443 unsigned m_beingDestroyed : 1;
457 unsigned m_hasMarkupTruncation : 1; 444 unsigned m_hasMarkupTruncation : 1;
458 unsigned m_widthAvailableToChildrenChanged : 1; 445 unsigned m_widthAvailableToChildrenChanged : 1;
459 unsigned m_heightAvailableToChildrenChanged : 1; 446 unsigned m_heightAvailableToChildrenChanged : 1;
460 unsigned m_isSelfCollapsing : 1; // True if margin-before and margin-after a re adjoining. 447 unsigned m_isSelfCollapsing : 1; // True if margin-before and margin-after a re adjoining.
461 unsigned m_descendantsWithFloatsMarkedForLayout : 1; 448 unsigned m_descendantsWithFloatsMarkedForLayout : 1;
462 449
463 unsigned m_hasPositionedObjects : 1; 450 unsigned m_hasPositionedObjects : 1;
464 unsigned m_hasPercentHeightDescendants : 1; 451 unsigned m_hasPercentHeightDescendants : 1;
465 452
466 // FIXME: This is temporary as we move code that accesses block flow 453 // FIXME: This is temporary as we move code that accesses block flow
467 // member variables out of LayoutBlock and into LayoutBlockFlow. 454 // member variables out of LayoutBlock and into LayoutBlockFlow.
468 friend class LayoutBlockFlow; 455 friend class LayoutBlockFlow;
469 }; 456 };
470 457
471 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutBlock, isLayoutBlock()); 458 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutBlock, isLayoutBlock());
472 459
473 } // namespace blink 460 } // namespace blink
474 461
475 #endif // LayoutBlock_h 462 #endif // LayoutBlock_h
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/layout/LayoutBlock.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698