OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006 Apple Inc. All rights reserved. |
3 * Copyright (C) 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org> | 3 * Copyright (C) 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org> |
4 * | 4 * |
5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
9 * | 9 * |
10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
(...skipping 24 matching lines...) Expand all Loading... |
35 class SubtreeLayoutScope; | 35 class SubtreeLayoutScope; |
36 class SVGElement; | 36 class SVGElement; |
37 #if ENABLE(SVG_FONTS) | 37 #if ENABLE(SVG_FONTS) |
38 class SVGFontFaceElement; | 38 class SVGFontFaceElement; |
39 #endif | 39 #endif |
40 class SVGResourcesCache; | 40 class SVGResourcesCache; |
41 class SVGSMILElement; | 41 class SVGSMILElement; |
42 class SVGSVGElement; | 42 class SVGSVGElement; |
43 class Element; | 43 class Element; |
44 | 44 |
| 45 typedef WillBeHeapHashSet<RawPtrWillBeMember<SVGElement> > SVGElementSet; |
| 46 |
45 class SVGDocumentExtensions : public NoBaseWillBeGarbageCollectedFinalized<SVGDo
cumentExtensions> { | 47 class SVGDocumentExtensions : public NoBaseWillBeGarbageCollectedFinalized<SVGDo
cumentExtensions> { |
46 WTF_MAKE_NONCOPYABLE(SVGDocumentExtensions); WTF_MAKE_FAST_ALLOCATED_WILL_BE
_REMOVED; | 48 WTF_MAKE_NONCOPYABLE(SVGDocumentExtensions); WTF_MAKE_FAST_ALLOCATED_WILL_BE
_REMOVED; |
47 public: | 49 public: |
48 typedef HashSet<Element*> SVGPendingElements; | 50 typedef HashSet<Element*> SVGPendingElements; |
49 explicit SVGDocumentExtensions(Document*); | 51 explicit SVGDocumentExtensions(Document*); |
50 ~SVGDocumentExtensions(); | 52 ~SVGDocumentExtensions(); |
51 | 53 |
52 void addTimeContainer(SVGSVGElement*); | 54 void addTimeContainer(SVGSVGElement*); |
53 void removeTimeContainer(SVGSVGElement*); | 55 void removeTimeContainer(SVGSVGElement*); |
54 | 56 |
55 void addResource(const AtomicString& id, RenderSVGResourceContainer*); | 57 void addResource(const AtomicString& id, RenderSVGResourceContainer*); |
56 void removeResource(const AtomicString& id); | 58 void removeResource(const AtomicString& id); |
57 RenderSVGResourceContainer* resourceById(const AtomicString& id) const; | 59 RenderSVGResourceContainer* resourceById(const AtomicString& id) const; |
58 | 60 |
59 static void serviceOnAnimationFrame(Document&, double monotonicAnimationStar
tTime); | 61 static void serviceOnAnimationFrame(Document&, double monotonicAnimationStar
tTime); |
60 | 62 |
61 void startAnimations(); | 63 void startAnimations(); |
62 void pauseAnimations(); | 64 void pauseAnimations(); |
63 void dispatchSVGLoadEventToOutermostSVGElements(); | 65 void dispatchSVGLoadEventToOutermostSVGElements(); |
64 | 66 |
65 void reportWarning(const String&); | 67 void reportWarning(const String&); |
66 void reportError(const String&); | 68 void reportError(const String&); |
67 | 69 |
68 SVGResourcesCache* resourcesCache() const { return m_resourcesCache.get(); } | 70 SVGResourcesCache* resourcesCache() const { return m_resourcesCache.get(); } |
69 | 71 |
70 HashSet<SVGElement*>* setOfElementsReferencingTarget(SVGElement* referencedE
lement) const; | 72 SVGElementSet* setOfElementsReferencingTarget(SVGElement* referencedElement)
const; |
71 void addElementReferencingTarget(SVGElement* referencingElement, SVGElement*
referencedElement); | 73 void addElementReferencingTarget(SVGElement* referencingElement, SVGElement*
referencedElement); |
72 void removeAllTargetReferencesForElement(SVGElement*); | 74 void removeAllTargetReferencesForElement(SVGElement*); |
73 void rebuildAllElementReferencesForTarget(SVGElement*); | 75 void rebuildAllElementReferencesForTarget(SVGElement*); |
74 void removeAllElementReferencesForTarget(SVGElement*); | 76 void removeAllElementReferencesForTarget(SVGElement*); |
75 | 77 |
76 void addSVGRootWithRelativeLengthDescendents(SVGSVGElement*); | 78 void addSVGRootWithRelativeLengthDescendents(SVGSVGElement*); |
77 void removeSVGRootWithRelativeLengthDescendents(SVGSVGElement*); | 79 void removeSVGRootWithRelativeLengthDescendents(SVGSVGElement*); |
78 bool isSVGRootWithRelativeLengthDescendents(SVGSVGElement*) const; | 80 bool isSVGRootWithRelativeLengthDescendents(SVGSVGElement*) const; |
79 void invalidateSVGRootsWithRelativeLengthDescendents(SubtreeLayoutScope*); | 81 void invalidateSVGRootsWithRelativeLengthDescendents(SubtreeLayoutScope*); |
80 | 82 |
(...skipping 10 matching lines...) Expand all Loading... |
91 | 93 |
92 void startPan(const FloatPoint& start); | 94 void startPan(const FloatPoint& start); |
93 void updatePan(const FloatPoint& pos) const; | 95 void updatePan(const FloatPoint& pos) const; |
94 | 96 |
95 static SVGSVGElement* rootElement(const Document&); | 97 static SVGSVGElement* rootElement(const Document&); |
96 SVGSVGElement* rootElement() const; | 98 SVGSVGElement* rootElement() const; |
97 | 99 |
98 void trace(Visitor*); | 100 void trace(Visitor*); |
99 | 101 |
100 private: | 102 private: |
101 Document* m_document; // weak reference | 103 RawPtrWillBeMember<Document> m_document; |
102 WillBeHeapHashSet<RawPtrWillBeMember<SVGSVGElement> > m_timeContainers; // F
or SVG 1.2 support this will need to be made more general. | 104 WillBeHeapHashSet<RawPtrWillBeMember<SVGSVGElement> > m_timeContainers; // F
or SVG 1.2 support this will need to be made more general. |
103 #if ENABLE(SVG_FONTS) | 105 #if ENABLE(SVG_FONTS) |
104 WillBeHeapHashSet<RawPtrWillBeMember<SVGFontFaceElement> > m_svgFontFaceElem
ents; | 106 WillBeHeapHashSet<RawPtrWillBeMember<SVGFontFaceElement> > m_svgFontFaceElem
ents; |
105 // SVGFontFaceElements that are pending and scheduled for removal. | 107 // SVGFontFaceElements that are pending and scheduled for removal. |
106 WillBeHeapHashSet<RefPtrWillBeMember<SVGFontFaceElement> > m_pendingSVGFontF
aceElementsForRemoval; | 108 WillBeHeapHashSet<RefPtrWillBeMember<SVGFontFaceElement> > m_pendingSVGFontF
aceElementsForRemoval; |
107 #endif | 109 #endif |
108 HashMap<AtomicString, RenderSVGResourceContainer*> m_resources; | 110 HashMap<AtomicString, RenderSVGResourceContainer*> m_resources; |
109 HashMap<AtomicString, OwnPtr<SVGPendingElements> > m_pendingResources; // Re
sources that are pending. | 111 HashMap<AtomicString, OwnPtr<SVGPendingElements> > m_pendingResources; // Re
sources that are pending. |
110 HashMap<AtomicString, OwnPtr<SVGPendingElements> > m_pendingResourcesForRemo
val; // Resources that are pending and scheduled for removal. | 112 HashMap<AtomicString, OwnPtr<SVGPendingElements> > m_pendingResourcesForRemo
val; // Resources that are pending and scheduled for removal. |
111 HashMap<SVGElement*, OwnPtr<HashSet<SVGElement*> > > m_elementDependencies; | 113 typedef WillBeHeapHashMap<RawPtrWillBeMember<SVGElement>, OwnPtrWillBeMember
<SVGElementSet> > ElementDependenciesMap; |
| 114 ElementDependenciesMap m_elementDependencies; |
112 OwnPtr<SVGResourcesCache> m_resourcesCache; | 115 OwnPtr<SVGResourcesCache> m_resourcesCache; |
113 WillBeHeapHashSet<RawPtrWillBeMember<SVGSVGElement> > m_relativeLengthSVGRoo
ts; // Root SVG elements with relative length descendants. | 116 WillBeHeapHashSet<RawPtrWillBeMember<SVGSVGElement> > m_relativeLengthSVGRoo
ts; // Root SVG elements with relative length descendants. |
114 FloatPoint m_translate; | 117 FloatPoint m_translate; |
115 #if !ASSERT_DISABLED | 118 #if !ASSERT_DISABLED |
116 bool m_inRelativeLengthSVGRootsInvalidation; | 119 bool m_inRelativeLengthSVGRootsInvalidation; |
117 #endif | 120 #endif |
118 | 121 |
119 public: | 122 public: |
120 // This HashMap contains a list of pending resources. Pending resources, are
such | 123 // This HashMap contains a list of pending resources. Pending resources, are
such |
121 // which are referenced by any object in the SVG document, but do NOT exist
yet. | 124 // which are referenced by any object in the SVG document, but do NOT exist
yet. |
(...skipping 12 matching lines...) Expand all Loading... |
134 void markPendingResourcesForRemoval(const AtomicString&); | 137 void markPendingResourcesForRemoval(const AtomicString&); |
135 Element* removeElementFromPendingResourcesForRemoval(const AtomicString&); | 138 Element* removeElementFromPendingResourcesForRemoval(const AtomicString&); |
136 | 139 |
137 private: | 140 private: |
138 PassOwnPtr<SVGPendingElements> removePendingResourceForRemoval(const AtomicS
tring&); | 141 PassOwnPtr<SVGPendingElements> removePendingResourceForRemoval(const AtomicS
tring&); |
139 }; | 142 }; |
140 | 143 |
141 } | 144 } |
142 | 145 |
143 #endif | 146 #endif |
OLD | NEW |