2010-04-20 Dirk Schulze <krit@webkit.org>
[WebKit-https.git] / WebCore / svg / SVGFilterElement.h
index c89352b..d8b6653 100644 (file)
@@ -2,6 +2,7 @@
     Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
     Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
     Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+    Copyright (C) Research In Motion Limited 2010. All rights reserved.
 
     This library is free software; you can redistribute it and/or
     modify it under the terms of the GNU Library General Public
@@ -24,7 +25,6 @@
 
 #if ENABLE(SVG) && ENABLE(FILTERS)
 #include "RenderObject.h"
-#include "SVGResourceFilter.h"
 #include "SVGExternalResourcesRequired.h"
 #include "SVGLangSpace.h"
 #include "SVGStyledElement.h"
 
 namespace WebCore {
 
-    extern char SVGFilterResXIdentifier[];
-    extern char SVGFilterResYIdentifier[];
+extern char SVGFilterResXIdentifier[];
+extern char SVGFilterResYIdentifier[];
 
-    class SVGResourceFilter;
+class SVGFilterElement : public SVGStyledElement,
+                         public SVGURIReference,
+                         public SVGLangSpace,
+                         public SVGExternalResourcesRequired {
+public:
+    SVGFilterElement(const QualifiedName&, Document*);
+    virtual ~SVGFilterElement();
 
-    class SVGFilterElement : public SVGStyledElement,
-                             public SVGURIReference,
-                             public SVGLangSpace,
-                             public SVGExternalResourcesRequired {
-    public:
-        SVGFilterElement(const QualifiedName&, Document*);
-        virtual ~SVGFilterElement();
+    void setFilterRes(unsigned long filterResX, unsigned long filterResY) const;
+    FloatRect filterBoundingBox(const FloatRect&) const;
 
-        virtual SVGResource* canvasResource(const RenderObject*);
+    virtual void parseMappedAttribute(MappedAttribute*);
+    virtual void synchronizeProperty(const QualifiedName&);
 
-        void setFilterRes(unsigned long filterResX, unsigned long filterResY) const;
+    virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
 
-        virtual void parseMappedAttribute(MappedAttribute*);
-        virtual void synchronizeProperty(const QualifiedName&);
-        virtual bool rendererIsNeeded(RenderStyle*) { return false; }
+private:
+    DECLARE_ANIMATED_PROPERTY(SVGFilterElement, SVGNames::filterUnitsAttr, int, FilterUnits, filterUnits)
+    DECLARE_ANIMATED_PROPERTY(SVGFilterElement, SVGNames::primitiveUnitsAttr, int, PrimitiveUnits, primitiveUnits)
+    DECLARE_ANIMATED_PROPERTY(SVGFilterElement, SVGNames::xAttr, SVGLength, X, x)
+    DECLARE_ANIMATED_PROPERTY(SVGFilterElement, SVGNames::yAttr, SVGLength, Y, y)
+    DECLARE_ANIMATED_PROPERTY(SVGFilterElement, SVGNames::widthAttr, SVGLength, Width, width)
+    DECLARE_ANIMATED_PROPERTY(SVGFilterElement, SVGNames::heightAttr, SVGLength, Height, height)
+    DECLARE_ANIMATED_PROPERTY_MULTIPLE_WRAPPERS(SVGFilterElement, SVGNames::filterResAttr, SVGFilterResXIdentifier, long, FilterResX, filterResX)
+    DECLARE_ANIMATED_PROPERTY_MULTIPLE_WRAPPERS(SVGFilterElement, SVGNames::filterResAttr, SVGFilterResYIdentifier, long, FilterResY, filterResY)
 
-    private:
-        DECLARE_ANIMATED_PROPERTY(SVGFilterElement, SVGNames::filterUnitsAttr, int, FilterUnits, filterUnits)
-        DECLARE_ANIMATED_PROPERTY(SVGFilterElement, SVGNames::primitiveUnitsAttr, int, PrimitiveUnits, primitiveUnits)
-        DECLARE_ANIMATED_PROPERTY(SVGFilterElement, SVGNames::xAttr, SVGLength, X, x)
-        DECLARE_ANIMATED_PROPERTY(SVGFilterElement, SVGNames::yAttr, SVGLength, Y, y)
-        DECLARE_ANIMATED_PROPERTY(SVGFilterElement, SVGNames::widthAttr, SVGLength, Width, width)
-        DECLARE_ANIMATED_PROPERTY(SVGFilterElement, SVGNames::heightAttr, SVGLength, Height, height)
-        DECLARE_ANIMATED_PROPERTY_MULTIPLE_WRAPPERS(SVGFilterElement, SVGNames::filterResAttr, SVGFilterResXIdentifier, long, FilterResX, filterResX)
-        DECLARE_ANIMATED_PROPERTY_MULTIPLE_WRAPPERS(SVGFilterElement, SVGNames::filterResAttr, SVGFilterResYIdentifier, long, FilterResY, filterResY)
+    // SVGURIReference
+    DECLARE_ANIMATED_PROPERTY(SVGFilterElement, XLinkNames::hrefAttr, String, Href, href)
 
-        // SVGURIReference
-        DECLARE_ANIMATED_PROPERTY(SVGFilterElement, XLinkNames::hrefAttr, String, Href, href)
+    // SVGExternalResourcesRequired
+    DECLARE_ANIMATED_PROPERTY(SVGFilterElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+};
 
-        // SVGExternalResourcesRequired
-        DECLARE_ANIMATED_PROPERTY(SVGFilterElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+}
 
-        mutable RefPtr<SVGResourceFilter> m_filter;
-
-    private:
-        friend class SVGResourceFilter;
-        FloatRect filterBoundingBox(const FloatRect&) const;
-        void buildFilter(const FloatRect& targetRect) const;
-    };
-
-} // namespace WebCore
-
-#endif // ENABLE(SVG)
+#endif
 #endif