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 22 matching lines...) Expand all Loading... |
33 namespace WebCore { | 33 namespace WebCore { |
34 | 34 |
35 class Document; | 35 class Document; |
36 class RenderSVGResourceContainer; | 36 class RenderSVGResourceContainer; |
37 class SVGStyledElement; | 37 class SVGStyledElement; |
38 class SVGSMILElement; | 38 class SVGSMILElement; |
39 class SVGSVGElement; | 39 class SVGSVGElement; |
40 | 40 |
41 class SVGDocumentExtensions : public Noncopyable { | 41 class SVGDocumentExtensions : public Noncopyable { |
42 public: | 42 public: |
| 43 typedef HashSet<RefPtr<SVGStyledElement> > SVGPendingElements; |
43 SVGDocumentExtensions(Document*); | 44 SVGDocumentExtensions(Document*); |
44 ~SVGDocumentExtensions(); | 45 ~SVGDocumentExtensions(); |
45 | 46 |
46 void addTimeContainer(SVGSVGElement*); | 47 void addTimeContainer(SVGSVGElement*); |
47 void removeTimeContainer(SVGSVGElement*); | 48 void removeTimeContainer(SVGSVGElement*); |
48 | 49 |
49 void addResource(const AtomicString& id, RenderSVGResourceContainer*); | 50 void addResource(const AtomicString& id, RenderSVGResourceContainer*); |
50 void removeResource(const AtomicString& id); | 51 void removeResource(const AtomicString& id); |
51 RenderSVGResourceContainer* resourceById(const AtomicString& id) const; | 52 RenderSVGResourceContainer* resourceById(const AtomicString& id) const; |
52 | 53 |
53 void startAnimations(); | 54 void startAnimations(); |
54 void pauseAnimations(); | 55 void pauseAnimations(); |
55 void unpauseAnimations(); | 56 void unpauseAnimations(); |
56 bool sampleAnimationAtTime(const String& elementId, SVGSMILElement*, double
time); | 57 bool sampleAnimationAtTime(const String& elementId, SVGSMILElement*, double
time); |
57 | 58 |
58 void reportWarning(const String&); | 59 void reportWarning(const String&); |
59 void reportError(const String&); | 60 void reportError(const String&); |
60 | 61 |
61 SVGResourcesCache* resourcesCache() const { return m_resourcesCache.get(); } | 62 SVGResourcesCache* resourcesCache() const { return m_resourcesCache.get(); } |
62 | 63 |
63 private: | 64 private: |
64 Document* m_document; // weak reference | 65 Document* m_document; // weak reference |
65 HashSet<SVGSVGElement*> m_timeContainers; // For SVG 1.2 support this will n
eed to be made more general. | 66 HashSet<SVGSVGElement*> m_timeContainers; // For SVG 1.2 support this will n
eed to be made more general. |
66 HashMap<AtomicString, RenderSVGResourceContainer*> m_resources; | 67 HashMap<AtomicString, RenderSVGResourceContainer*> m_resources; |
67 HashMap<AtomicString, HashSet<SVGStyledElement*>*> m_pendingResources; | 68 HashMap<AtomicString, SVGPendingElements*> m_pendingResources; |
68 OwnPtr<SVGResourcesCache> m_resourcesCache; | 69 OwnPtr<SVGResourcesCache> m_resourcesCache; |
69 | 70 |
70 SVGDocumentExtensions(const SVGDocumentExtensions&); | 71 SVGDocumentExtensions(const SVGDocumentExtensions&); |
71 SVGDocumentExtensions& operator=(const SVGDocumentExtensions&); | 72 SVGDocumentExtensions& operator=(const SVGDocumentExtensions&); |
72 | 73 |
73 public: | 74 public: |
74 // This HashMap contains a list of pending resources. Pending resources, are
such | 75 // This HashMap contains a list of pending resources. Pending resources, are
such |
75 // which are referenced by any object in the SVG document, but do NOT exist
yet. | 76 // which are referenced by any object in the SVG document, but do NOT exist
yet. |
76 // For instance, dynamically build gradients / patterns / clippers... | 77 // For instance, dynamically build gradients / patterns / clippers... |
77 void addPendingResource(const AtomicString& id, SVGStyledElement*); | 78 void addPendingResource(const AtomicString& id, PassRefPtr<SVGStyledElement>
); |
78 bool isPendingResource(const AtomicString& id) const; | 79 bool isPendingResource(const AtomicString& id) const; |
79 PassOwnPtr<HashSet<SVGStyledElement*> > removePendingResource(const AtomicSt
ring& id); | 80 PassOwnPtr<SVGPendingElements> removePendingResource(const AtomicString& id)
; |
80 }; | 81 }; |
81 | 82 |
82 } | 83 } |
83 | 84 |
84 #endif | 85 #endif |
85 #endif | 86 #endif |
OLD | NEW |