| 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 * 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 26 matching lines...) Expand all Loading... |
| 37 | 37 |
| 38 static LayoutInline* createAnonymous(Document*); | 38 static LayoutInline* createAnonymous(Document*); |
| 39 | 39 |
| 40 LayoutObject* firstChild() const { ASSERT(children() == virtualChildren());
return children()->firstChild(); } | 40 LayoutObject* firstChild() const { ASSERT(children() == virtualChildren());
return children()->firstChild(); } |
| 41 LayoutObject* lastChild() const { ASSERT(children() == virtualChildren()); r
eturn children()->lastChild(); } | 41 LayoutObject* lastChild() const { ASSERT(children() == virtualChildren()); r
eturn children()->lastChild(); } |
| 42 | 42 |
| 43 // If you have a LayoutInline, use firstChild or lastChild instead. | 43 // If you have a LayoutInline, use firstChild or lastChild instead. |
| 44 void slowFirstChild() const = delete; | 44 void slowFirstChild() const = delete; |
| 45 void slowLastChild() const = delete; | 45 void slowLastChild() const = delete; |
| 46 | 46 |
| 47 virtual void addChild(LayoutObject* newChild, LayoutObject* beforeChild = 0)
override; | 47 virtual void addChild(LayoutObject* newChild, LayoutObject* beforeChild = nu
llptr) override; |
| 48 | 48 |
| 49 Element* node() const { return toElement(LayoutBoxModelObject::node()); } | 49 Element* node() const { return toElement(LayoutBoxModelObject::node()); } |
| 50 | 50 |
| 51 virtual LayoutRectOutsets marginBoxOutsets() const override final; | 51 virtual LayoutRectOutsets marginBoxOutsets() const override final; |
| 52 virtual LayoutUnit marginLeft() const override final; | 52 virtual LayoutUnit marginLeft() const override final; |
| 53 virtual LayoutUnit marginRight() const override final; | 53 virtual LayoutUnit marginRight() const override final; |
| 54 virtual LayoutUnit marginTop() const override final; | 54 virtual LayoutUnit marginTop() const override final; |
| 55 virtual LayoutUnit marginBottom() const override final; | 55 virtual LayoutUnit marginBottom() const override final; |
| 56 virtual LayoutUnit marginBefore(const ComputedStyle* otherStyle = 0) const o
verride final; | 56 virtual LayoutUnit marginBefore(const ComputedStyle* otherStyle = nullptr) c
onst override final; |
| 57 virtual LayoutUnit marginAfter(const ComputedStyle* otherStyle = 0) const ov
erride final; | 57 virtual LayoutUnit marginAfter(const ComputedStyle* otherStyle = nullptr) co
nst override final; |
| 58 virtual LayoutUnit marginStart(const ComputedStyle* otherStyle = 0) const ov
erride final; | 58 virtual LayoutUnit marginStart(const ComputedStyle* otherStyle = nullptr) co
nst override final; |
| 59 virtual LayoutUnit marginEnd(const ComputedStyle* otherStyle = 0) const over
ride final; | 59 virtual LayoutUnit marginEnd(const ComputedStyle* otherStyle = nullptr) cons
t override final; |
| 60 | 60 |
| 61 virtual void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedO
ffset) const override final; | 61 virtual void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedO
ffset) const override final; |
| 62 virtual void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const overrid
e; | 62 virtual void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const overrid
e; |
| 63 | 63 |
| 64 virtual LayoutSize offsetFromContainer(const LayoutObject*, const LayoutPoin
t&, bool* offsetDependsOnPoint = 0) const override final; | 64 virtual LayoutSize offsetFromContainer(const LayoutObject*, const LayoutPoin
t&, bool* offsetDependsOnPoint = nullptr) const override final; |
| 65 | 65 |
| 66 IntRect linesBoundingBox() const; | 66 IntRect linesBoundingBox() const; |
| 67 LayoutRect linesVisualOverflowBoundingBox() const; | 67 LayoutRect linesVisualOverflowBoundingBox() const; |
| 68 | 68 |
| 69 InlineFlowBox* createAndAppendInlineFlowBox(); | 69 InlineFlowBox* createAndAppendInlineFlowBox(); |
| 70 | 70 |
| 71 void dirtyLineBoxes(bool fullLayout); | 71 void dirtyLineBoxes(bool fullLayout); |
| 72 | 72 |
| 73 LineBoxList* lineBoxes() { return &m_lineBoxes; } | 73 LineBoxList* lineBoxes() { return &m_lineBoxes; } |
| 74 const LineBoxList* lineBoxes() const { return &m_lineBoxes; } | 74 const LineBoxList* lineBoxes() const { return &m_lineBoxes; } |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 LayoutRect culledInlineVisualOverflowBoundingBox() const; | 120 LayoutRect culledInlineVisualOverflowBoundingBox() const; |
| 121 InlineBox* culledInlineFirstLineBox() const; | 121 InlineBox* culledInlineFirstLineBox() const; |
| 122 InlineBox* culledInlineLastLineBox() const; | 122 InlineBox* culledInlineLastLineBox() const; |
| 123 | 123 |
| 124 template<typename GeneratorContext> | 124 template<typename GeneratorContext> |
| 125 void generateLineBoxRects(GeneratorContext& yield) const; | 125 void generateLineBoxRects(GeneratorContext& yield) const; |
| 126 template<typename GeneratorContext> | 126 template<typename GeneratorContext> |
| 127 void generateCulledLineBoxRects(GeneratorContext& yield, const LayoutInline*
container) const; | 127 void generateCulledLineBoxRects(GeneratorContext& yield, const LayoutInline*
container) const; |
| 128 | 128 |
| 129 void addChildToContinuation(LayoutObject* newChild, LayoutObject* beforeChil
d); | 129 void addChildToContinuation(LayoutObject* newChild, LayoutObject* beforeChil
d); |
| 130 virtual void addChildIgnoringContinuation(LayoutObject* newChild, LayoutObje
ct* beforeChild = 0) override final; | 130 virtual void addChildIgnoringContinuation(LayoutObject* newChild, LayoutObje
ct* beforeChild = nullptr) override final; |
| 131 | 131 |
| 132 void moveChildrenToIgnoringContinuation(LayoutInline* to, LayoutObject* star
tChild); | 132 void moveChildrenToIgnoringContinuation(LayoutInline* to, LayoutObject* star
tChild); |
| 133 | 133 |
| 134 void splitInlines(LayoutBlock* fromBlock, LayoutBlock* toBlock, LayoutBlock*
middleBlock, | 134 void splitInlines(LayoutBlock* fromBlock, LayoutBlock* toBlock, LayoutBlock*
middleBlock, |
| 135 LayoutObject* beforeChild, LayoutBoxModelObject* oldCont); | 135 LayoutObject* beforeChild, LayoutBoxModelObject* oldCont); |
| 136 void splitFlow(LayoutObject* beforeChild, LayoutBlock* newBlockBox, | 136 void splitFlow(LayoutObject* beforeChild, LayoutBlock* newBlockBox, |
| 137 LayoutObject* newChild, LayoutBoxModelObject* oldCont); | 137 LayoutObject* newChild, LayoutBoxModelObject* oldCont); |
| 138 | 138 |
| 139 virtual void layout() override final { ASSERT_NOT_REACHED(); } // Do nothing
for layout() | 139 virtual void layout() override final { ASSERT_NOT_REACHED(); } // Do nothing
for layout() |
| 140 | 140 |
| 141 virtual void paint(const PaintInfo&, const LayoutPoint&) override final; | 141 virtual void paint(const PaintInfo&, const LayoutPoint&) override final; |
| 142 | 142 |
| 143 virtual bool nodeAtPoint(HitTestResult&, const HitTestLocation& locationInCo
ntainer, const LayoutPoint& accumulatedOffset, HitTestAction) override final; | 143 virtual bool nodeAtPoint(HitTestResult&, const HitTestLocation& locationInCo
ntainer, const LayoutPoint& accumulatedOffset, HitTestAction) override final; |
| 144 | 144 |
| 145 virtual DeprecatedPaintLayerType layerTypeRequired() const override { return
isRelPositioned() || createsGroup() || hasClipPath() || style()->shouldComposit
eForCurrentAnimations() || style()->hasCompositorProxy() ? NormalDeprecatedPaint
Layer : NoDeprecatedPaintLayer; } | 145 virtual DeprecatedPaintLayerType layerTypeRequired() const override { return
isRelPositioned() || createsGroup() || hasClipPath() || style()->shouldComposit
eForCurrentAnimations() || style()->hasCompositorProxy() ? NormalDeprecatedPaint
Layer : NoDeprecatedPaintLayer; } |
| 146 | 146 |
| 147 virtual LayoutUnit offsetLeft() const override final; | 147 virtual LayoutUnit offsetLeft() const override final; |
| 148 virtual LayoutUnit offsetTop() const override final; | 148 virtual LayoutUnit offsetTop() const override final; |
| 149 virtual LayoutUnit offsetWidth() const override final { return linesBounding
Box().width(); } | 149 virtual LayoutUnit offsetWidth() const override final { return linesBounding
Box().width(); } |
| 150 virtual LayoutUnit offsetHeight() const override final { return linesBoundin
gBox().height(); } | 150 virtual LayoutUnit offsetHeight() const override final { return linesBoundin
gBox().height(); } |
| 151 | 151 |
| 152 virtual LayoutRect absoluteClippedOverflowRect() const override; | 152 virtual LayoutRect absoluteClippedOverflowRect() const override; |
| 153 virtual LayoutRect clippedOverflowRectForPaintInvalidation(const LayoutBoxMo
delObject* paintInvalidationContainer, const PaintInvalidationState* = 0) const
override; | 153 virtual LayoutRect clippedOverflowRectForPaintInvalidation(const LayoutBoxMo
delObject* paintInvalidationContainer, const PaintInvalidationState* = nullptr)
const override; |
| 154 virtual LayoutRect rectWithOutlineForPaintInvalidation(const LayoutBoxModelO
bject* paintInvalidationContainer, LayoutUnit outlineWidth, const PaintInvalidat
ionState* = 0) const override final; | 154 virtual LayoutRect rectWithOutlineForPaintInvalidation(const LayoutBoxModelO
bject* paintInvalidationContainer, LayoutUnit outlineWidth, const PaintInvalidat
ionState* = nullptr) const override final; |
| 155 virtual void mapRectToPaintInvalidationBacking(const LayoutBoxModelObject* p
aintInvalidationContainer, LayoutRect&, const PaintInvalidationState*) const ove
rride final; | 155 virtual void mapRectToPaintInvalidationBacking(const LayoutBoxModelObject* p
aintInvalidationContainer, LayoutRect&, const PaintInvalidationState*) const ove
rride final; |
| 156 | 156 |
| 157 // This method differs from clippedOverflowRectForPaintInvalidation in that
it includes | 157 // This method differs from clippedOverflowRectForPaintInvalidation in that
it includes |
| 158 // the rects for culled inline boxes, which aren't necessary for paint inval
idation. | 158 // the rects for culled inline boxes, which aren't necessary for paint inval
idation. |
| 159 LayoutRect clippedOverflowRect(const LayoutBoxModelObject*, const PaintInval
idationState* = 0) const; | 159 LayoutRect clippedOverflowRect(const LayoutBoxModelObject*, const PaintInval
idationState* = nullptr) const; |
| 160 | 160 |
| 161 virtual void mapLocalToContainer(const LayoutBoxModelObject* paintInvalidati
onContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wa
sFixed = 0, const PaintInvalidationState* = 0) const override; | 161 virtual void mapLocalToContainer(const LayoutBoxModelObject* paintInvalidati
onContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wa
sFixed = 0, const PaintInvalidationState* = nullptr) const override; |
| 162 | 162 |
| 163 virtual PositionWithAffinity positionForPoint(const LayoutPoint&) override f
inal; | 163 virtual PositionWithAffinity positionForPoint(const LayoutPoint&) override f
inal; |
| 164 | 164 |
| 165 virtual IntRect borderBoundingBox() const override final | 165 virtual IntRect borderBoundingBox() const override final |
| 166 { | 166 { |
| 167 IntRect boundingBox = linesBoundingBox(); | 167 IntRect boundingBox = linesBoundingBox(); |
| 168 return IntRect(0, 0, boundingBox.width(), boundingBox.height()); | 168 return IntRect(0, 0, boundingBox.width(), boundingBox.height()); |
| 169 } | 169 } |
| 170 | 170 |
| 171 virtual InlineFlowBox* createInlineFlowBox(); // Subclassed by SVG and Ruby | 171 virtual InlineFlowBox* createInlineFlowBox(); // Subclassed by SVG and Ruby |
| 172 | 172 |
| 173 virtual void dirtyLinesFromChangedChild(LayoutObject* child) override final
{ m_lineBoxes.dirtyLinesFromChangedChild(this, child); } | 173 virtual void dirtyLinesFromChangedChild(LayoutObject* child) override final
{ m_lineBoxes.dirtyLinesFromChangedChild(this, child); } |
| 174 | 174 |
| 175 virtual LayoutUnit lineHeight(bool firstLine, LineDirectionMode, LinePositio
nMode = PositionOnContainingLine) const override final; | 175 virtual LayoutUnit lineHeight(bool firstLine, LineDirectionMode, LinePositio
nMode = PositionOnContainingLine) const override final; |
| 176 virtual int baselinePosition(FontBaseline, bool firstLine, LineDirectionMode
, LinePositionMode = PositionOnContainingLine) const override final; | 176 virtual int baselinePosition(FontBaseline, bool firstLine, LineDirectionMode
, LinePositionMode = PositionOnContainingLine) const override final; |
| 177 | 177 |
| 178 virtual void childBecameNonInline(LayoutObject* child) override final; | 178 virtual void childBecameNonInline(LayoutObject* child) override final; |
| 179 | 179 |
| 180 virtual void updateHitTestResult(HitTestResult&, const LayoutPoint&) overrid
e final; | 180 virtual void updateHitTestResult(HitTestResult&, const LayoutPoint&) overrid
e final; |
| 181 | 181 |
| 182 virtual void imageChanged(WrappedImagePtr, const IntRect* = 0) override fina
l; | 182 virtual void imageChanged(WrappedImagePtr, const IntRect* = nullptr) overrid
e final; |
| 183 | 183 |
| 184 virtual void addAnnotatedRegions(Vector<AnnotatedRegionValue>&) override fin
al; | 184 virtual void addAnnotatedRegions(Vector<AnnotatedRegionValue>&) override fin
al; |
| 185 | 185 |
| 186 virtual void updateFromStyle() override final; | 186 virtual void updateFromStyle() override final; |
| 187 | 187 |
| 188 LayoutInline* clone() const; | 188 LayoutInline* clone() const; |
| 189 | 189 |
| 190 LayoutBoxModelObject* continuationBefore(LayoutObject* beforeChild); | 190 LayoutBoxModelObject* continuationBefore(LayoutObject* beforeChild); |
| 191 | 191 |
| 192 LayoutObjectChildList m_children; | 192 LayoutObjectChildList m_children; |
| 193 LineBoxList m_lineBoxes; // All of the line boxes created for this inline fl
ow. For example, <i>Hello<br>world.</i> will have two <i> line boxes. | 193 LineBoxList m_lineBoxes; // All of the line boxes created for this inline fl
ow. For example, <i>Hello<br>world.</i> will have two <i> line boxes. |
| 194 }; | 194 }; |
| 195 | 195 |
| 196 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutInline, isLayoutInline()); | 196 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutInline, isLayoutInline()); |
| 197 | 197 |
| 198 } // namespace blink | 198 } // namespace blink |
| 199 | 199 |
| 200 #endif // LayoutInline_h | 200 #endif // LayoutInline_h |
| OLD | NEW |