SVGGradientElement.h [plain text]
#ifndef KSVG_SVGGradientElementImpl_H
#define KSVG_SVGGradientElementImpl_H
#if SVG_SUPPORT
#include "SVGURIReference.h"
#include "SVGStyledElement.h"
#include "SVGExternalResourcesRequired.h"
#include "KRenderingPaintServerGradient.h"
namespace WebCore {
class SVGGradientElement;
class SVGAnimatedEnumeration;
class SVGAnimatedTransformList;
class SVGGradientElement : public SVGStyledElement,
public SVGURIReference,
public SVGExternalResourcesRequired,
public KCanvasResourceListener
{
public:
SVGGradientElement(const QualifiedName&, Document*);
virtual ~SVGGradientElement();
SVGAnimatedEnumeration *gradientUnits() const;
SVGAnimatedTransformList *gradientTransform() const;
SVGAnimatedEnumeration *spreadMethod() const;
virtual void parseMappedAttribute(MappedAttribute *attr);
virtual void notifyAttributeChange() const;
virtual KRenderingPaintServerGradient *canvasResource();
virtual void resourceNotification() const;
protected:
virtual void buildGradient(KRenderingPaintServerGradient *grad) const = 0;
virtual KCPaintServerType gradientType() const = 0;
void rebuildStops() const;
protected:
mutable RefPtr<SVGAnimatedEnumeration> m_spreadMethod;
mutable RefPtr<SVGAnimatedEnumeration> m_gradientUnits;
mutable RefPtr<SVGAnimatedTransformList> m_gradientTransform;
mutable KRenderingPaintServerGradient *m_resource;
};
};
#endif // SVG_SUPPORT
#endif