1 /* 2 * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann (at) kde.org> 3 * Copyright (C) 2004, 2005, 2007 Rob Buis <buis (at) kde.org> 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Library General Public 7 * License as published by the Free Software Foundation; either 8 * version 2 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Library General Public License for more details. 14 * 15 * You should have received a copy of the GNU Library General Public License 16 * along with this library; see the file COPYING.LIB. If not, write to 17 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 18 * Boston, MA 02110-1301, USA. 19 */ 20 21 #ifndef SVGScriptElement_h 22 #define SVGScriptElement_h 23 24 #if ENABLE(SVG) 25 #include "SVGAnimatedBoolean.h" 26 #include "SVGAnimatedString.h" 27 #include "SVGElement.h" 28 #include "SVGExternalResourcesRequired.h" 29 #include "SVGURIReference.h" 30 #include "ScriptElement.h" 31 32 namespace WebCore { 33 34 class SVGScriptElement : public SVGElement 35 , public SVGURIReference 36 , public SVGExternalResourcesRequired 37 , public ScriptElement { 38 public: 39 static PassRefPtr<SVGScriptElement> create(const QualifiedName&, Document*, bool wasInsertedByParser); 40 41 String type() const; 42 void setType(const String&); 43 44 private: 45 SVGScriptElement(const QualifiedName&, Document*, bool wasInsertedByParser, bool alreadyStarted); 46 47 virtual void parseMappedAttribute(Attribute*); 48 virtual void insertedIntoDocument(); 49 virtual void removedFromDocument(); 50 virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0); 51 52 virtual void svgAttributeChanged(const QualifiedName&); 53 virtual void synchronizeProperty(const QualifiedName&); 54 virtual void fillAttributeToPropertyTypeMap(); 55 virtual AttributeToPropertyTypeMap& attributeToPropertyTypeMap(); 56 virtual bool isURLAttribute(Attribute*) const; 57 virtual void finishParsingChildren(); 58 59 virtual void addSubresourceAttributeURLs(ListHashSet<KURL>&) const; 60 61 virtual bool haveLoadedRequiredResources(); 62 63 virtual String sourceAttributeValue() const; 64 virtual String charsetAttributeValue() const; 65 virtual String typeAttributeValue() const; 66 virtual String languageAttributeValue() const; 67 virtual String forAttributeValue() const; 68 virtual String eventAttributeValue() const; 69 virtual bool asyncAttributeValue() const; 70 virtual bool deferAttributeValue() const; 71 virtual bool hasSourceAttribute() const; 72 73 virtual void dispatchLoadEvent(); 74 virtual void dispatchErrorEvent(); 75 76 PassRefPtr<Element> cloneElementWithoutAttributesAndChildren() const; 77 78 // Animated property declarations 79 80 // SVGURIReference 81 DECLARE_ANIMATED_STRING(Href, href) 82 83 // SVGExternalResourcesRequired 84 DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired) 85 86 String m_type; 87 }; 88 89 } // namespace WebCore 90 91 #endif // ENABLE(SVG) 92 #endif 93