KHTML
SVGStyledElement.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 SVGStyledElement_h
00024 #define SVGStyledElement_h
00025
00026 #if ENABLE(SVG)
00027 #include "AffineTransform.h"
00028 #include "Path.h"
00029 #include "SVGElement.h"
00030 #include "SVGLength.h"
00031 #include "SVGResource.h"
00032 #include "SVGStylable.h"
00033
00034
00035 #include "RenderStyle.h"
00036
00037 namespace WebCore {
00038
00039 class SVGStyledElement : public SVGElement,
00040 public SVGStylable {
00041 public:
00042 SVGStyledElement(const QualifiedName&, Document*);
00043 virtual ~SVGStyledElement();
00044
00045 virtual bool isStyled() const { return true; }
00046 virtual bool supportsMarkers() const { return false; }
00047
00048 virtual PassRefPtr<CSSValue> getPresentationAttribute(const String& name);
00049 virtual CSSStyleDeclaration* style() { return StyledElement::style(); }
00050
00051 bool isKnownAttribute(const QualifiedName&);
00052
00053 virtual bool rendererIsNeeded(RenderStyle*);
00054 virtual SVGResource* canvasResource() { return 0; }
00055
00056
00057 virtual void parseMappedAttribute(MappedAttribute*);
00058
00059 virtual void svgAttributeChanged(const QualifiedName&);
00060
00061 virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
00062
00063
00064 RenderStyle* resolveStyle(RenderStyle* parentStyle);
00065
00066 void invalidateResourcesInAncestorChain() const;
00067 virtual void detach();
00068
00069 void setInstanceUpdatesBlocked(bool);
00070
00071 protected:
00072 virtual bool hasRelativeValues() const { return true; }
00073
00074 static int cssPropertyIdForSVGAttributeName(const QualifiedName&);
00075
00076 private:
00077 ANIMATED_PROPERTY_DECLARATIONS(SVGStyledElement, String, String, ClassName, className)
00078
00079 void updateElementInstance(SVGDocumentExtensions*) const;
00080 };
00081
00082 }
00083
00084 #endif // ENABLE(SVG)
00085 #endif // SVGStyledElement