OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2003, 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. | 2 * Copyright (C) 2003, 2004, 2005, 2006, 2007 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 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 #endif | 73 #endif |
74 | 74 |
75 InlineFlowBox* prevLineBox() const { return m_prevLineBox; } | 75 InlineFlowBox* prevLineBox() const { return m_prevLineBox; } |
76 InlineFlowBox* nextLineBox() const { return m_nextLineBox; } | 76 InlineFlowBox* nextLineBox() const { return m_nextLineBox; } |
77 void setNextLineBox(InlineFlowBox* n) { m_nextLineBox = n; } | 77 void setNextLineBox(InlineFlowBox* n) { m_nextLineBox = n; } |
78 void setPreviousLineBox(InlineFlowBox* p) { m_prevLineBox = p; } | 78 void setPreviousLineBox(InlineFlowBox* p) { m_prevLineBox = p; } |
79 | 79 |
80 InlineBox* firstChild() const { checkConsistency(); return m_firstChild; } | 80 InlineBox* firstChild() const { checkConsistency(); return m_firstChild; } |
81 InlineBox* lastChild() const { checkConsistency(); return m_lastChild; } | 81 InlineBox* lastChild() const { checkConsistency(); return m_lastChild; } |
82 | 82 |
83 virtual bool isLeaf() const { return false; } | 83 virtual bool isLeaf() const FINAL { return false; } |
84 | 84 |
85 InlineBox* firstLeafChild() const; | 85 InlineBox* firstLeafChild() const; |
86 InlineBox* lastLeafChild() const; | 86 InlineBox* lastLeafChild() const; |
87 | 87 |
88 typedef void (*CustomInlineBoxRangeReverse)(void* userData, Vector<InlineBox
*>::iterator first, Vector<InlineBox*>::iterator last); | 88 typedef void (*CustomInlineBoxRangeReverse)(void* userData, Vector<InlineBox
*>::iterator first, Vector<InlineBox*>::iterator last); |
89 void collectLeafBoxesInLogicalOrder(Vector<InlineBox*>&, CustomInlineBoxRang
eReverse customReverseImplementation = 0, void* userData = 0) const; | 89 void collectLeafBoxesInLogicalOrder(Vector<InlineBox*>&, CustomInlineBoxRang
eReverse customReverseImplementation = 0, void* userData = 0) const; |
90 | 90 |
91 virtual void setConstructed() | 91 virtual void setConstructed() FINAL |
92 { | 92 { |
93 InlineBox::setConstructed(); | 93 InlineBox::setConstructed(); |
94 for (InlineBox* child = firstChild(); child; child = child->nextOnLine()
) | 94 for (InlineBox* child = firstChild(); child; child = child->nextOnLine()
) |
95 child->setConstructed(); | 95 child->setConstructed(); |
96 } | 96 } |
97 | 97 |
98 void addToLine(InlineBox* child); | 98 void addToLine(InlineBox* child); |
99 virtual void deleteLine(RenderArena*); | 99 virtual void deleteLine(RenderArena*) FINAL; |
100 virtual void extractLine(); | 100 virtual void extractLine() FINAL; |
101 virtual void attachLine(); | 101 virtual void attachLine() FINAL; |
102 virtual void adjustPosition(float dx, float dy); | 102 virtual void adjustPosition(float dx, float dy); |
103 | 103 |
104 virtual void extractLineBoxFromRenderObject(); | 104 virtual void extractLineBoxFromRenderObject(); |
105 virtual void attachLineBoxToRenderObject(); | 105 virtual void attachLineBoxToRenderObject(); |
106 virtual void removeLineBoxFromRenderObject(); | 106 virtual void removeLineBoxFromRenderObject(); |
107 | 107 |
108 virtual void clearTruncation() OVERRIDE; | 108 virtual void clearTruncation() OVERRIDE; |
109 | 109 |
110 IntRect roundedFrameRect() const; | 110 IntRect roundedFrameRect() const; |
111 | 111 |
112 virtual void paintBoxDecorations(PaintInfo&, const LayoutPoint&); | 112 virtual void paintBoxDecorations(PaintInfo&, const LayoutPoint&) FINAL; |
113 virtual void paintMask(PaintInfo&, const LayoutPoint&); | 113 virtual void paintMask(PaintInfo&, const LayoutPoint&) FINAL; |
114 void paintFillLayers(const PaintInfo&, const Color&, const FillLayer*, const
LayoutRect&, CompositeOperator = CompositeSourceOver); | 114 void paintFillLayers(const PaintInfo&, const Color&, const FillLayer*, const
LayoutRect&, CompositeOperator = CompositeSourceOver); |
115 void paintFillLayer(const PaintInfo&, const Color&, const FillLayer*, const
LayoutRect&, CompositeOperator = CompositeSourceOver); | 115 void paintFillLayer(const PaintInfo&, const Color&, const FillLayer*, const
LayoutRect&, CompositeOperator = CompositeSourceOver); |
116 void paintBoxShadow(const PaintInfo&, RenderStyle*, ShadowStyle, const Layou
tRect&); | 116 void paintBoxShadow(const PaintInfo&, RenderStyle*, ShadowStyle, const Layou
tRect&); |
117 virtual void paint(PaintInfo&, const LayoutPoint&, LayoutUnit lineTop, Layou
tUnit lineBottom); | 117 virtual void paint(PaintInfo&, const LayoutPoint&, LayoutUnit lineTop, Layou
tUnit lineBottom); |
118 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes
tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, LayoutUnit
lineTop, LayoutUnit lineBottom) OVERRIDE; | 118 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes
tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, LayoutUnit
lineTop, LayoutUnit lineBottom) OVERRIDE; |
119 | 119 |
120 bool boxShadowCanBeAppliedToBackground(const FillLayer&) const; | 120 bool boxShadowCanBeAppliedToBackground(const FillLayer&) const; |
121 | 121 |
122 virtual RenderLineBoxList* rendererLineBoxes() const; | 122 virtual RenderLineBoxList* rendererLineBoxes() const; |
123 | 123 |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
194 | 194 |
195 LayoutUnit computeOverAnnotationAdjustment(LayoutUnit allowedPosition) const
; | 195 LayoutUnit computeOverAnnotationAdjustment(LayoutUnit allowedPosition) const
; |
196 LayoutUnit computeUnderAnnotationAdjustment(LayoutUnit allowedPosition) cons
t; | 196 LayoutUnit computeUnderAnnotationAdjustment(LayoutUnit allowedPosition) cons
t; |
197 | 197 |
198 void computeOverflow(LayoutUnit lineTop, LayoutUnit lineBottom, GlyphOverflo
wAndFallbackFontsMap&); | 198 void computeOverflow(LayoutUnit lineTop, LayoutUnit lineBottom, GlyphOverflo
wAndFallbackFontsMap&); |
199 | 199 |
200 void removeChild(InlineBox* child); | 200 void removeChild(InlineBox* child); |
201 | 201 |
202 virtual RenderObject::SelectionState selectionState(); | 202 virtual RenderObject::SelectionState selectionState(); |
203 | 203 |
204 virtual bool canAccommodateEllipsis(bool ltr, int blockEdge, int ellipsisWid
th) const OVERRIDE; | 204 virtual bool canAccommodateEllipsis(bool ltr, int blockEdge, int ellipsisWid
th) const OVERRIDE FINAL; |
205 virtual float placeEllipsisBox(bool ltr, float blockLeftEdge, float blockRig
htEdge, float ellipsisWidth, float &truncatedWidth, bool&) OVERRIDE; | 205 virtual float placeEllipsisBox(bool ltr, float blockLeftEdge, float blockRig
htEdge, float ellipsisWidth, float &truncatedWidth, bool&) OVERRIDE; |
206 | 206 |
207 bool hasTextChildren() const { return m_hasTextChildren; } | 207 bool hasTextChildren() const { return m_hasTextChildren; } |
208 bool hasTextDescendants() const { return m_hasTextDescendants; } | 208 bool hasTextDescendants() const { return m_hasTextDescendants; } |
209 void setHasTextChildren() { m_hasTextChildren = true; setHasTextDescendants(
); } | 209 void setHasTextChildren() { m_hasTextChildren = true; setHasTextDescendants(
); } |
210 void setHasTextDescendants() { m_hasTextDescendants = true; } | 210 void setHasTextDescendants() { m_hasTextDescendants = true; } |
211 | 211 |
212 void checkConsistency() const; | 212 void checkConsistency() const; |
213 void setHasBadChildList(); | 213 void setHasBadChildList(); |
214 | 214 |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 } | 292 } |
293 | 293 |
294 bool descendantsHaveSameLineHeightAndBaseline() const { return m_descendants
HaveSameLineHeightAndBaseline; } | 294 bool descendantsHaveSameLineHeightAndBaseline() const { return m_descendants
HaveSameLineHeightAndBaseline; } |
295 void clearDescendantsHaveSameLineHeightAndBaseline() | 295 void clearDescendantsHaveSameLineHeightAndBaseline() |
296 { | 296 { |
297 m_descendantsHaveSameLineHeightAndBaseline = false; | 297 m_descendantsHaveSameLineHeightAndBaseline = false; |
298 if (parent() && parent()->descendantsHaveSameLineHeightAndBaseline()) | 298 if (parent() && parent()->descendantsHaveSameLineHeightAndBaseline()) |
299 parent()->clearDescendantsHaveSameLineHeightAndBaseline(); | 299 parent()->clearDescendantsHaveSameLineHeightAndBaseline(); |
300 } | 300 } |
301 | 301 |
302 virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE; | 302 virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE FINAL; |
303 | 303 |
304 private: | 304 private: |
305 void addBoxShadowVisualOverflow(LayoutRect& logicalVisualOverflow); | 305 void addBoxShadowVisualOverflow(LayoutRect& logicalVisualOverflow); |
306 void addBorderOutsetVisualOverflow(LayoutRect& logicalVisualOverflow); | 306 void addBorderOutsetVisualOverflow(LayoutRect& logicalVisualOverflow); |
307 void addTextBoxVisualOverflow(InlineTextBox*, GlyphOverflowAndFallbackFontsM
ap&, LayoutRect& logicalVisualOverflow); | 307 void addTextBoxVisualOverflow(InlineTextBox*, GlyphOverflowAndFallbackFontsM
ap&, LayoutRect& logicalVisualOverflow); |
308 void addReplacedChildOverflow(const InlineBox*, LayoutRect& logicalLayoutOve
rflow, LayoutRect& logicalVisualOverflow); | 308 void addReplacedChildOverflow(const InlineBox*, LayoutRect& logicalLayoutOve
rflow, LayoutRect& logicalVisualOverflow); |
309 void constrainToLineTopAndBottomIfNeeded(LayoutRect&) const; | 309 void constrainToLineTopAndBottomIfNeeded(LayoutRect&) const; |
310 | 310 |
311 protected: | 311 protected: |
312 OwnPtr<RenderOverflow> m_overflow; | 312 OwnPtr<RenderOverflow> m_overflow; |
313 | 313 |
314 virtual bool isInlineFlowBox() const { return true; } | 314 virtual bool isInlineFlowBox() const FINAL { return true; } |
315 | 315 |
316 InlineBox* m_firstChild; | 316 InlineBox* m_firstChild; |
317 InlineBox* m_lastChild; | 317 InlineBox* m_lastChild; |
318 | 318 |
319 InlineFlowBox* m_prevLineBox; // The previous box that also uses our RenderO
bject | 319 InlineFlowBox* m_prevLineBox; // The previous box that also uses our RenderO
bject |
320 InlineFlowBox* m_nextLineBox; // The next box that also uses our RenderObjec
t | 320 InlineFlowBox* m_nextLineBox; // The next box that also uses our RenderObjec
t |
321 | 321 |
322 #if ENABLE(CSS3_TEXT) | 322 #if ENABLE(CSS3_TEXT) |
323 // Maximum logicalTop among all children of an InlineFlowBox. Used to | 323 // Maximum logicalTop among all children of an InlineFlowBox. Used to |
324 // calculate the offset for TextUnderlinePositionUnder. | 324 // calculate the offset for TextUnderlinePositionUnder. |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
382 } | 382 } |
383 | 383 |
384 } // namespace WebCore | 384 } // namespace WebCore |
385 | 385 |
386 #ifndef NDEBUG | 386 #ifndef NDEBUG |
387 // Outside the WebCore namespace for ease of invocation from gdb. | 387 // Outside the WebCore namespace for ease of invocation from gdb. |
388 void showTree(const WebCore::InlineFlowBox*); | 388 void showTree(const WebCore::InlineFlowBox*); |
389 #endif | 389 #endif |
390 | 390 |
391 #endif // InlineFlowBox_h | 391 #endif // InlineFlowBox_h |
OLD | NEW |