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

Side by Side Diff: Source/WebCore/rendering/svg/RenderSVGText.h

Issue 10443073: Merge 117225 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1132/
Patch Set: Created 8 years, 6 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006 Apple Computer, Inc. 2 * Copyright (C) 2006 Apple Computer, Inc.
3 * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org> 3 * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
4 * Copyright (C) Research In Motion Limited 2010-2012. All rights reserved. 4 * Copyright (C) Research In Motion Limited 2010-2012. 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 18 matching lines...) Expand all
29 29
30 namespace WebCore { 30 namespace WebCore {
31 31
32 class RenderSVGInlineText; 32 class RenderSVGInlineText;
33 class SVGTextElement; 33 class SVGTextElement;
34 class RenderSVGInlineText; 34 class RenderSVGInlineText;
35 35
36 class RenderSVGText : public RenderSVGBlock { 36 class RenderSVGText : public RenderSVGBlock {
37 public: 37 public:
38 RenderSVGText(SVGTextElement*); 38 RenderSVGText(SVGTextElement*);
39 virtual ~RenderSVGText();
39 40
40 virtual bool isChildAllowed(RenderObject*, RenderStyle*) const; 41 virtual bool isChildAllowed(RenderObject*, RenderStyle*) const;
41 42
42 void setNeedsPositioningValuesUpdate() { m_needsPositioningValuesUpdate = tr ue; } 43 void setNeedsPositioningValuesUpdate() { m_needsPositioningValuesUpdate = tr ue; }
43 virtual void setNeedsTransformUpdate() { m_needsTransformUpdate = true; } 44 virtual void setNeedsTransformUpdate() { m_needsTransformUpdate = true; }
44 void setNeedsTextMetricsUpdate() { m_needsTextMetricsUpdate = true; } 45 void setNeedsTextMetricsUpdate() { m_needsTextMetricsUpdate = true; }
45 virtual FloatRect repaintRectInLocalCoordinates() const; 46 virtual FloatRect repaintRectInLocalCoordinates() const;
46 47
47 static RenderSVGText* locateRenderSVGTextAncestor(RenderObject*); 48 static RenderSVGText* locateRenderSVGTextAncestor(RenderObject*);
48 static const RenderSVGText* locateRenderSVGTextAncestor(const RenderObject*) ; 49 static const RenderSVGText* locateRenderSVGTextAncestor(const RenderObject*) ;
49 50
50 bool needsReordering() const { return m_needsReordering; } 51 bool needsReordering() const { return m_needsReordering; }
52 Vector<SVGTextLayoutAttributes*>& layoutAttributes() { return m_layoutAttrib utes; }
51 53
52 // Call this method when either the children of a DOM text element have chan ged, or the length of 54 void subtreeChildWasAdded(RenderObject*);
53 // the text in any child element has changed. 55 void subtreeChildWillBeRemoved(RenderSVGInlineText*, Vector<SVGTextLayoutAtt ributes*, 2>& affectedAttributes);
54 void invalidateTextPositioningElements(); 56 void subtreeChildWasRemoved(const Vector<SVGTextLayoutAttributes*, 2>& affec tedAttributes);
55 57 void subtreeStyleDidChange(RenderSVGInlineText*);
56 void layoutAttributesChanged(RenderObject*); 58 void subtreeTextDidChange(RenderSVGInlineText*);
57 void layoutAttributesWillBeDestroyed(RenderSVGInlineText*, Vector<SVGTextLay outAttributes*>& affectedAttributes);
58 void rebuildLayoutAttributes(bool performFullRebuild = false);
59 void rebuildLayoutAttributes(Vector<SVGTextLayoutAttributes*>& affectedAttri butes);
60
61 Vector<SVGTextLayoutAttributes*>& layoutAttributes() { return m_layoutAttrib utes; }
62 59
63 private: 60 private:
64 virtual const char* renderName() const { return "RenderSVGText"; } 61 virtual const char* renderName() const { return "RenderSVGText"; }
65 virtual bool isSVGText() const { return true; } 62 virtual bool isSVGText() const { return true; }
66 63
67 virtual void paint(PaintInfo&, const LayoutPoint&); 64 virtual void paint(PaintInfo&, const LayoutPoint&);
68 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const Layout Point& pointInContainer, const LayoutPoint& accumulatedOffset, HitTestAction); 65 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const Layout Point& pointInContainer, const LayoutPoint& accumulatedOffset, HitTestAction);
69 virtual bool nodeAtFloatPoint(const HitTestRequest&, HitTestResult&, const F loatPoint& pointInParent, HitTestAction); 66 virtual bool nodeAtFloatPoint(const HitTestRequest&, HitTestResult&, const F loatPoint& pointInParent, HitTestAction);
70 virtual VisiblePosition positionForPoint(const LayoutPoint&); 67 virtual VisiblePosition positionForPoint(const LayoutPoint&);
71 68
72 virtual bool requiresLayer() const { return false; } 69 virtual bool requiresLayer() const { return false; }
73 virtual void layout(); 70 virtual void layout();
74 71
75 virtual void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const; 72 virtual void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const;
76 73
77 virtual LayoutRect clippedOverflowRectForRepaint(RenderBoxModelObject* repai ntContainer) const; 74 virtual LayoutRect clippedOverflowRectForRepaint(RenderBoxModelObject* repai ntContainer) const;
78 virtual void computeRectForRepaint(RenderBoxModelObject* repaintContainer, L ayoutRect&, bool fixed = false) const; 75 virtual void computeRectForRepaint(RenderBoxModelObject* repaintContainer, L ayoutRect&, bool fixed = false) const;
79 virtual void computeFloatRectForRepaint(RenderBoxModelObject* repaintContain er, FloatRect&, bool fixed = false) const; 76 virtual void computeFloatRectForRepaint(RenderBoxModelObject* repaintContain er, FloatRect&, bool fixed = false) const;
80 77
81 virtual void mapLocalToContainer(RenderBoxModelObject* repaintContainer, boo l useTransforms, bool fixed, TransformState&, ApplyContainerFlipOrNot = ApplyCon tainerFlip, bool* wasFixed = 0) const; 78 virtual void mapLocalToContainer(RenderBoxModelObject* repaintContainer, boo l useTransforms, bool fixed, TransformState&, ApplyContainerFlipOrNot = ApplyCon tainerFlip, bool* wasFixed = 0) const;
82 virtual void addChild(RenderObject* child, RenderObject* beforeChild = 0); 79 virtual void addChild(RenderObject* child, RenderObject* beforeChild = 0);
80 virtual void removeChild(RenderObject*) OVERRIDE;
81 virtual void willBeDestroyed() OVERRIDE;
83 82
84 virtual FloatRect objectBoundingBox() const { return frameRect(); } 83 virtual FloatRect objectBoundingBox() const { return frameRect(); }
85 virtual FloatRect strokeBoundingBox() const; 84 virtual FloatRect strokeBoundingBox() const;
86 85
87 virtual const AffineTransform& localToParentTransform() const { return m_loc alTransform; } 86 virtual const AffineTransform& localToParentTransform() const { return m_loc alTransform; }
88 virtual AffineTransform localTransform() const { return m_localTransform; } 87 virtual AffineTransform localTransform() const { return m_localTransform; }
89 virtual RootInlineBox* createRootInlineBox(); 88 virtual RootInlineBox* createRootInlineBox();
90 89
91 virtual RenderBlock* firstLineBlock() const; 90 virtual RenderBlock* firstLineBlock() const;
92 virtual void updateFirstLetter(); 91 virtual void updateFirstLetter();
93 92
93 bool shouldHandleSubtreeMutations() const;
94
94 bool m_needsReordering : 1; 95 bool m_needsReordering : 1;
95 bool m_needsPositioningValuesUpdate : 1; 96 bool m_needsPositioningValuesUpdate : 1;
96 bool m_needsTransformUpdate : 1; 97 bool m_needsTransformUpdate : 1;
97 bool m_needsTextMetricsUpdate : 1; 98 bool m_needsTextMetricsUpdate : 1;
98 AffineTransform m_localTransform; 99 AffineTransform m_localTransform;
99 SVGTextLayoutAttributesBuilder m_layoutAttributesBuilder; 100 SVGTextLayoutAttributesBuilder m_layoutAttributesBuilder;
100 Vector<SVGTextLayoutAttributes*> m_layoutAttributes; 101 Vector<SVGTextLayoutAttributes*> m_layoutAttributes;
101 }; 102 };
102 103
103 inline RenderSVGText* toRenderSVGText(RenderObject* object) 104 inline RenderSVGText* toRenderSVGText(RenderObject* object)
104 { 105 {
105 ASSERT(!object || object->isSVGText()); 106 ASSERT(!object || object->isSVGText());
106 return static_cast<RenderSVGText*>(object); 107 return static_cast<RenderSVGText*>(object);
107 } 108 }
108 109
109 inline const RenderSVGText* toRenderSVGText(const RenderObject* object) 110 inline const RenderSVGText* toRenderSVGText(const RenderObject* object)
110 { 111 {
111 ASSERT(!object || object->isSVGText()); 112 ASSERT(!object || object->isSVGText());
112 return static_cast<const RenderSVGText*>(object); 113 return static_cast<const RenderSVGText*>(object);
113 } 114 }
114 115
115 // This will catch anyone doing an unnecessary cast. 116 // This will catch anyone doing an unnecessary cast.
116 void toRenderSVGText(const RenderSVGText*); 117 void toRenderSVGText(const RenderSVGText*);
117 118
118 } 119 }
119 120
120 #endif // ENABLE(SVG) 121 #endif // ENABLE(SVG)
121 #endif 122 #endif
OLDNEW
« no previous file with comments | « Source/WebCore/rendering/svg/RenderSVGInlineText.cpp ('k') | Source/WebCore/rendering/svg/RenderSVGText.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698