OLD | NEW |
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. |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 class WordMeasurement; | 46 class WordMeasurement; |
47 | 47 |
48 template <class Run> class BidiRunList; | 48 template <class Run> class BidiRunList; |
49 typedef WTF::ListHashSet<RenderBox*, 16> TrackedRendererListHashSet; | 49 typedef WTF::ListHashSet<RenderBox*, 16> TrackedRendererListHashSet; |
50 typedef WTF::HashMap<const RenderBlock*, OwnPtr<TrackedRendererListHashSet> > Tr
ackedDescendantsMap; | 50 typedef WTF::HashMap<const RenderBlock*, OwnPtr<TrackedRendererListHashSet> > Tr
ackedDescendantsMap; |
51 typedef WTF::HashMap<const RenderBox*, OwnPtr<HashSet<RenderBlock*> > > TrackedC
ontainerMap; | 51 typedef WTF::HashMap<const RenderBox*, OwnPtr<HashSet<RenderBlock*> > > TrackedC
ontainerMap; |
52 typedef Vector<WordMeasurement, 64> WordMeasurements; | 52 typedef Vector<WordMeasurement, 64> WordMeasurements; |
53 | 53 |
54 enum ContainingBlockState { NewContainingBlock, SameContainingBlock }; | 54 enum ContainingBlockState { NewContainingBlock, SameContainingBlock }; |
55 | 55 |
| 56 typedef WTF::HashMap<RenderBlock*, OwnPtr<ListHashSet<RenderInline*> > > Continu
ationOutlineTableMap; |
| 57 |
| 58 ContinuationOutlineTableMap* continuationOutlineTable(); |
| 59 |
56 class RenderBlock : public RenderBox { | 60 class RenderBlock : public RenderBox { |
57 public: | 61 public: |
58 virtual void destroy() OVERRIDE; | 62 virtual void destroy() OVERRIDE; |
59 virtual void trace(Visitor*) OVERRIDE; | 63 virtual void trace(Visitor*) OVERRIDE; |
60 friend class LineLayoutState; | 64 friend class LineLayoutState; |
61 | 65 |
62 protected: | 66 protected: |
63 explicit RenderBlock(ContainerNode*); | 67 explicit RenderBlock(ContainerNode*); |
64 virtual ~RenderBlock(); | 68 virtual ~RenderBlock(); |
65 | 69 |
66 public: | 70 public: |
67 RenderObject* firstChild() const { ASSERT(children() == virtualChildren());
return children()->firstChild(); } | 71 RenderObject* firstChild() const { ASSERT(children() == virtualChildren());
return children()->firstChild(); } |
68 RenderObject* lastChild() const { ASSERT(children() == virtualChildren()); r
eturn children()->lastChild(); } | 72 RenderObject* lastChild() const { ASSERT(children() == virtualChildren()); r
eturn children()->lastChild(); } |
69 | 73 |
70 // If you have a RenderBlock, use firstChild or lastChild instead. | 74 // If you have a RenderBlock, use firstChild or lastChild instead. |
71 void slowFirstChild() const WTF_DELETED_FUNCTION; | 75 void slowFirstChild() const WTF_DELETED_FUNCTION; |
72 void slowLastChild() const WTF_DELETED_FUNCTION; | 76 void slowLastChild() const WTF_DELETED_FUNCTION; |
73 | 77 |
74 const RenderObjectChildList* children() const { return &m_children; } | 78 const RenderObjectChildList* children() const { return &m_children; } |
75 RenderObjectChildList* children() { return &m_children; } | 79 RenderObjectChildList* children() { return &m_children; } |
76 | 80 |
77 bool beingDestroyed() const { return m_beingDestroyed; } | 81 bool beingDestroyed() const { return m_beingDestroyed; } |
78 | 82 |
79 // These two functions are overridden for inline-block. | 83 // These two functions are overridden for inline-block. |
80 virtual LayoutUnit lineHeight(bool firstLine, LineDirectionMode, LinePositio
nMode = PositionOnContainingLine) const OVERRIDE FINAL; | 84 virtual LayoutUnit lineHeight(bool firstLine, LineDirectionMode, LinePositio
nMode = PositionOnContainingLine) const OVERRIDE FINAL; |
81 virtual int baselinePosition(FontBaseline, bool firstLine, LineDirectionMode
, LinePositionMode = PositionOnContainingLine) const OVERRIDE; | 85 virtual int baselinePosition(FontBaseline, bool firstLine, LineDirectionMode
, LinePositionMode = PositionOnContainingLine) const OVERRIDE; |
82 | 86 |
83 LayoutUnit minLineHeightForReplacedRenderer(bool isFirstLine, LayoutUnit rep
lacedHeight) const; | 87 LayoutUnit minLineHeightForReplacedRenderer(bool isFirstLine, LayoutUnit rep
lacedHeight) const; |
84 | 88 |
85 protected: | |
86 RenderLineBoxList* lineBoxes() { return &m_lineBoxes; } | 89 RenderLineBoxList* lineBoxes() { return &m_lineBoxes; } |
87 | 90 |
| 91 protected: |
88 InlineFlowBox* firstLineBox() const { return m_lineBoxes.firstLineBox(); } | 92 InlineFlowBox* firstLineBox() const { return m_lineBoxes.firstLineBox(); } |
89 InlineFlowBox* lastLineBox() const { return m_lineBoxes.lastLineBox(); } | 93 InlineFlowBox* lastLineBox() const { return m_lineBoxes.lastLineBox(); } |
90 | 94 |
91 RootInlineBox* firstRootBox() const { return static_cast<RootInlineBox*>(fir
stLineBox()); } | 95 RootInlineBox* firstRootBox() const { return static_cast<RootInlineBox*>(fir
stLineBox()); } |
92 RootInlineBox* lastRootBox() const { return static_cast<RootInlineBox*>(last
LineBox()); } | 96 RootInlineBox* lastRootBox() const { return static_cast<RootInlineBox*>(last
LineBox()); } |
93 | 97 |
94 public: | 98 public: |
95 // FIXME-BLOCKFLOW: Remove virtualizaion when all callers have moved to Rend
erBlockFlow | 99 // FIXME-BLOCKFLOW: Remove virtualizaion when all callers have moved to Rend
erBlockFlow |
96 virtual void deleteLineBoxTree(); | 100 virtual void deleteLineBoxTree(); |
97 | 101 |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
172 RootInlineBox* lineAtIndex(int) const; | 176 RootInlineBox* lineAtIndex(int) const; |
173 int lineCount(const RootInlineBox* = 0, bool* = 0) const; | 177 int lineCount(const RootInlineBox* = 0, bool* = 0) const; |
174 int heightForLineCount(int); | 178 int heightForLineCount(int); |
175 void clearTruncation(); | 179 void clearTruncation(); |
176 | 180 |
177 void adjustRectForColumns(LayoutRect&) const; | 181 void adjustRectForColumns(LayoutRect&) const; |
178 virtual LayoutSize columnOffset(const LayoutPoint&) const OVERRIDE; | 182 virtual LayoutSize columnOffset(const LayoutPoint&) const OVERRIDE; |
179 void adjustForColumnRect(LayoutSize& offset, const LayoutPoint& locationInCo
ntainer) const; | 183 void adjustForColumnRect(LayoutSize& offset, const LayoutPoint& locationInCo
ntainer) const; |
180 | 184 |
181 void addContinuationWithOutline(RenderInline*); | 185 void addContinuationWithOutline(RenderInline*); |
182 bool paintsContinuationOutline(RenderInline*); | |
183 | 186 |
184 virtual RenderBoxModelObject* virtualContinuation() const OVERRIDE FINAL { r
eturn continuation(); } | 187 virtual RenderBoxModelObject* virtualContinuation() const OVERRIDE FINAL { r
eturn continuation(); } |
185 bool isAnonymousBlockContinuation() const { return continuation() && isAnony
mousBlock(); } | 188 bool isAnonymousBlockContinuation() const { return continuation() && isAnony
mousBlock(); } |
186 RenderInline* inlineElementContinuation() const; | 189 RenderInline* inlineElementContinuation() const; |
187 RenderBlock* blockElementContinuation() const; | 190 RenderBlock* blockElementContinuation() const; |
188 | 191 |
189 using RenderBoxModelObject::continuation; | 192 using RenderBoxModelObject::continuation; |
190 using RenderBoxModelObject::setContinuation; | 193 using RenderBoxModelObject::setContinuation; |
191 | 194 |
192 static RenderBlock* createAnonymousWithParentRendererAndDisplay(const Render
Object*, EDisplay = BLOCK); | 195 static RenderBlock* createAnonymousWithParentRendererAndDisplay(const Render
Object*, EDisplay = BLOCK); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes
tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAct
ion) OVERRIDE; | 233 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes
tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAct
ion) OVERRIDE; |
231 | 234 |
232 virtual void scrollbarsChanged(bool /*horizontalScrollbarChanged*/, bool /*v
erticalScrollbarChanged*/) { } | 235 virtual void scrollbarsChanged(bool /*horizontalScrollbarChanged*/, bool /*v
erticalScrollbarChanged*/) { } |
233 | 236 |
234 LayoutUnit availableLogicalWidthForContent() const { return max<LayoutUnit>(
0, logicalRightOffsetForContent() - logicalLeftOffsetForContent()); } | 237 LayoutUnit availableLogicalWidthForContent() const { return max<LayoutUnit>(
0, logicalRightOffsetForContent() - logicalLeftOffsetForContent()); } |
235 LayoutUnit logicalLeftOffsetForContent() const { return isHorizontalWritingM
ode() ? borderLeft() + paddingLeft() : borderTop() + paddingTop(); } | 238 LayoutUnit logicalLeftOffsetForContent() const { return isHorizontalWritingM
ode() ? borderLeft() + paddingLeft() : borderTop() + paddingTop(); } |
236 LayoutUnit logicalRightOffsetForContent() const { return logicalLeftOffsetFo
rContent() + availableLogicalWidth(); } | 239 LayoutUnit logicalRightOffsetForContent() const { return logicalLeftOffsetFo
rContent() + availableLogicalWidth(); } |
237 LayoutUnit startOffsetForContent() const { return style()->isLeftToRightDire
ction() ? logicalLeftOffsetForContent() : logicalWidth() - logicalRightOffsetFor
Content(); } | 240 LayoutUnit startOffsetForContent() const { return style()->isLeftToRightDire
ction() ? logicalLeftOffsetForContent() : logicalWidth() - logicalRightOffsetFor
Content(); } |
238 LayoutUnit endOffsetForContent() const { return !style()->isLeftToRightDirec
tion() ? logicalLeftOffsetForContent() : logicalWidth() - logicalRightOffsetForC
ontent(); } | 241 LayoutUnit endOffsetForContent() const { return !style()->isLeftToRightDirec
tion() ? logicalLeftOffsetForContent() : logicalWidth() - logicalRightOffsetForC
ontent(); } |
239 | 242 |
| 243 virtual LayoutUnit logicalLeftSelectionOffset(const RenderBlock* rootBlock,
LayoutUnit position) const; |
| 244 virtual LayoutUnit logicalRightSelectionOffset(const RenderBlock* rootBlock,
LayoutUnit position) const; |
| 245 |
| 246 GapRects selectionGaps(const RenderBlock* rootBlock, const LayoutPoint& root
BlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, |
| 247 LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& las
tLogicalRight, const PaintInfo* = 0) const; |
| 248 |
240 #if ENABLE(ASSERT) | 249 #if ENABLE(ASSERT) |
241 void checkPositionedObjectsNeedLayout(); | 250 void checkPositionedObjectsNeedLayout(); |
| 251 bool paintsContinuationOutline(RenderInline* flow); |
242 #endif | 252 #endif |
243 #ifndef NDEBUG | 253 #ifndef NDEBUG |
244 void showLineTreeAndMark(const InlineBox* = 0, const char* = 0, const Inline
Box* = 0, const char* = 0, const RenderObject* = 0) const; | 254 void showLineTreeAndMark(const InlineBox* = 0, const char* = 0, const Inline
Box* = 0, const char* = 0, const RenderObject* = 0) const; |
245 #endif | 255 #endif |
246 | 256 |
247 // inline-block elements paint all phases atomically. This function ensures
that. Certain other elements | |
248 // (grid items, flex items) require this behavior as well, and this function
exists as a helper for them. | |
249 // It is expected that the caller will call this function independent of the
value of paintInfo.phase. | |
250 static void paintAsInlineBlock(RenderObject*, PaintInfo&, const LayoutPoint&
); | |
251 | |
252 bool recalcChildOverflowAfterStyleChange(); | 257 bool recalcChildOverflowAfterStyleChange(); |
253 bool recalcOverflowAfterStyleChange(); | 258 bool recalcOverflowAfterStyleChange(); |
254 | 259 |
255 protected: | 260 protected: |
256 virtual void willBeDestroyed() OVERRIDE; | 261 virtual void willBeDestroyed() OVERRIDE; |
257 | 262 |
258 void dirtyForLayoutFromPercentageHeightDescendants(SubtreeLayoutScope&); | 263 void dirtyForLayoutFromPercentageHeightDescendants(SubtreeLayoutScope&); |
259 | 264 |
260 virtual void layout() OVERRIDE; | 265 virtual void layout() OVERRIDE; |
261 virtual bool updateImageLoadingPriorities() OVERRIDE FINAL; | 266 virtual bool updateImageLoadingPriorities() OVERRIDE FINAL; |
262 | 267 |
263 enum PositionedLayoutBehavior { | 268 enum PositionedLayoutBehavior { |
264 DefaultLayout, | 269 DefaultLayout, |
265 LayoutOnlyFixedPositionedObjects, | 270 LayoutOnlyFixedPositionedObjects, |
266 ForcedLayoutAfterContainingBlockMoved | 271 ForcedLayoutAfterContainingBlockMoved |
267 }; | 272 }; |
268 | 273 |
269 void layoutPositionedObjects(bool relayoutChildren, PositionedLayoutBehavior
= DefaultLayout); | 274 void layoutPositionedObjects(bool relayoutChildren, PositionedLayoutBehavior
= DefaultLayout); |
270 void markFixedPositionObjectForLayoutIfNeeded(RenderObject* child, SubtreeLa
youtScope&); | 275 void markFixedPositionObjectForLayoutIfNeeded(RenderObject* child, SubtreeLa
youtScope&); |
271 | 276 |
272 LayoutUnit marginIntrinsicLogicalWidthForChild(RenderBox* child) const; | 277 LayoutUnit marginIntrinsicLogicalWidthForChild(RenderBox* child) const; |
273 | 278 |
274 int beforeMarginInLineDirection(LineDirectionMode) const; | 279 int beforeMarginInLineDirection(LineDirectionMode) const; |
275 | 280 |
276 virtual void paint(PaintInfo&, const LayoutPoint&) OVERRIDE; | 281 virtual void paint(PaintInfo&, const LayoutPoint&) OVERRIDE; |
| 282 public: |
277 virtual void paintObject(PaintInfo&, const LayoutPoint&) OVERRIDE; | 283 virtual void paintObject(PaintInfo&, const LayoutPoint&) OVERRIDE; |
278 virtual void paintChildren(PaintInfo&, const LayoutPoint&); | 284 virtual void paintChildren(PaintInfo&, const LayoutPoint&); |
279 void paintChild(RenderBox*, PaintInfo&, const LayoutPoint&); | |
280 void paintChildAsInlineBlock(RenderBox*, PaintInfo&, const LayoutPoint&); | |
281 | 285 |
| 286 // FIXME-BLOCKFLOW: Remove virtualizaion when all callers have moved to Rend
erBlockFlow |
| 287 virtual void paintFloats(PaintInfo&, const LayoutPoint&, bool) { } |
| 288 |
| 289 protected: |
282 virtual void adjustInlineDirectionLineBounds(unsigned /* expansionOpportunit
yCount */, float& /* logicalLeft */, float& /* logicalWidth */) const { } | 290 virtual void adjustInlineDirectionLineBounds(unsigned /* expansionOpportunit
yCount */, float& /* logicalLeft */, float& /* logicalWidth */) const { } |
283 | 291 |
284 virtual void computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, Layo
utUnit& maxLogicalWidth) const OVERRIDE; | 292 virtual void computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, Layo
utUnit& maxLogicalWidth) const OVERRIDE; |
285 virtual void computePreferredLogicalWidths() OVERRIDE; | 293 virtual void computePreferredLogicalWidths() OVERRIDE; |
286 void adjustIntrinsicLogicalWidthsForColumns(LayoutUnit& minLogicalWidth, Lay
outUnit& maxLogicalWidth) const; | 294 void adjustIntrinsicLogicalWidthsForColumns(LayoutUnit& minLogicalWidth, Lay
outUnit& maxLogicalWidth) const; |
287 | 295 |
288 virtual int firstLineBoxBaseline() const OVERRIDE; | 296 virtual int firstLineBoxBaseline() const OVERRIDE; |
289 virtual int inlineBlockBaseline(LineDirectionMode) const OVERRIDE; | 297 virtual int inlineBlockBaseline(LineDirectionMode) const OVERRIDE; |
290 int lastLineBoxBaseline(LineDirectionMode) const; | 298 int lastLineBoxBaseline(LineDirectionMode) const; |
291 | 299 |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
355 virtual bool isSelfCollapsingBlock() const OVERRIDE; | 363 virtual bool isSelfCollapsingBlock() const OVERRIDE; |
356 | 364 |
357 void insertIntoTrackedRendererMaps(RenderBox* descendant, TrackedDescendants
Map*&, TrackedContainerMap*&); | 365 void insertIntoTrackedRendererMaps(RenderBox* descendant, TrackedDescendants
Map*&, TrackedContainerMap*&); |
358 static void removeFromTrackedRendererMaps(RenderBox* descendant, TrackedDesc
endantsMap*&, TrackedContainerMap*&); | 366 static void removeFromTrackedRendererMaps(RenderBox* descendant, TrackedDesc
endantsMap*&, TrackedContainerMap*&); |
359 | 367 |
360 void createFirstLetterRenderer(RenderObject* firstLetterBlock, RenderText& c
urrentChild, unsigned length); | 368 void createFirstLetterRenderer(RenderObject* firstLetterBlock, RenderText& c
urrentChild, unsigned length); |
361 void updateFirstLetterStyle(RenderObject* firstLetterBlock, RenderObject* fi
rstLetterContainer); | 369 void updateFirstLetterStyle(RenderObject* firstLetterBlock, RenderObject* fi
rstLetterContainer); |
362 | 370 |
363 Node* nodeForHitTest() const; | 371 Node* nodeForHitTest() const; |
364 | 372 |
365 // FIXME-BLOCKFLOW: Remove virtualizaion when all callers have moved to Rend
erBlockFlow | 373 private: |
366 virtual void paintFloats(PaintInfo&, const LayoutPoint&, bool) { } | |
367 void paintContents(PaintInfo&, const LayoutPoint&); | |
368 void paintColumnContents(PaintInfo&, const LayoutPoint&, bool paintFloats =
false); | |
369 void paintColumnRules(PaintInfo&, const LayoutPoint&); | |
370 void paintSelection(PaintInfo&, const LayoutPoint&); | |
371 void paintCarets(PaintInfo&, const LayoutPoint&); | |
372 | |
373 bool hasCaret() const; | |
374 | |
375 virtual bool avoidsFloats() const OVERRIDE { return true; } | 374 virtual bool avoidsFloats() const OVERRIDE { return true; } |
376 | 375 |
377 bool hitTestColumns(const HitTestRequest&, HitTestResult&, const HitTestLoca
tion& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction); | 376 bool hitTestColumns(const HitTestRequest&, HitTestResult&, const HitTestLoca
tion& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction); |
378 bool hitTestContents(const HitTestRequest&, HitTestResult&, const HitTestLoc
ation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction)
; | 377 bool hitTestContents(const HitTestRequest&, HitTestResult&, const HitTestLoc
ation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction)
; |
379 // FIXME-BLOCKFLOW: Remove virtualizaion when all callers have moved to Rend
erBlockFlow | 378 // FIXME-BLOCKFLOW: Remove virtualizaion when all callers have moved to Rend
erBlockFlow |
380 virtual bool hitTestFloats(const HitTestRequest&, HitTestResult&, const HitT
estLocation&, const LayoutPoint&) { return false; } | 379 virtual bool hitTestFloats(const HitTestRequest&, HitTestResult&, const HitT
estLocation&, const LayoutPoint&) { return false; } |
381 | 380 |
382 virtual bool isPointInOverflowControl(HitTestResult&, const LayoutPoint& loc
ationInContainer, const LayoutPoint& accumulatedOffset); | 381 virtual bool isPointInOverflowControl(HitTestResult&, const LayoutPoint& loc
ationInContainer, const LayoutPoint& accumulatedOffset); |
383 | 382 |
384 void computeBlockPreferredLogicalWidths(LayoutUnit& minLogicalWidth, LayoutU
nit& maxLogicalWidth) const; | 383 void computeBlockPreferredLogicalWidths(LayoutUnit& minLogicalWidth, LayoutU
nit& maxLogicalWidth) const; |
385 | 384 |
386 // Obtains the nearest enclosing block (including this block) that contribut
es a first-line style to our inline | 385 // Obtains the nearest enclosing block (including this block) that contribut
es a first-line style to our inline |
387 // children. | 386 // children. |
388 virtual RenderBlock* firstLineBlock() const OVERRIDE; | 387 virtual RenderBlock* firstLineBlock() const OVERRIDE; |
389 | 388 |
390 virtual LayoutRect rectWithOutlineForPaintInvalidation(const RenderLayerMode
lObject* paintInvalidationContainer, LayoutUnit outlineWidth, const PaintInvalid
ationState* = 0) const OVERRIDE FINAL; | 389 virtual LayoutRect rectWithOutlineForPaintInvalidation(const RenderLayerMode
lObject* paintInvalidationContainer, LayoutUnit outlineWidth, const PaintInvalid
ationState* = 0) const OVERRIDE FINAL; |
391 | 390 |
392 virtual RenderObject* hoverAncestor() const OVERRIDE FINAL; | 391 virtual RenderObject* hoverAncestor() const OVERRIDE FINAL; |
393 virtual void updateDragState(bool dragOn) OVERRIDE FINAL; | 392 virtual void updateDragState(bool dragOn) OVERRIDE FINAL; |
394 virtual void childBecameNonInline(RenderObject* child) OVERRIDE FINAL; | 393 virtual void childBecameNonInline(RenderObject* child) OVERRIDE FINAL; |
395 | 394 |
396 virtual LayoutRect selectionRectForPaintInvalidation(const RenderLayerModelO
bject* paintInvalidationContainer, bool /*clipToVisibleContent*/) const OVERRIDE
FINAL | 395 virtual LayoutRect selectionRectForPaintInvalidation(const RenderLayerModelO
bject* paintInvalidationContainer, bool /*clipToVisibleContent*/) const OVERRIDE
FINAL |
397 { | 396 { |
398 return selectionGapRectsForPaintInvalidation(paintInvalidationContainer)
; | 397 return selectionGapRectsForPaintInvalidation(paintInvalidationContainer)
; |
399 } | 398 } |
400 bool isSelectionRoot() const; | 399 bool isSelectionRoot() const; |
401 GapRects selectionGaps(const RenderBlock* rootBlock, const LayoutPoint& root
BlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, | |
402 LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLe
ft, LayoutUnit& lastLogicalRight, const PaintInfo* = 0) const; | |
403 GapRects blockSelectionGaps(const RenderBlock* rootBlock, const LayoutPoint&
rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, | 400 GapRects blockSelectionGaps(const RenderBlock* rootBlock, const LayoutPoint&
rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, |
404 LayoutUnit& lastLogicalTop, LayoutUnit& lastLogi
calLeft, LayoutUnit& lastLogicalRight, const PaintInfo*) const; | 401 LayoutUnit& lastLogicalTop, LayoutUnit& lastLogi
calLeft, LayoutUnit& lastLogicalRight, const PaintInfo*) const; |
405 LayoutRect blockSelectionGap(const RenderBlock* rootBlock, const LayoutPoint
& rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, | 402 LayoutRect blockSelectionGap(const RenderBlock* rootBlock, const LayoutPoint
& rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, |
406 LayoutUnit lastLogicalTop, LayoutUnit lastLogic
alLeft, LayoutUnit lastLogicalRight, LayoutUnit logicalBottom, const PaintInfo*)
const; | 403 LayoutUnit lastLogicalTop, LayoutUnit lastLogic
alLeft, LayoutUnit lastLogicalRight, LayoutUnit logicalBottom, const PaintInfo*)
const; |
407 virtual LayoutUnit logicalLeftSelectionOffset(const RenderBlock* rootBlock,
LayoutUnit position) const; | |
408 virtual LayoutUnit logicalRightSelectionOffset(const RenderBlock* rootBlock,
LayoutUnit position) const; | |
409 | 404 |
410 // FIXME-BLOCKFLOW: Remove virtualizaion when all callers have moved to Rend
erBlockFlow | 405 // FIXME-BLOCKFLOW: Remove virtualizaion when all callers have moved to Rend
erBlockFlow |
411 virtual void clipOutFloatingObjects(const RenderBlock*, const PaintInfo*, co
nst LayoutPoint&, const LayoutSize&) const { }; | 406 virtual void clipOutFloatingObjects(const RenderBlock*, const PaintInfo*, co
nst LayoutPoint&, const LayoutSize&) const { }; |
412 | 407 |
413 virtual void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedO
ffset) const OVERRIDE; | 408 virtual void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedO
ffset) const OVERRIDE; |
414 virtual void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const OVERRID
E; | 409 virtual void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const OVERRID
E; |
415 | 410 |
416 LayoutUnit desiredColumnWidth() const; | 411 LayoutUnit desiredColumnWidth() const; |
417 | 412 |
418 void paintContinuationOutlines(PaintInfo&, const LayoutPoint&); | 413 private: |
419 | |
420 virtual LayoutRect localCaretRect(InlineBox*, int caretOffset, LayoutUnit* e
xtraWidthToEndOfLine = 0) OVERRIDE FINAL; | 414 virtual LayoutRect localCaretRect(InlineBox*, int caretOffset, LayoutUnit* e
xtraWidthToEndOfLine = 0) OVERRIDE FINAL; |
421 | 415 |
422 void adjustPointToColumnContents(LayoutPoint&) const; | 416 void adjustPointToColumnContents(LayoutPoint&) const; |
423 | 417 |
424 void markLinesDirtyInBlockRange(LayoutUnit logicalTop, LayoutUnit logicalBot
tom, RootInlineBox* highest = 0); | 418 void markLinesDirtyInBlockRange(LayoutUnit logicalTop, LayoutUnit logicalBot
tom, RootInlineBox* highest = 0); |
425 | 419 |
426 Position positionForBox(InlineBox*, bool start = true) const; | 420 Position positionForBox(InlineBox*, bool start = true) const; |
427 PositionWithAffinity positionForPointWithInlineChildren(const LayoutPoint&); | 421 PositionWithAffinity positionForPointWithInlineChildren(const LayoutPoint&); |
428 | 422 |
429 void calcColumnWidth(); | 423 void calcColumnWidth(); |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
504 // FIXME: This is temporary as we move code that accesses block flow | 498 // FIXME: This is temporary as we move code that accesses block flow |
505 // member variables out of RenderBlock and into RenderBlockFlow. | 499 // member variables out of RenderBlock and into RenderBlockFlow. |
506 friend class RenderBlockFlow; | 500 friend class RenderBlockFlow; |
507 }; | 501 }; |
508 | 502 |
509 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlock, isRenderBlock()); | 503 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlock, isRenderBlock()); |
510 | 504 |
511 } // namespace blink | 505 } // namespace blink |
512 | 506 |
513 #endif // RenderBlock_h | 507 #endif // RenderBlock_h |
OLD | NEW |