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

Side by Side Diff: Source/core/rendering/RootInlineBox.h

Issue 14093017: Add FINAL decorators to the InlineBox class hierarchy. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebased. Created 7 years, 8 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2003, 2006, 2007, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2003, 2006, 2007, 2008 Apple Inc. All rights reserved.
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 19 matching lines...) Expand all
30 class HitTestResult; 30 class HitTestResult;
31 class RenderRegion; 31 class RenderRegion;
32 32
33 struct BidiStatus; 33 struct BidiStatus;
34 struct GapRects; 34 struct GapRects;
35 35
36 class RootInlineBox : public InlineFlowBox { 36 class RootInlineBox : public InlineFlowBox {
37 public: 37 public:
38 explicit RootInlineBox(RenderBlock*); 38 explicit RootInlineBox(RenderBlock*);
39 39
40 virtual void destroy(RenderArena*); 40 virtual void destroy(RenderArena*) FINAL;
41 41
42 virtual bool isRootInlineBox() const { return true; } 42 virtual bool isRootInlineBox() const FINAL { return true; }
43 43
44 void detachEllipsisBox(RenderArena*); 44 void detachEllipsisBox(RenderArena*);
45 45
46 RootInlineBox* nextRootBox() const { return static_cast<RootInlineBox*>(m_ne xtLineBox); } 46 RootInlineBox* nextRootBox() const { return static_cast<RootInlineBox*>(m_ne xtLineBox); }
47 RootInlineBox* prevRootBox() const { return static_cast<RootInlineBox*>(m_pr evLineBox); } 47 RootInlineBox* prevRootBox() const { return static_cast<RootInlineBox*>(m_pr evLineBox); }
48 48
49 virtual void adjustPosition(float dx, float dy); 49 virtual void adjustPosition(float dx, float dy) FINAL;
50 50
51 LayoutUnit lineTop() const { return m_lineTop; } 51 LayoutUnit lineTop() const { return m_lineTop; }
52 LayoutUnit lineBottom() const { return m_lineBottom; } 52 LayoutUnit lineBottom() const { return m_lineBottom; }
53 53
54 LayoutUnit lineTopWithLeading() const { return m_lineTopWithLeading; } 54 LayoutUnit lineTopWithLeading() const { return m_lineTopWithLeading; }
55 LayoutUnit lineBottomWithLeading() const { return m_lineBottomWithLeading; } 55 LayoutUnit lineBottomWithLeading() const { return m_lineBottomWithLeading; }
56 56
57 LayoutUnit paginationStrut() const { return m_fragmentationData ? m_fragment ationData->m_paginationStrut : LayoutUnit(0); } 57 LayoutUnit paginationStrut() const { return m_fragmentationData ? m_fragment ationData->m_paginationStrut : LayoutUnit(0); }
58 void setPaginationStrut(LayoutUnit strut) { ensureLineFragmentationData()->m _paginationStrut = strut; } 58 void setPaginationStrut(LayoutUnit strut) { ensureLineFragmentationData()->m _paginationStrut = strut; }
59 59
(...skipping 17 matching lines...) Expand all
77 77
78 LayoutUnit alignBoxesInBlockDirection(LayoutUnit heightOfBlock, GlyphOverflo wAndFallbackFontsMap&, VerticalPositionCache&); 78 LayoutUnit alignBoxesInBlockDirection(LayoutUnit heightOfBlock, GlyphOverflo wAndFallbackFontsMap&, VerticalPositionCache&);
79 void setLineTopBottomPositions(LayoutUnit top, LayoutUnit bottom, LayoutUnit topWithLeading, LayoutUnit bottomWithLeading) 79 void setLineTopBottomPositions(LayoutUnit top, LayoutUnit bottom, LayoutUnit topWithLeading, LayoutUnit bottomWithLeading)
80 { 80 {
81 m_lineTop = top; 81 m_lineTop = top;
82 m_lineBottom = bottom; 82 m_lineBottom = bottom;
83 m_lineTopWithLeading = topWithLeading; 83 m_lineTopWithLeading = topWithLeading;
84 m_lineBottomWithLeading = bottomWithLeading; 84 m_lineBottomWithLeading = bottomWithLeading;
85 } 85 }
86 86
87 virtual RenderLineBoxList* rendererLineBoxes() const; 87 virtual RenderLineBoxList* rendererLineBoxes() const FINAL;
88 88
89 RenderObject* lineBreakObj() const { return m_lineBreakObj; } 89 RenderObject* lineBreakObj() const { return m_lineBreakObj; }
90 BidiStatus lineBreakBidiStatus() const; 90 BidiStatus lineBreakBidiStatus() const;
91 void setLineBreakInfo(RenderObject*, unsigned breakPos, const BidiStatus&); 91 void setLineBreakInfo(RenderObject*, unsigned breakPos, const BidiStatus&);
92 92
93 unsigned lineBreakPos() const { return m_lineBreakPos; } 93 unsigned lineBreakPos() const { return m_lineBreakPos; }
94 void setLineBreakPos(unsigned p) { m_lineBreakPos = p; } 94 void setLineBreakPos(unsigned p) { m_lineBreakPos = p; }
95 95
96 using InlineBox::endsWithBreak; 96 using InlineBox::endsWithBreak;
97 using InlineBox::setEndsWithBreak; 97 using InlineBox::setEndsWithBreak;
98 98
99 void childRemoved(InlineBox* box); 99 void childRemoved(InlineBox* box);
100 100
101 bool lineCanAccommodateEllipsis(bool ltr, int blockEdge, int lineBoxEdge, in t ellipsisWidth); 101 bool lineCanAccommodateEllipsis(bool ltr, int blockEdge, int lineBoxEdge, in t ellipsisWidth);
102 // Return the truncatedWidth, the width of the truncated text + ellipsis. 102 // Return the truncatedWidth, the width of the truncated text + ellipsis.
103 float placeEllipsis(const AtomicString& ellipsisStr, bool ltr, float blockLe ftEdge, float blockRightEdge, float ellipsisWidth, InlineBox* markupBox = 0); 103 float placeEllipsis(const AtomicString& ellipsisStr, bool ltr, float blockLe ftEdge, float blockRightEdge, float ellipsisWidth, InlineBox* markupBox = 0);
104 // Return the position of the EllipsisBox or -1. 104 // Return the position of the EllipsisBox or -1.
105 virtual float placeEllipsisBox(bool ltr, float blockLeftEdge, float blockRig htEdge, float ellipsisWidth, float &truncatedWidth, bool& foundBox) OVERRIDE; 105 virtual float placeEllipsisBox(bool ltr, float blockLeftEdge, float blockRig htEdge, float ellipsisWidth, float &truncatedWidth, bool& foundBox) OVERRIDE FIN AL;
106 106
107 using InlineBox::hasEllipsisBox; 107 using InlineBox::hasEllipsisBox;
108 EllipsisBox* ellipsisBox() const; 108 EllipsisBox* ellipsisBox() const;
109 109
110 void paintEllipsisBox(PaintInfo&, const LayoutPoint&, LayoutUnit lineTop, La youtUnit lineBottom) const; 110 void paintEllipsisBox(PaintInfo&, const LayoutPoint&, LayoutUnit lineTop, La youtUnit lineBottom) const;
111 111
112 virtual void clearTruncation() OVERRIDE; 112 virtual void clearTruncation() OVERRIDE FINAL;
113 113
114 bool isHyphenated() const; 114 bool isHyphenated() const;
115 115
116 virtual int baselinePosition(FontBaseline baselineType) const; 116 virtual int baselinePosition(FontBaseline baselineType) const FINAL;
117 virtual LayoutUnit lineHeight() const; 117 virtual LayoutUnit lineHeight() const FINAL;
118 118
119 virtual void paint(PaintInfo&, const LayoutPoint&, LayoutUnit lineTop, Layou tUnit lineBottom); 119 virtual void paint(PaintInfo&, const LayoutPoint&, LayoutUnit lineTop, Layou tUnit lineBottom);
120 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, LayoutUnit lineTop, LayoutUnit lineBottom) OVERRIDE; 120 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, LayoutUnit lineTop, LayoutUnit lineBottom) OVERRIDE FINAL;
121 121
122 using InlineBox::hasSelectedChildren; 122 using InlineBox::hasSelectedChildren;
123 using InlineBox::setHasSelectedChildren; 123 using InlineBox::setHasSelectedChildren;
124 124
125 virtual RenderObject::SelectionState selectionState(); 125 virtual RenderObject::SelectionState selectionState() FINAL;
126 InlineBox* firstSelectedBox(); 126 InlineBox* firstSelectedBox();
127 InlineBox* lastSelectedBox(); 127 InlineBox* lastSelectedBox();
128 128
129 GapRects lineSelectionGap(RenderBlock* rootBlock, const LayoutPoint& rootBlo ckPhysicalPosition, const LayoutSize& offsetFromRootBlock, LayoutUnit selTop, La youtUnit selHeight, const PaintInfo*); 129 GapRects lineSelectionGap(RenderBlock* rootBlock, const LayoutPoint& rootBlo ckPhysicalPosition, const LayoutSize& offsetFromRootBlock, LayoutUnit selTop, La youtUnit selHeight, const PaintInfo*);
130 130
131 RenderBlock* block() const; 131 RenderBlock* block() const;
132 132
133 InlineBox* closestLeafChildForPoint(const IntPoint&, bool onlyEditableLeaves ); 133 InlineBox* closestLeafChildForPoint(const IntPoint&, bool onlyEditableLeaves );
134 InlineBox* closestLeafChildForLogicalLeftPosition(int, bool onlyEditableLeav es = false); 134 InlineBox* closestLeafChildForLogicalLeftPosition(int, bool onlyEditableLeav es = false);
135 135
136 void appendFloat(RenderBox* floatingBox) 136 void appendFloat(RenderBox* floatingBox)
137 { 137 {
138 ASSERT(!isDirty()); 138 ASSERT(!isDirty());
139 if (m_floats) 139 if (m_floats)
140 m_floats->append(floatingBox); 140 m_floats->append(floatingBox);
141 else 141 else
142 m_floats= adoptPtr(new Vector<RenderBox*>(1, floatingBox)); 142 m_floats= adoptPtr(new Vector<RenderBox*>(1, floatingBox));
143 } 143 }
144 144
145 Vector<RenderBox*>* floatsPtr() { ASSERT(!isDirty()); return m_floats.get(); } 145 Vector<RenderBox*>* floatsPtr() { ASSERT(!isDirty()); return m_floats.get(); }
146 146
147 virtual void extractLineBoxFromRenderObject(); 147 virtual void extractLineBoxFromRenderObject() FINAL;
148 virtual void attachLineBoxToRenderObject(); 148 virtual void attachLineBoxToRenderObject() FINAL;
149 virtual void removeLineBoxFromRenderObject(); 149 virtual void removeLineBoxFromRenderObject() FINAL;
150 150
151 FontBaseline baselineType() const { return static_cast<FontBaseline>(m_basel ineType); } 151 FontBaseline baselineType() const { return static_cast<FontBaseline>(m_basel ineType); }
152 152
153 bool hasAnnotationsBefore() const { return m_hasAnnotationsBefore; } 153 bool hasAnnotationsBefore() const { return m_hasAnnotationsBefore; }
154 bool hasAnnotationsAfter() const { return m_hasAnnotationsAfter; } 154 bool hasAnnotationsAfter() const { return m_hasAnnotationsAfter; }
155 155
156 LayoutRect paddedLayoutOverflowRect(LayoutUnit endPadding) const; 156 LayoutRect paddedLayoutOverflowRect(LayoutUnit endPadding) const;
157 157
158 void ascentAndDescentForBox(InlineBox*, GlyphOverflowAndFallbackFontsMap&, i nt& ascent, int& descent, bool& affectsAscent, bool& affectsDescent) const; 158 void ascentAndDescentForBox(InlineBox*, GlyphOverflowAndFallbackFontsMap&, i nt& ascent, int& descent, bool& affectsAscent, bool& affectsDescent) const;
159 LayoutUnit verticalPositionForBox(InlineBox*, VerticalPositionCache&); 159 LayoutUnit verticalPositionForBox(InlineBox*, VerticalPositionCache&);
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 OwnPtr<LineFragmentationData> m_fragmentationData; 249 OwnPtr<LineFragmentationData> m_fragmentationData;
250 250
251 // Floats hanging off the line are pushed into this vector during layout. It is only 251 // Floats hanging off the line are pushed into this vector during layout. It is only
252 // good for as long as the line has not been marked dirty. 252 // good for as long as the line has not been marked dirty.
253 OwnPtr<Vector<RenderBox*> > m_floats; 253 OwnPtr<Vector<RenderBox*> > m_floats;
254 }; 254 };
255 255
256 } // namespace WebCore 256 } // namespace WebCore
257 257
258 #endif // RootInlineBox_h 258 #endif // RootInlineBox_h
OLDNEW
« no previous file with comments | « Source/core/rendering/InlineTextBox.h ('k') | Source/core/rendering/TrailingFloatsRootInlineBox.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698