OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org> | 2 * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org> |
3 * Copyright (C) 2004, 2005, 2007 Rob Buis <buis@kde.org> | 3 * Copyright (C) 2004, 2005, 2007 Rob Buis <buis@kde.org> |
4 * Copyright (C) 2009 Google, Inc. All rights reserved. | 4 * Copyright (C) 2009 Google, Inc. All rights reserved. |
5 * Copyright (C) 2009 Apple Inc. All rights reserved. | 5 * Copyright (C) 2009 Apple Inc. All rights 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 26 matching lines...) Expand all Loading... |
37 bool isEmbeddedThroughSVGImage() const; | 37 bool isEmbeddedThroughSVGImage() const; |
38 bool isEmbeddedThroughFrameContainingSVGDocument() const; | 38 bool isEmbeddedThroughFrameContainingSVGDocument() const; |
39 | 39 |
40 virtual void computeIntrinsicRatioInformation(FloatSize& intrinsicSize, doub
le& intrinsicRatio) const override; | 40 virtual void computeIntrinsicRatioInformation(FloatSize& intrinsicSize, doub
le& intrinsicRatio) const override; |
41 virtual void mapRectToPaintInvalidationBacking(const LayoutLayerModelObject*
paintInvalidationContainer, LayoutRect&, const PaintInvalidationState*) const o
verride; | 41 virtual void mapRectToPaintInvalidationBacking(const LayoutLayerModelObject*
paintInvalidationContainer, LayoutRect&, const PaintInvalidationState*) const o
verride; |
42 | 42 |
43 // If you have a RenderSVGRoot, use firstChild or lastChild instead. | 43 // If you have a RenderSVGRoot, 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 RenderObject* firstChild() const { ASSERT(children() == virtualChildren());
return children()->firstChild(); } | 47 LayoutObject* firstChild() const { ASSERT(children() == virtualChildren());
return children()->firstChild(); } |
48 RenderObject* lastChild() const { ASSERT(children() == virtualChildren()); r
eturn children()->lastChild(); } | 48 LayoutObject* lastChild() const { ASSERT(children() == virtualChildren()); r
eturn children()->lastChild(); } |
49 | 49 |
50 bool isLayoutSizeChanged() const { return m_isLayoutSizeChanged; } | 50 bool isLayoutSizeChanged() const { return m_isLayoutSizeChanged; } |
51 virtual void setNeedsBoundariesUpdate() override { m_needsBoundariesOrTransf
ormUpdate = true; } | 51 virtual void setNeedsBoundariesUpdate() override { m_needsBoundariesOrTransf
ormUpdate = true; } |
52 virtual void setNeedsTransformUpdate() override { m_needsBoundariesOrTransfo
rmUpdate = true; } | 52 virtual void setNeedsTransformUpdate() override { m_needsBoundariesOrTransfo
rmUpdate = true; } |
53 | 53 |
54 IntSize containerSize() const { return m_containerSize; } | 54 IntSize containerSize() const { return m_containerSize; } |
55 void setContainerSize(const IntSize& containerSize) | 55 void setContainerSize(const IntSize& containerSize) |
56 { | 56 { |
57 // SVGImage::draw() does a view layout prior to painting, | 57 // SVGImage::draw() does a view layout prior to painting, |
58 // and we need that layout to know of the new size otherwise | 58 // and we need that layout to know of the new size otherwise |
59 // the rendering may be incorrectly using the old size. | 59 // the rendering may be incorrectly using the old size. |
60 if (m_containerSize != containerSize) | 60 if (m_containerSize != containerSize) |
61 setNeedsLayoutAndFullPaintInvalidation(); | 61 setNeedsLayoutAndFullPaintInvalidation(); |
62 m_containerSize = containerSize; | 62 m_containerSize = containerSize; |
63 } | 63 } |
64 | 64 |
65 // localToBorderBoxTransform maps local SVG viewport coordinates to local CS
S box coordinates. | 65 // localToBorderBoxTransform maps local SVG viewport coordinates to local CS
S box coordinates. |
66 const AffineTransform& localToBorderBoxTransform() const { return m_localToB
orderBoxTransform; } | 66 const AffineTransform& localToBorderBoxTransform() const { return m_localToB
orderBoxTransform; } |
67 bool shouldApplyViewportClip() const; | 67 bool shouldApplyViewportClip() const; |
68 | 68 |
69 virtual bool hasNonIsolatedBlendingDescendants() const override final; | 69 virtual bool hasNonIsolatedBlendingDescendants() const override final; |
70 | 70 |
71 private: | 71 private: |
72 const RenderObjectChildList* children() const { return &m_children; } | 72 const LayoutObjectChildList* children() const { return &m_children; } |
73 RenderObjectChildList* children() { return &m_children; } | 73 LayoutObjectChildList* children() { return &m_children; } |
74 | 74 |
75 virtual RenderObjectChildList* virtualChildren() override { return children(
); } | 75 virtual LayoutObjectChildList* virtualChildren() override { return children(
); } |
76 virtual const RenderObjectChildList* virtualChildren() const override { retu
rn children(); } | 76 virtual const LayoutObjectChildList* virtualChildren() const override { retu
rn children(); } |
77 | 77 |
78 virtual const char* renderName() const override { return "RenderSVGRoot"; } | 78 virtual const char* renderName() const override { return "RenderSVGRoot"; } |
79 virtual bool isOfType(RenderObjectType type) const override { return type ==
RenderObjectSVG || type == RenderObjectSVGRoot || RenderReplaced::isOfType(type
); } | 79 virtual bool isOfType(LayoutObjectType type) const override { return type ==
LayoutObjectSVG || type == LayoutObjectSVGRoot || RenderReplaced::isOfType(type
); } |
80 | 80 |
81 virtual LayoutUnit computeReplacedLogicalWidth(ShouldComputePreferred = Com
puteActual) const override; | 81 virtual LayoutUnit computeReplacedLogicalWidth(ShouldComputePreferred = Com
puteActual) const override; |
82 virtual LayoutUnit computeReplacedLogicalHeight() const override; | 82 virtual LayoutUnit computeReplacedLogicalHeight() const override; |
83 virtual void layout() override; | 83 virtual void layout() override; |
84 virtual void paintReplaced(const PaintInfo&, const LayoutPoint&) override; | 84 virtual void paintReplaced(const PaintInfo&, const LayoutPoint&) override; |
85 | 85 |
86 virtual void willBeDestroyed() override; | 86 virtual void willBeDestroyed() override; |
87 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) ov
erride; | 87 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) ov
erride; |
88 virtual bool isChildAllowed(RenderObject*, const RenderStyle&) const overrid
e; | 88 virtual bool isChildAllowed(LayoutObject*, const RenderStyle&) const overrid
e; |
89 virtual void addChild(RenderObject* child, RenderObject* beforeChild = 0) ov
erride; | 89 virtual void addChild(LayoutObject* child, LayoutObject* beforeChild = 0) ov
erride; |
90 virtual void removeChild(RenderObject*) override; | 90 virtual void removeChild(LayoutObject*) override; |
91 | 91 |
92 virtual void insertedIntoTree() override; | 92 virtual void insertedIntoTree() override; |
93 virtual void willBeRemovedFromTree() override; | 93 virtual void willBeRemovedFromTree() override; |
94 | 94 |
95 virtual const AffineTransform& localToParentTransform() const override; | 95 virtual const AffineTransform& localToParentTransform() const override; |
96 | 96 |
97 virtual FloatRect objectBoundingBox() const override { return m_objectBoundi
ngBox; } | 97 virtual FloatRect objectBoundingBox() const override { return m_objectBoundi
ngBox; } |
98 virtual FloatRect strokeBoundingBox() const override { return m_strokeBoundi
ngBox; } | 98 virtual FloatRect strokeBoundingBox() const override { return m_strokeBoundi
ngBox; } |
99 virtual FloatRect paintInvalidationRectInLocalCoordinates() const override {
return m_paintInvalidationBoundingBox; } | 99 virtual FloatRect paintInvalidationRectInLocalCoordinates() const override {
return m_paintInvalidationBoundingBox; } |
100 | 100 |
101 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes
tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAct
ion) override; | 101 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes
tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAct
ion) override; |
102 | 102 |
103 virtual LayoutRect clippedOverflowRectForPaintInvalidation(const LayoutLayer
ModelObject* paintInvalidationContainer, const PaintInvalidationState* = 0) cons
t override; | 103 virtual LayoutRect clippedOverflowRectForPaintInvalidation(const LayoutLayer
ModelObject* paintInvalidationContainer, const PaintInvalidationState* = 0) cons
t override; |
104 | 104 |
105 virtual void mapLocalToContainer(const LayoutLayerModelObject* paintInvalida
tionContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool*
wasFixed = 0, const PaintInvalidationState* = 0) const override; | 105 virtual void mapLocalToContainer(const LayoutLayerModelObject* paintInvalida
tionContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool*
wasFixed = 0, const PaintInvalidationState* = 0) const override; |
106 virtual const RenderObject* pushMappingToContainer(const LayoutLayerModelObj
ect* ancestorToStopAt, RenderGeometryMap&) const override; | 106 virtual const LayoutObject* pushMappingToContainer(const LayoutLayerModelObj
ect* ancestorToStopAt, RenderGeometryMap&) const override; |
107 | 107 |
108 virtual bool canBeSelectionLeaf() const override { return false; } | 108 virtual bool canBeSelectionLeaf() const override { return false; } |
109 virtual bool canHaveChildren() const override { return true; } | 109 virtual bool canHaveChildren() const override { return true; } |
110 | 110 |
111 virtual void descendantIsolationRequirementsChanged(DescendantIsolationState
) override final; | 111 virtual void descendantIsolationRequirementsChanged(DescendantIsolationState
) override final; |
112 | 112 |
113 void updateCachedBoundaries(); | 113 void updateCachedBoundaries(); |
114 void buildLocalToBorderBoxTransform(); | 114 void buildLocalToBorderBoxTransform(); |
115 | 115 |
116 RenderObjectChildList m_children; | 116 LayoutObjectChildList m_children; |
117 IntSize m_containerSize; | 117 IntSize m_containerSize; |
118 FloatRect m_objectBoundingBox; | 118 FloatRect m_objectBoundingBox; |
119 bool m_objectBoundingBoxValid; | 119 bool m_objectBoundingBoxValid; |
120 FloatRect m_strokeBoundingBox; | 120 FloatRect m_strokeBoundingBox; |
121 FloatRect m_paintInvalidationBoundingBox; | 121 FloatRect m_paintInvalidationBoundingBox; |
122 mutable AffineTransform m_localToParentTransform; | 122 mutable AffineTransform m_localToParentTransform; |
123 AffineTransform m_localToBorderBoxTransform; | 123 AffineTransform m_localToBorderBoxTransform; |
124 bool m_isLayoutSizeChanged : 1; | 124 bool m_isLayoutSizeChanged : 1; |
125 bool m_needsBoundariesOrTransformUpdate : 1; | 125 bool m_needsBoundariesOrTransformUpdate : 1; |
126 bool m_hasBoxDecorationBackground : 1; | 126 bool m_hasBoxDecorationBackground : 1; |
127 mutable bool m_hasNonIsolatedBlendingDescendants : 1; | 127 mutable bool m_hasNonIsolatedBlendingDescendants : 1; |
128 mutable bool m_hasNonIsolatedBlendingDescendantsDirty : 1; | 128 mutable bool m_hasNonIsolatedBlendingDescendantsDirty : 1; |
129 }; | 129 }; |
130 | 130 |
131 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderSVGRoot, isSVGRoot()); | 131 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(RenderSVGRoot, isSVGRoot()); |
132 | 132 |
133 } // namespace blink | 133 } // namespace blink |
134 | 134 |
135 #endif // RenderSVGRoot_h | 135 #endif // RenderSVGRoot_h |
OLD | NEW |