KHTML
SVGGradientElement.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef SVGGradientElement_h
00024 #define SVGGradientElement_h
00025
00026 #if ENABLE(SVG)
00027 #include "SVGPaintServerGradient.h"
00028 #include "SVGExternalResourcesRequired.h"
00029 #include "SVGStyledElement.h"
00030 #include "SVGURIReference.h"
00031
00032 namespace WebCore {
00033
00034 class SVGGradientElement;
00035 class SVGTransformList;
00036
00037 class SVGGradientElement : public SVGStyledElement,
00038 public SVGURIReference,
00039 public SVGExternalResourcesRequired {
00040 public:
00041 enum SVGGradientType {
00042 SVG_SPREADMETHOD_UNKNOWN = 0,
00043 SVG_SPREADMETHOD_PAD = 1,
00044 SVG_SPREADMETHOD_REFLECT = 2,
00045 SVG_SPREADMETHOD_REPEAT = 3
00046 };
00047
00048 SVGGradientElement(const QualifiedName&, Document*);
00049 virtual ~SVGGradientElement();
00050
00051 virtual void parseMappedAttribute(MappedAttribute*);
00052 virtual void svgAttributeChanged(const QualifiedName&);
00053
00054 virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
00055 virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
00056
00057 virtual SVGResource* canvasResource();
00058
00059 protected:
00060 friend class SVGPaintServerGradient;
00061 friend class SVGLinearGradientElement;
00062 friend class SVGRadialGradientElement;
00063
00064 virtual void buildGradient() const = 0;
00065 virtual SVGPaintServerType gradientType() const = 0;
00066
00067 Vector<SVGGradientStop> buildStops() const;
00068 mutable RefPtr<SVGPaintServerGradient> m_resource;
00069
00070 protected:
00071 ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
00072 ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
00073
00074 ANIMATED_PROPERTY_DECLARATIONS(SVGGradientElement, int, int, SpreadMethod, spreadMethod)
00075 ANIMATED_PROPERTY_DECLARATIONS(SVGGradientElement, int, int, GradientUnits, gradientUnits)
00076 ANIMATED_PROPERTY_DECLARATIONS(SVGGradientElement, SVGTransformList*, RefPtr<SVGTransformList>, GradientTransform, gradientTransform)
00077 };
00078
00079 }
00080
00081 #endif // ENABLE(SVG)
00082 #endif