Make createRenderer() return RenderElement
[WebKit.git] / Source / WebCore / svg / SVGRadialGradientElement.h
index 7c9c75d..cbe08a0 100644 (file)
 #if ENABLE(SVG)
 #include "SVGAnimatedLength.h"
 #include "SVGGradientElement.h"
+#include "SVGNames.h"
 
 namespace WebCore {
 
 struct RadialGradientAttributes;
 
-class SVGRadialGradientElement : public SVGGradientElement {
+class SVGRadialGradientElement FINAL : public SVGGradientElement {
 public:
-    static PassRefPtr<SVGRadialGradientElement> create(const QualifiedName&, Document*);
+    static PassRefPtr<SVGRadialGradientElement> create(const QualifiedName&, Document&);
 
-    void collectGradientAttributes(RadialGradientAttributes&);
-    void calculateFocalCenterPointsAndRadius(const RadialGradientAttributes&, FloatPoint& focalPoint, FloatPoint& centerPoint, float& radius);
+    bool collectGradientAttributes(RadialGradientAttributes&);
 
 private:
-    SVGRadialGradientElement(const QualifiedName&, Document*);
+    SVGRadialGradientElement(const QualifiedName&, Document&);
 
     bool isSupportedAttribute(const QualifiedName&);
-    virtual void parseMappedAttribute(Attribute*);
+    virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE;
     virtual void svgAttributeChanged(const QualifiedName&);
-    virtual void synchronizeProperty(const QualifiedName&);
-    virtual void fillAttributeToPropertyTypeMap();
-    virtual AttributeToPropertyTypeMap& attributeToPropertyTypeMap();
 
-    virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
+    virtual RenderElement* createRenderer(RenderArena&, RenderStyle&);
 
     virtual bool selfHasRelativeLengths() const;
 
-    // Animated property declarations
-    DECLARE_ANIMATED_LENGTH(Cx, cx)
-    DECLARE_ANIMATED_LENGTH(Cy, cy)
-    DECLARE_ANIMATED_LENGTH(R, r)
-    DECLARE_ANIMATED_LENGTH(Fx, fx)
-    DECLARE_ANIMATED_LENGTH(Fy, fy)
+    BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGRadialGradientElement)
+        DECLARE_ANIMATED_LENGTH(Cx, cx)
+        DECLARE_ANIMATED_LENGTH(Cy, cy)
+        DECLARE_ANIMATED_LENGTH(R, r)
+        DECLARE_ANIMATED_LENGTH(Fx, fx)
+        DECLARE_ANIMATED_LENGTH(Fy, fy)
+        DECLARE_ANIMATED_LENGTH(Fr, fr)
+    END_DECLARE_ANIMATED_PROPERTIES
 };
 
+ELEMENT_TYPE_CASTS(SVGRadialGradientElement)
+
 } // namespace WebCore
 
 #endif // ENABLE(SVG)