Index: Source/core/svg/SVGElement.h |
diff --git a/Source/core/svg/SVGElement.h b/Source/core/svg/SVGElement.h |
index 8699a92b5b548a3bc98928d0706cf1a983b73943..2eeb2c69241b703691a8da87f440bcad30fcddaa 100644 |
--- a/Source/core/svg/SVGElement.h |
+++ b/Source/core/svg/SVGElement.h |
@@ -24,9 +24,11 @@ |
#include "core/dom/Element.h" |
#include "core/platform/Timer.h" |
+#include "core/svg/SVGAnimatedString.h" |
#include "core/svg/SVGLangSpace.h" |
#include "core/svg/SVGLocatable.h" |
#include "core/svg/SVGParsingError.h" |
+#include "core/svg/properties/SVGAnimatedPropertyMacros.h" |
#include "core/svg/properties/SVGPropertyInfo.h" |
#include "wtf/HashMap.h" |
@@ -42,6 +44,8 @@ class SVGElementInstance; |
class SVGElementRareData; |
class SVGSVGElement; |
+void mapAttributeToCSSProperty(HashMap<StringImpl*, CSSPropertyID>* propertyNameToIdMap, const QualifiedName& attrName); |
+ |
class SVGElement : public Element, public SVGLangSpace { |
public: |
static PassRefPtr<SVGElement> create(const QualifiedName&, Document*); |
@@ -49,6 +53,18 @@ public: |
bool isOutermostSVGSVGElement() const; |
+ virtual String title() const; |
+ bool hasRelativeLengths() const { return !m_elementsWithRelativeLengths.isEmpty(); } |
+ virtual bool supportsMarkers() const { return false; } |
+ PassRefPtr<CSSValue> getPresentationAttribute(const String& name); |
+ bool isKnownAttribute(const QualifiedName&); |
+ static bool isAnimatableCSSProperty(const QualifiedName&); |
+ virtual AffineTransform localCoordinateSpaceTransform(SVGLocatable::CTMScope) const; |
+ virtual bool needsPendingResourceHandling() const { return true; } |
+ |
+ bool instanceUpdatesBlocked() const; |
+ void setInstanceUpdatesBlocked(bool); |
+ |
String xmlbase() const; |
void setXmlbase(const String&); |
@@ -57,7 +73,6 @@ public: |
SVGDocumentExtensions* accessDocumentSVGExtensions(); |
- virtual bool isSVGStyledElement() const { return false; } |
virtual bool isSVGGraphicsElement() const { return false; } |
virtual bool isSVGSVGElement() const { return false; } |
virtual bool isFilterEffect() const { return false; } |
@@ -67,7 +82,7 @@ public: |
// For SVGTests |
virtual bool isValid() const { return true; } |
- virtual void svgAttributeChanged(const QualifiedName&) { } |
+ virtual void svgAttributeChanged(const QualifiedName&); |
virtual void animatedPropertyTypeForAttribute(const QualifiedName&, Vector<AnimatedPropertyType>&); |
@@ -104,8 +119,6 @@ public: |
virtual void synchronizeRequiredExtensions() { } |
virtual void synchronizeSystemLanguage() { } |
- virtual SVGAttributeToPropertyMap& localAttributeToPropertyMap() const; |
- |
#ifndef NDEBUG |
bool isAnimatableAttribute(const QualifiedName&) const; |
#endif |
@@ -130,7 +143,20 @@ protected: |
virtual void attributeChanged(const QualifiedName&, const AtomicString&, AttributeModificationReason = ModifiedDirectly) OVERRIDE; |
virtual bool childShouldCreateRenderer(const NodeRenderingContext&) const OVERRIDE; |
+ virtual bool isPresentationAttribute(const QualifiedName&) const OVERRIDE; |
+ virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStylePropertySet*) OVERRIDE; |
+ virtual bool rendererIsNeeded(const NodeRenderingContext&) OVERRIDE { return false; } |
+ bool rendererIsNeededInternal(const NodeRenderingContext&); |
+ |
+ virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE; |
virtual void removedFrom(ContainerNode*) OVERRIDE; |
+ virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0); |
+ |
+ static CSSPropertyID cssPropertyIdForSVGAttributeName(const QualifiedName&); |
+ void updateRelativeLengthsInformation() { updateRelativeLengthsInformation(selfHasRelativeLengths(), this); } |
+ void updateRelativeLengthsInformation(bool hasRelativeLengths, SVGElement*); |
+ |
+ virtual bool selfHasRelativeLengths() const { return false; } |
SVGElementRareData* svgRareData() const; |
SVGElementRareData* ensureSVGRareData(); |
@@ -149,13 +175,19 @@ private: |
virtual RenderStyle* virtualComputedStyle(PseudoId pseudoElementSpecifier = NOPSEUDO) { return computedStyle(pseudoElementSpecifier); } |
virtual void willRecalcStyle(StyleChange) OVERRIDE; |
virtual bool isKeyboardFocusable(KeyboardEvent*) const OVERRIDE; |
- virtual bool rendererIsNeeded(const NodeRenderingContext&) { return false; } |
+ |
+ void buildPendingResourcesIfNeeded(); |
virtual bool isSupported(StringImpl* feature, StringImpl* version) const; |
void mapInstanceToElement(SVGElementInstance*); |
void removeInstanceMapping(SVGElementInstance*); |
+ HashSet<SVGElement*> m_elementsWithRelativeLengths; |
+ |
+ BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGElement) |
+ DECLARE_ANIMATED_STRING(ClassName, className) |
+ END_DECLARE_ANIMATED_PROPERTIES |
}; |
struct SVGAttributeHashTranslator { |