2010-12-03 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
Finish splitting DECLARE_ANIMATED_PROPERTY* in DECLARE/DEFINE parts for the remaining SVGAnimated* types
https://bugs.webkit.org/show_bug.cgi?id=50440
Continuing the work on bug 42025: Introduce (DECLARE|DEFINE)_ANIMATED_(ANGLE|BOOLEAN|INTEGER|PRESERVEASPECTRATIO|RECT).
The animated property declaration lives in the header, the definition in the cpp file, to avoid the dependency on SVGNames.h in all headers.
No functional changes, thus no new tests.
* svg/SVGAElement.cpp:
* svg/SVGAElement.h:
* svg/SVGAnimatedAngle.h:
* svg/SVGAnimatedBoolean.h:
* svg/SVGAnimatedInteger.h:
* svg/SVGAnimatedPreserveAspectRatio.h:
* svg/SVGAnimatedRect.h:
* svg/SVGAnimationElement.cpp:
* svg/SVGAnimationElement.h:
(WebCore::SVGAnimationElement::calculateDistance):
(WebCore::SVGAnimationElement::animationPath):
* svg/SVGCircleElement.cpp:
* svg/SVGCircleElement.h:
* svg/SVGClipPathElement.cpp:
* svg/SVGClipPathElement.h:
* svg/SVGCursorElement.cpp:
* svg/SVGCursorElement.h:
* svg/SVGDefsElement.cpp:
* svg/SVGDefsElement.h:
* svg/SVGEllipseElement.cpp:
* svg/SVGEllipseElement.h:
* svg/SVGFEConvolveMatrixElement.cpp:
* svg/SVGFEConvolveMatrixElement.h:
* svg/SVGFEImageElement.cpp:
* svg/SVGFEImageElement.h:
* svg/SVGFETurbulenceElement.cpp:
* svg/SVGFETurbulenceElement.h:
* svg/SVGFilterElement.cpp:
* svg/SVGFilterElement.h:
* svg/SVGFilterPrimitiveStandardAttributes.h:
* svg/SVGFontElement.cpp:
(WebCore::SVGFontElement::firstMissingGlyphElement):
(WebCore::SVGFontElement::ensureGlyphCache):
* svg/SVGFontElement.h:
* svg/SVGForeignObjectElement.cpp:
* svg/SVGForeignObjectElement.h:
* svg/SVGGElement.cpp:
* svg/SVGGElement.h:
(WebCore::SVGGElement::isShadowTreeContainerElement):
(WebCore::SVGGElement::isValid):
* svg/SVGGradientElement.cpp:
* svg/SVGGradientElement.h:
* svg/SVGImageElement.cpp:
* svg/SVGImageElement.h:
* svg/SVGLineElement.cpp:
* svg/SVGLineElement.h:
* svg/SVGLinearGradientElement.h:
* svg/SVGMPathElement.cpp:
* svg/SVGMPathElement.h:
* svg/SVGMarkerElement.cpp:
* svg/SVGMarkerElement.h:
* svg/SVGMaskElement.cpp:
* svg/SVGMaskElement.h:
* svg/SVGPathElement.cpp:
* svg/SVGPathElement.h:
* svg/SVGPatternElement.cpp:
* svg/SVGPatternElement.h:
* svg/SVGPolyElement.cpp:
* svg/SVGPolyElement.h:
* svg/SVGRadialGradientElement.h:
* svg/SVGRectElement.cpp:
* svg/SVGRectElement.h:
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::contentScriptType):
(WebCore::SVGSVGElement::contentStyleType):
(WebCore::SVGSVGElement::parseMappedAttribute):
* svg/SVGSVGElement.h:
* svg/SVGScriptElement.cpp:
* svg/SVGScriptElement.h:
* svg/SVGSwitchElement.cpp:
* svg/SVGSwitchElement.h:
(WebCore::SVGSwitchElement::isValid):
* svg/SVGSymbolElement.cpp:
* svg/SVGSymbolElement.h:
(WebCore::SVGSymbolElement::rendererIsNeeded):
* svg/SVGTextContentElement.cpp:
* svg/SVGTextContentElement.h:
* svg/SVGUseElement.cpp:
* svg/SVGUseElement.h:
* svg/SVGViewElement.cpp:
* svg/SVGViewElement.h:
(WebCore::SVGViewElement::viewTarget):
(WebCore::SVGViewElement::rendererIsNeeded):
* svg/SVGViewSpec.cpp:
* svg/SVGViewSpec.h:
(WebCore::SVGViewSpec::transform):
(WebCore::SVGViewSpec::viewTargetString):
(WebCore::SVGViewSpec::contextElement):
* svg/properties/SVGAnimatedPropertyMacros.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@73254 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 22d5160..084e6a5 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,105 @@
+2010-12-03 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Reviewed by Dirk Schulze.
+
+ Finish splitting DECLARE_ANIMATED_PROPERTY* in DECLARE/DEFINE parts for the remaining SVGAnimated* types
+ https://bugs.webkit.org/show_bug.cgi?id=50440
+
+ Continuing the work on bug 42025: Introduce (DECLARE|DEFINE)_ANIMATED_(ANGLE|BOOLEAN|INTEGER|PRESERVEASPECTRATIO|RECT).
+ The animated property declaration lives in the header, the definition in the cpp file, to avoid the dependency on SVGNames.h in all headers.
+
+ No functional changes, thus no new tests.
+
+ * svg/SVGAElement.cpp:
+ * svg/SVGAElement.h:
+ * svg/SVGAnimatedAngle.h:
+ * svg/SVGAnimatedBoolean.h:
+ * svg/SVGAnimatedInteger.h:
+ * svg/SVGAnimatedPreserveAspectRatio.h:
+ * svg/SVGAnimatedRect.h:
+ * svg/SVGAnimationElement.cpp:
+ * svg/SVGAnimationElement.h:
+ (WebCore::SVGAnimationElement::calculateDistance):
+ (WebCore::SVGAnimationElement::animationPath):
+ * svg/SVGCircleElement.cpp:
+ * svg/SVGCircleElement.h:
+ * svg/SVGClipPathElement.cpp:
+ * svg/SVGClipPathElement.h:
+ * svg/SVGCursorElement.cpp:
+ * svg/SVGCursorElement.h:
+ * svg/SVGDefsElement.cpp:
+ * svg/SVGDefsElement.h:
+ * svg/SVGEllipseElement.cpp:
+ * svg/SVGEllipseElement.h:
+ * svg/SVGFEConvolveMatrixElement.cpp:
+ * svg/SVGFEConvolveMatrixElement.h:
+ * svg/SVGFEImageElement.cpp:
+ * svg/SVGFEImageElement.h:
+ * svg/SVGFETurbulenceElement.cpp:
+ * svg/SVGFETurbulenceElement.h:
+ * svg/SVGFilterElement.cpp:
+ * svg/SVGFilterElement.h:
+ * svg/SVGFilterPrimitiveStandardAttributes.h:
+ * svg/SVGFontElement.cpp:
+ (WebCore::SVGFontElement::firstMissingGlyphElement):
+ (WebCore::SVGFontElement::ensureGlyphCache):
+ * svg/SVGFontElement.h:
+ * svg/SVGForeignObjectElement.cpp:
+ * svg/SVGForeignObjectElement.h:
+ * svg/SVGGElement.cpp:
+ * svg/SVGGElement.h:
+ (WebCore::SVGGElement::isShadowTreeContainerElement):
+ (WebCore::SVGGElement::isValid):
+ * svg/SVGGradientElement.cpp:
+ * svg/SVGGradientElement.h:
+ * svg/SVGImageElement.cpp:
+ * svg/SVGImageElement.h:
+ * svg/SVGLineElement.cpp:
+ * svg/SVGLineElement.h:
+ * svg/SVGLinearGradientElement.h:
+ * svg/SVGMPathElement.cpp:
+ * svg/SVGMPathElement.h:
+ * svg/SVGMarkerElement.cpp:
+ * svg/SVGMarkerElement.h:
+ * svg/SVGMaskElement.cpp:
+ * svg/SVGMaskElement.h:
+ * svg/SVGPathElement.cpp:
+ * svg/SVGPathElement.h:
+ * svg/SVGPatternElement.cpp:
+ * svg/SVGPatternElement.h:
+ * svg/SVGPolyElement.cpp:
+ * svg/SVGPolyElement.h:
+ * svg/SVGRadialGradientElement.h:
+ * svg/SVGRectElement.cpp:
+ * svg/SVGRectElement.h:
+ * svg/SVGSVGElement.cpp:
+ (WebCore::SVGSVGElement::contentScriptType):
+ (WebCore::SVGSVGElement::contentStyleType):
+ (WebCore::SVGSVGElement::parseMappedAttribute):
+ * svg/SVGSVGElement.h:
+ * svg/SVGScriptElement.cpp:
+ * svg/SVGScriptElement.h:
+ * svg/SVGSwitchElement.cpp:
+ * svg/SVGSwitchElement.h:
+ (WebCore::SVGSwitchElement::isValid):
+ * svg/SVGSymbolElement.cpp:
+ * svg/SVGSymbolElement.h:
+ (WebCore::SVGSymbolElement::rendererIsNeeded):
+ * svg/SVGTextContentElement.cpp:
+ * svg/SVGTextContentElement.h:
+ * svg/SVGUseElement.cpp:
+ * svg/SVGUseElement.h:
+ * svg/SVGViewElement.cpp:
+ * svg/SVGViewElement.h:
+ (WebCore::SVGViewElement::viewTarget):
+ (WebCore::SVGViewElement::rendererIsNeeded):
+ * svg/SVGViewSpec.cpp:
+ * svg/SVGViewSpec.h:
+ (WebCore::SVGViewSpec::transform):
+ (WebCore::SVGViewSpec::viewTargetString):
+ (WebCore::SVGViewSpec::contextElement):
+ * svg/properties/SVGAnimatedPropertyMacros.h:
+
2010-12-03 Noel Gordon <noel.gordon@gmail.com>
Reviewed by Darin Fisher.
diff --git a/WebCore/svg/SVGAElement.cpp b/WebCore/svg/SVGAElement.cpp
index ecb1fdf..8fbfc01 100644
--- a/WebCore/svg/SVGAElement.cpp
+++ b/WebCore/svg/SVGAElement.cpp
@@ -50,6 +50,7 @@
// Animated property definitions
DEFINE_ANIMATED_STRING(SVGAElement, SVGNames::targetAttr, SVGTarget, svgTarget)
DEFINE_ANIMATED_STRING(SVGAElement, XLinkNames::hrefAttr, Href, href)
+DEFINE_ANIMATED_BOOLEAN(SVGAElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
inline SVGAElement::SVGAElement(const QualifiedName& tagName, Document* document)
: SVGStyledTransformableElement(tagName, document)
diff --git a/WebCore/svg/SVGAElement.h b/WebCore/svg/SVGAElement.h
index fcb1047..20a4e07 100644
--- a/WebCore/svg/SVGAElement.h
+++ b/WebCore/svg/SVGAElement.h
@@ -23,6 +23,7 @@
#define SVGAElement_h
#if ENABLE(SVG)
+#include "SVGAnimatedBoolean.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGLangSpace.h"
#include "SVGStyledTransformableElement.h"
@@ -72,7 +73,7 @@
DECLARE_ANIMATED_STRING(Href, href)
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGAElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
};
} // namespace WebCore
diff --git a/WebCore/svg/SVGAnimatedAngle.h b/WebCore/svg/SVGAnimatedAngle.h
index bda7a36..a4ded8f 100644
--- a/WebCore/svg/SVGAnimatedAngle.h
+++ b/WebCore/svg/SVGAnimatedAngle.h
@@ -28,6 +28,13 @@
typedef SVGAnimatedPropertyTearOff<SVGAngle> SVGAnimatedAngle;
+// Helper macros to declare/define a SVGAnimatedAngle object
+#define DECLARE_ANIMATED_ANGLE(UpperProperty, LowerProperty) \
+DECLARE_ANIMATED_PROPERTY(SVGAnimatedAngle, SVGAngle, UpperProperty, LowerProperty)
+
+#define DEFINE_ANIMATED_ANGLE_MULTIPLE_WRAPPERS(OwnerType, DOMAttribute, SVGDOMAttributeIdentifier, UpperProperty, LowerProperty) \
+DEFINE_ANIMATED_PROPERTY(OwnerType, DOMAttribute, SVGDOMAttributeIdentifier, SVGAnimatedAngle, SVGAngle, UpperProperty, LowerProperty)
+
} // namespace WebCore
#endif // ENABLE(SVG)
diff --git a/WebCore/svg/SVGAnimatedBoolean.h b/WebCore/svg/SVGAnimatedBoolean.h
index b316e21..93ba9cc 100644
--- a/WebCore/svg/SVGAnimatedBoolean.h
+++ b/WebCore/svg/SVGAnimatedBoolean.h
@@ -27,6 +27,13 @@
typedef SVGAnimatedStaticPropertyTearOff<bool> SVGAnimatedBoolean;
+// Helper macros to declare/define a SVGAnimatedBoolean object
+#define DECLARE_ANIMATED_BOOLEAN(UpperProperty, LowerProperty) \
+DECLARE_ANIMATED_PROPERTY(SVGAnimatedBoolean, bool, UpperProperty, LowerProperty)
+
+#define DEFINE_ANIMATED_BOOLEAN(OwnerType, DOMAttribute, UpperProperty, LowerProperty) \
+DEFINE_ANIMATED_PROPERTY(OwnerType, DOMAttribute, DOMAttribute.localName(), SVGAnimatedBoolean, bool, UpperProperty, LowerProperty)
+
} // namespace WebCore
#endif // ENABLE(SVG)
diff --git a/WebCore/svg/SVGAnimatedInteger.h b/WebCore/svg/SVGAnimatedInteger.h
index 6d1c85d..6f83475 100644
--- a/WebCore/svg/SVGAnimatedInteger.h
+++ b/WebCore/svg/SVGAnimatedInteger.h
@@ -21,12 +21,23 @@
#define SVGAnimatedInteger_h
#if ENABLE(SVG)
+#include "SVGAnimatedPropertyMacros.h"
#include "SVGAnimatedStaticPropertyTearOff.h"
namespace WebCore {
typedef SVGAnimatedStaticPropertyTearOff<long> SVGAnimatedInteger;
+// Helper macros to declare/define a SVGAnimatedInteger object
+#define DECLARE_ANIMATED_INTEGER(UpperProperty, LowerProperty) \
+DECLARE_ANIMATED_PROPERTY(SVGAnimatedInteger, long, UpperProperty, LowerProperty)
+
+#define DEFINE_ANIMATED_INTEGER(OwnerType, DOMAttribute, UpperProperty, LowerProperty) \
+DEFINE_ANIMATED_PROPERTY(OwnerType, DOMAttribute, DOMAttribute.localName(), SVGAnimatedInteger, long, UpperProperty, LowerProperty)
+
+#define DEFINE_ANIMATED_INTEGER_MULTIPLE_WRAPPERS(OwnerType, DOMAttribute, SVGDOMAttributeIdentifier, UpperProperty, LowerProperty) \
+DEFINE_ANIMATED_PROPERTY(OwnerType, DOMAttribute, SVGDOMAttributeIdentifier, SVGAnimatedInteger, long, UpperProperty, LowerProperty)
+
} // namespace WebCore
#endif // ENABLE(SVG)
diff --git a/WebCore/svg/SVGAnimatedPreserveAspectRatio.h b/WebCore/svg/SVGAnimatedPreserveAspectRatio.h
index 57d8621..01afc95 100644
--- a/WebCore/svg/SVGAnimatedPreserveAspectRatio.h
+++ b/WebCore/svg/SVGAnimatedPreserveAspectRatio.h
@@ -28,6 +28,13 @@
typedef SVGAnimatedPropertyTearOff<SVGPreserveAspectRatio> SVGAnimatedPreserveAspectRatio;
+// Helper macros to declare/define a SVGAnimatedPreserveAspectRatio object
+#define DECLARE_ANIMATED_PRESERVEASPECTRATIO(UpperProperty, LowerProperty) \
+DECLARE_ANIMATED_PROPERTY(SVGAnimatedPreserveAspectRatio, SVGPreserveAspectRatio, UpperProperty, LowerProperty)
+
+#define DEFINE_ANIMATED_PRESERVEASPECTRATIO(OwnerType, DOMAttribute, UpperProperty, LowerProperty) \
+DEFINE_ANIMATED_PROPERTY(OwnerType, DOMAttribute, DOMAttribute.localName(), SVGAnimatedPreserveAspectRatio, SVGPreserveAspectRatio, UpperProperty, LowerProperty)
+
} // namespace WebCore
#endif // ENABLE(SVG)
diff --git a/WebCore/svg/SVGAnimatedRect.h b/WebCore/svg/SVGAnimatedRect.h
index ee94352..af9f94b 100644
--- a/WebCore/svg/SVGAnimatedRect.h
+++ b/WebCore/svg/SVGAnimatedRect.h
@@ -21,13 +21,21 @@
#define SVGAnimatedRect_h
#if ENABLE(SVG)
-#include "FloatRect.h"
+#include "SVGAnimatedPropertyMacros.h"
#include "SVGAnimatedPropertyTearOff.h"
+#include "SVGRect.h"
namespace WebCore {
typedef SVGAnimatedPropertyTearOff<FloatRect> SVGAnimatedRect;
+// Helper macros to declare/define a SVGAnimatedRect object
+#define DECLARE_ANIMATED_RECT(UpperProperty, LowerProperty) \
+DECLARE_ANIMATED_PROPERTY(SVGAnimatedRect, FloatRect, UpperProperty, LowerProperty)
+
+#define DEFINE_ANIMATED_RECT(OwnerType, DOMAttribute, UpperProperty, LowerProperty) \
+DEFINE_ANIMATED_PROPERTY(OwnerType, DOMAttribute, DOMAttribute.localName(), SVGAnimatedRect, FloatRect, UpperProperty, LowerProperty)
+
} // namespace WebCore
#endif // ENABLE(SVG)
diff --git a/WebCore/svg/SVGAnimationElement.cpp b/WebCore/svg/SVGAnimationElement.cpp
index c3b6f0c..cc16536 100644
--- a/WebCore/svg/SVGAnimationElement.cpp
+++ b/WebCore/svg/SVGAnimationElement.cpp
@@ -45,13 +45,15 @@
#include "SVGURIReference.h"
#include "SVGUseElement.h"
#include "XLinkNames.h"
-#include <math.h>
#include <wtf/StdLibExtras.h>
using namespace std;
namespace WebCore {
-
+
+// Animated property definitions
+DEFINE_ANIMATED_BOOLEAN(SVGAnimationElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
+
SVGAnimationElement::SVGAnimationElement(const QualifiedName& tagName, Document* document)
: SVGSMILElement(tagName, document)
, m_animationValid(false)
diff --git a/WebCore/svg/SVGAnimationElement.h b/WebCore/svg/SVGAnimationElement.h
index 367e63f..59d7f9e 100644
--- a/WebCore/svg/SVGAnimationElement.h
+++ b/WebCore/svg/SVGAnimationElement.h
@@ -23,101 +23,104 @@
#ifndef SVGAnimationElement_h
#define SVGAnimationElement_h
+
#if ENABLE(SVG_ANIMATION)
#include "ElementTimeControl.h"
#include "Path.h"
#include "SMILTime.h"
-#include "SVGAnimatedPropertyMacros.h"
-#include "SVGSMILElement.h"
+#include "SVGAnimatedBoolean.h"
#include "SVGExternalResourcesRequired.h"
+#include "SVGSMILElement.h"
#include "SVGStringList.h"
#include "SVGTests.h"
#include "UnitBezier.h"
namespace WebCore {
- class ConditionEventListener;
- class TimeContainer;
+class ConditionEventListener;
+class TimeContainer;
- class SVGAnimationElement : public SVGSMILElement,
- public SVGTests,
- public SVGExternalResourcesRequired,
- public ElementTimeControl {
- public:
- // SVGAnimationElement
- float getStartTime() const;
- float getCurrentTime() const;
- float getSimpleDuration(ExceptionCode&) const;
-
- // ElementTimeControl
- virtual void beginElement();
- virtual void beginElementAt(float offset);
- virtual void endElement();
- virtual void endElementAt(float offset);
-
- static bool attributeIsCSS(const String& attributeName);
-
- protected:
- SVGAnimationElement(const QualifiedName&, Document*);
-
- virtual void parseMappedAttribute(Attribute*);
-
- enum CalcMode { CalcModeDiscrete, CalcModeLinear, CalcModePaced, CalcModeSpline };
- CalcMode calcMode() const;
-
- enum AttributeType { AttributeTypeCSS, AttributeTypeXML, AttributeTypeAuto };
- AttributeType attributeType() const;
-
- String toValue() const;
- String byValue() const;
- String fromValue() const;
-
- enum AnimationMode { NoAnimation, ToAnimation, ByAnimation, ValuesAnimation, FromToAnimation, FromByAnimation, PathAnimation };
- AnimationMode animationMode() const;
-
- virtual bool hasValidTarget() const;
-
- String targetAttributeBaseValue() const;
- void setTargetAttributeAnimatedValue(const String&);
- bool targetAttributeIsCSS() const;
-
- bool isAdditive() const;
- bool isAccumulated() const;
+class SVGAnimationElement : public SVGSMILElement,
+ public SVGTests,
+ public SVGExternalResourcesRequired,
+ public ElementTimeControl {
+public:
+ // SVGAnimationElement
+ float getStartTime() const;
+ float getCurrentTime() const;
+ float getSimpleDuration(ExceptionCode&) const;
- // from SVGSMILElement
- virtual void startedActiveInterval();
- virtual void updateAnimation(float percent, unsigned repeat, SVGSMILElement* resultElement);
- virtual void endedActiveInterval();
-
- private:
- virtual void attributeChanged(Attribute*, bool preserveDecls);
- virtual void synchronizeProperty(const QualifiedName&);
+ // ElementTimeControl
+ virtual void beginElement();
+ virtual void beginElementAt(float offset);
+ virtual void endElement();
+ virtual void endElementAt(float offset);
+
+ static bool attributeIsCSS(const String& attributeName);
- virtual bool calculateFromAndToValues(const String& fromString, const String& toString) = 0;
- virtual bool calculateFromAndByValues(const String& fromString, const String& byString) = 0;
- virtual void calculateAnimatedValue(float percentage, unsigned repeat, SVGSMILElement* resultElement) = 0;
- virtual float calculateDistance(const String& /*fromString*/, const String& /*toString*/) { return -1.f; }
- virtual Path animationPath() const { return Path(); }
-
- void currentValuesForValuesAnimation(float percent, float& effectivePercent, String& from, String& to) const;
- void calculateKeyTimesForCalcModePaced();
- float calculatePercentFromKeyPoints(float percent) const;
- void currentValuesFromKeyPoints(float percent, float& effectivePercent, String& from, String& to) const;
- float calculatePercentForSpline(float percent, unsigned splineIndex) const;
- unsigned calculateKeyTimesIndex(float percent) const;
-
- // SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGAnimationElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+protected:
+ SVGAnimationElement(const QualifiedName&, Document*);
- bool m_animationValid;
+ virtual void parseMappedAttribute(Attribute*);
- Vector<String> m_values;
- Vector<float> m_keyTimes;
- Vector<float> m_keyPoints;
- Vector<UnitBezier> m_keySplines;
- String m_lastValuesAnimationFrom;
- String m_lastValuesAnimationTo;
- };
+ enum CalcMode { CalcModeDiscrete, CalcModeLinear, CalcModePaced, CalcModeSpline };
+ CalcMode calcMode() const;
+
+ enum AttributeType { AttributeTypeCSS, AttributeTypeXML, AttributeTypeAuto };
+ AttributeType attributeType() const;
+
+ String toValue() const;
+ String byValue() const;
+ String fromValue() const;
+
+ enum AnimationMode { NoAnimation, ToAnimation, ByAnimation, ValuesAnimation, FromToAnimation, FromByAnimation, PathAnimation };
+ AnimationMode animationMode() const;
+
+ virtual bool hasValidTarget() const;
+
+ String targetAttributeBaseValue() const;
+ void setTargetAttributeAnimatedValue(const String&);
+ bool targetAttributeIsCSS() const;
+
+ bool isAdditive() const;
+ bool isAccumulated() const;
+
+ // from SVGSMILElement
+ virtual void startedActiveInterval();
+ virtual void updateAnimation(float percent, unsigned repeat, SVGSMILElement* resultElement);
+ virtual void endedActiveInterval();
+
+private:
+ virtual void attributeChanged(Attribute*, bool preserveDecls);
+ virtual void synchronizeProperty(const QualifiedName&);
+
+ virtual bool calculateFromAndToValues(const String& fromString, const String& toString) = 0;
+ virtual bool calculateFromAndByValues(const String& fromString, const String& byString) = 0;
+ virtual void calculateAnimatedValue(float percentage, unsigned repeat, SVGSMILElement* resultElement) = 0;
+ virtual float calculateDistance(const String& /*fromString*/, const String& /*toString*/) { return -1.f; }
+ virtual Path animationPath() const { return Path(); }
+
+ void currentValuesForValuesAnimation(float percent, float& effectivePercent, String& from, String& to) const;
+ void calculateKeyTimesForCalcModePaced();
+ float calculatePercentFromKeyPoints(float percent) const;
+ void currentValuesFromKeyPoints(float percent, float& effectivePercent, String& from, String& to) const;
+ float calculatePercentForSpline(float percent, unsigned splineIndex) const;
+ unsigned calculateKeyTimesIndex(float percent) const;
+
+ // Animated property declarations
+
+ // SVGExternalResourcesRequired
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
+
+ bool m_animationValid;
+
+ Vector<String> m_values;
+ Vector<float> m_keyTimes;
+ Vector<float> m_keyPoints;
+ Vector<UnitBezier> m_keySplines;
+ String m_lastValuesAnimationFrom;
+ String m_lastValuesAnimationTo;
+};
} // namespace WebCore
diff --git a/WebCore/svg/SVGCircleElement.cpp b/WebCore/svg/SVGCircleElement.cpp
index 1e6af43..0ac4600 100644
--- a/WebCore/svg/SVGCircleElement.cpp
+++ b/WebCore/svg/SVGCircleElement.cpp
@@ -36,6 +36,7 @@
DEFINE_ANIMATED_LENGTH(SVGCircleElement, SVGNames::cxAttr, Cx, cx)
DEFINE_ANIMATED_LENGTH(SVGCircleElement, SVGNames::cyAttr, Cy, cy)
DEFINE_ANIMATED_LENGTH(SVGCircleElement, SVGNames::rAttr, R, r)
+DEFINE_ANIMATED_BOOLEAN(SVGCircleElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
inline SVGCircleElement::SVGCircleElement(const QualifiedName& tagName, Document* document)
: SVGStyledTransformableElement(tagName, document)
diff --git a/WebCore/svg/SVGCircleElement.h b/WebCore/svg/SVGCircleElement.h
index 23d5e79..f6946dd 100644
--- a/WebCore/svg/SVGCircleElement.h
+++ b/WebCore/svg/SVGCircleElement.h
@@ -22,8 +22,8 @@
#define SVGCircleElement_h
#if ENABLE(SVG)
+#include "SVGAnimatedBoolean.h"
#include "SVGAnimatedLength.h"
-#include "SVGAnimatedPropertyMacros.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGLangSpace.h"
#include "SVGStyledTransformableElement.h"
@@ -57,7 +57,7 @@
DECLARE_ANIMATED_LENGTH(R, r)
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGCircleElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
};
} // namespace WebCore
diff --git a/WebCore/svg/SVGClipPathElement.cpp b/WebCore/svg/SVGClipPathElement.cpp
index 90d4449..c161e80 100644
--- a/WebCore/svg/SVGClipPathElement.cpp
+++ b/WebCore/svg/SVGClipPathElement.cpp
@@ -36,6 +36,7 @@
// Animated property definitions
DEFINE_ANIMATED_ENUMERATION(SVGClipPathElement, SVGNames::clipPathUnitsAttr, ClipPathUnits, clipPathUnits)
+DEFINE_ANIMATED_BOOLEAN(SVGClipPathElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
inline SVGClipPathElement::SVGClipPathElement(const QualifiedName& tagName, Document* document)
: SVGStyledTransformableElement(tagName, document)
diff --git a/WebCore/svg/SVGClipPathElement.h b/WebCore/svg/SVGClipPathElement.h
index 970bdbd..23242e8 100644
--- a/WebCore/svg/SVGClipPathElement.h
+++ b/WebCore/svg/SVGClipPathElement.h
@@ -22,6 +22,7 @@
#define SVGClipPathElement_h
#if ENABLE(SVG)
+#include "SVGAnimatedBoolean.h"
#include "SVGAnimatedEnumeration.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGLangSpace.h"
@@ -56,7 +57,7 @@
DECLARE_ANIMATED_ENUMERATION(ClipPathUnits, clipPathUnits)
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGClipPathElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
};
}
diff --git a/WebCore/svg/SVGCursorElement.cpp b/WebCore/svg/SVGCursorElement.cpp
index 5923359..d0a8388 100644
--- a/WebCore/svg/SVGCursorElement.cpp
+++ b/WebCore/svg/SVGCursorElement.cpp
@@ -33,6 +33,7 @@
DEFINE_ANIMATED_LENGTH(SVGCursorElement, SVGNames::xAttr, X, x)
DEFINE_ANIMATED_LENGTH(SVGCursorElement, SVGNames::yAttr, Y, y)
DEFINE_ANIMATED_STRING(SVGCursorElement, XLinkNames::hrefAttr, Href, href)
+DEFINE_ANIMATED_BOOLEAN(SVGCursorElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
inline SVGCursorElement::SVGCursorElement(const QualifiedName& tagName, Document* document)
: SVGElement(tagName, document)
diff --git a/WebCore/svg/SVGCursorElement.h b/WebCore/svg/SVGCursorElement.h
index 8350b85..98afa48 100644
--- a/WebCore/svg/SVGCursorElement.h
+++ b/WebCore/svg/SVGCursorElement.h
@@ -22,6 +22,7 @@
#define SVGCursorElement_h
#if ENABLE(SVG)
+#include "SVGAnimatedBoolean.h"
#include "SVGAnimatedLength.h"
#include "SVGAnimatedString.h"
#include "SVGElement.h"
@@ -62,7 +63,7 @@
DECLARE_ANIMATED_STRING(Href, href)
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGCursorElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
HashSet<SVGElement*> m_clients;
};
diff --git a/WebCore/svg/SVGDefsElement.cpp b/WebCore/svg/SVGDefsElement.cpp
index 8525705..c5061c5 100644
--- a/WebCore/svg/SVGDefsElement.cpp
+++ b/WebCore/svg/SVGDefsElement.cpp
@@ -27,6 +27,9 @@
namespace WebCore {
+// Animated property definitions
+DEFINE_ANIMATED_BOOLEAN(SVGDefsElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
+
inline SVGDefsElement::SVGDefsElement(const QualifiedName& tagName, Document* document)
: SVGStyledTransformableElement(tagName, document)
{
diff --git a/WebCore/svg/SVGDefsElement.h b/WebCore/svg/SVGDefsElement.h
index ecf2d69..70eca95 100644
--- a/WebCore/svg/SVGDefsElement.h
+++ b/WebCore/svg/SVGDefsElement.h
@@ -22,7 +22,7 @@
#define SVGDefsElement_h
#if ENABLE(SVG)
-#include "SVGAnimatedPropertyMacros.h"
+#include "SVGAnimatedBoolean.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGLangSpace.h"
#include "SVGStyledTransformableElement.h"
@@ -30,24 +30,26 @@
namespace WebCore {
- class SVGDefsElement : public SVGStyledTransformableElement,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired {
- public:
- static PassRefPtr<SVGDefsElement> create(const QualifiedName&, Document*);
+class SVGDefsElement : public SVGStyledTransformableElement,
+ public SVGTests,
+ public SVGLangSpace,
+ public SVGExternalResourcesRequired {
+public:
+ static PassRefPtr<SVGDefsElement> create(const QualifiedName&, Document*);
- private:
- SVGDefsElement(const QualifiedName&, Document*);
+private:
+ SVGDefsElement(const QualifiedName&, Document*);
- virtual bool isValid() const;
+ virtual bool isValid() const;
- virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
- virtual void synchronizeProperty(const QualifiedName&);
+ virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
+ virtual void synchronizeProperty(const QualifiedName&);
- // SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGDefsElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
- };
+ // Animated property declarations
+
+ // SVGExternalResourcesRequired
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
+};
} // namespace WebCore
diff --git a/WebCore/svg/SVGEllipseElement.cpp b/WebCore/svg/SVGEllipseElement.cpp
index b6ee3f2..4a12aa7 100644
--- a/WebCore/svg/SVGEllipseElement.cpp
+++ b/WebCore/svg/SVGEllipseElement.cpp
@@ -37,6 +37,7 @@
DEFINE_ANIMATED_LENGTH(SVGEllipseElement, SVGNames::cyAttr, Cy, cy)
DEFINE_ANIMATED_LENGTH(SVGEllipseElement, SVGNames::rxAttr, Rx, rx)
DEFINE_ANIMATED_LENGTH(SVGEllipseElement, SVGNames::ryAttr, Ry, ry)
+DEFINE_ANIMATED_BOOLEAN(SVGEllipseElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
inline SVGEllipseElement::SVGEllipseElement(const QualifiedName& tagName, Document* document)
: SVGStyledTransformableElement(tagName, document)
diff --git a/WebCore/svg/SVGEllipseElement.h b/WebCore/svg/SVGEllipseElement.h
index 17412af..7ba2085 100644
--- a/WebCore/svg/SVGEllipseElement.h
+++ b/WebCore/svg/SVGEllipseElement.h
@@ -22,8 +22,8 @@
#define SVGEllipseElement_h
#if ENABLE(SVG)
+#include "SVGAnimatedBoolean.h"
#include "SVGAnimatedLength.h"
-#include "SVGAnimatedPropertyMacros.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGLangSpace.h"
#include "SVGStyledTransformableElement.h"
@@ -58,7 +58,7 @@
DECLARE_ANIMATED_LENGTH(Ry, ry)
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGEllipseElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
};
} // namespace WebCore
diff --git a/WebCore/svg/SVGFEConvolveMatrixElement.cpp b/WebCore/svg/SVGFEConvolveMatrixElement.cpp
index 11b8c65..373d508 100644
--- a/WebCore/svg/SVGFEConvolveMatrixElement.cpp
+++ b/WebCore/svg/SVGFEConvolveMatrixElement.cpp
@@ -33,12 +33,17 @@
// Animated property definitions
DEFINE_ANIMATED_STRING(SVGFEConvolveMatrixElement, SVGNames::inAttr, In1, in1)
+DEFINE_ANIMATED_INTEGER_MULTIPLE_WRAPPERS(SVGFEConvolveMatrixElement, SVGNames::orderAttr, orderXIdentifier(), OrderX, orderX)
+DEFINE_ANIMATED_INTEGER_MULTIPLE_WRAPPERS(SVGFEConvolveMatrixElement, SVGNames::orderAttr, orderYIdentifier(), OrderY, orderY)
DEFINE_ANIMATED_NUMBER_LIST(SVGFEConvolveMatrixElement, SVGNames::kernelMatrixAttr, KernelMatrix, kernelMatrix)
DEFINE_ANIMATED_NUMBER(SVGFEConvolveMatrixElement, SVGNames::divisorAttr, Divisor, divisor)
DEFINE_ANIMATED_NUMBER(SVGFEConvolveMatrixElement, SVGNames::biasAttr, Bias, bias)
+DEFINE_ANIMATED_INTEGER(SVGFEConvolveMatrixElement, SVGNames::targetXAttr, TargetX, targetX)
+DEFINE_ANIMATED_INTEGER(SVGFEConvolveMatrixElement, SVGNames::targetYAttr, TargetY, targetY)
DEFINE_ANIMATED_ENUMERATION(SVGFEConvolveMatrixElement, SVGNames::operatorAttr, EdgeMode, edgeMode)
DEFINE_ANIMATED_NUMBER_MULTIPLE_WRAPPERS(SVGFEConvolveMatrixElement, SVGNames::kernelUnitLengthAttr, kernelUnitLengthXIdentifier(), KernelUnitLengthX, kernelUnitLengthX)
DEFINE_ANIMATED_NUMBER_MULTIPLE_WRAPPERS(SVGFEConvolveMatrixElement, SVGNames::kernelUnitLengthAttr, kernelUnitLengthYIdentifier(), KernelUnitLengthY, kernelUnitLengthY)
+DEFINE_ANIMATED_BOOLEAN(SVGFEConvolveMatrixElement, SVGNames::preserveAlphaAttr, PreserveAlpha, preserveAlpha)
inline SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement(const QualifiedName& tagName, Document* document)
: SVGFilterPrimitiveStandardAttributes(tagName, document)
diff --git a/WebCore/svg/SVGFEConvolveMatrixElement.h b/WebCore/svg/SVGFEConvolveMatrixElement.h
index 413a184..21826ec 100644
--- a/WebCore/svg/SVGFEConvolveMatrixElement.h
+++ b/WebCore/svg/SVGFEConvolveMatrixElement.h
@@ -50,17 +50,17 @@
// Animated property declarations
DECLARE_ANIMATED_STRING(In1, in1)
- DECLARE_ANIMATED_STATIC_PROPERTY_MULTIPLE_WRAPPERS_NEW(SVGFEConvolveMatrixElement, SVGNames::orderAttr, orderXIdentifier(), long, OrderX, orderX)
- DECLARE_ANIMATED_STATIC_PROPERTY_MULTIPLE_WRAPPERS_NEW(SVGFEConvolveMatrixElement, SVGNames::orderAttr, orderYIdentifier(), long, OrderY, orderY)
+ DECLARE_ANIMATED_INTEGER(OrderX, orderX)
+ DECLARE_ANIMATED_INTEGER(OrderY, orderY)
DECLARE_ANIMATED_NUMBER_LIST(KernelMatrix, kernelMatrix)
DECLARE_ANIMATED_NUMBER(Divisor, divisor)
DECLARE_ANIMATED_NUMBER(Bias, bias)
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGFEConvolveMatrixElement, SVGNames::targetXAttr, long, TargetX, targetX)
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGFEConvolveMatrixElement, SVGNames::targetYAttr, long, TargetY, targetY)
+ DECLARE_ANIMATED_INTEGER(TargetX, targetX)
+ DECLARE_ANIMATED_INTEGER(TargetY, targetY)
DECLARE_ANIMATED_ENUMERATION(EdgeMode, edgeMode)
DECLARE_ANIMATED_NUMBER(KernelUnitLengthX, kernelUnitLengthX)
DECLARE_ANIMATED_NUMBER(KernelUnitLengthY, kernelUnitLengthY)
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGFEConvolveMatrixElement, SVGNames::preserveAlphaAttr, bool, PreserveAlpha, preserveAlpha)
+ DECLARE_ANIMATED_BOOLEAN(PreserveAlpha, preserveAlpha)
};
} // namespace WebCore
diff --git a/WebCore/svg/SVGFEImageElement.cpp b/WebCore/svg/SVGFEImageElement.cpp
index 1c5a6c0..04ea14c 100644
--- a/WebCore/svg/SVGFEImageElement.cpp
+++ b/WebCore/svg/SVGFEImageElement.cpp
@@ -38,7 +38,9 @@
namespace WebCore {
// Animated property definitions
+DEFINE_ANIMATED_PRESERVEASPECTRATIO(SVGFEImageElement, SVGNames::preserveAspectRatioAttr, PreserveAspectRatio, preserveAspectRatio)
DEFINE_ANIMATED_STRING(SVGFEImageElement, XLinkNames::hrefAttr, Href, href)
+DEFINE_ANIMATED_BOOLEAN(SVGFEImageElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
inline SVGFEImageElement::SVGFEImageElement(const QualifiedName& tagName, Document* document)
: SVGFilterPrimitiveStandardAttributes(tagName, document)
diff --git a/WebCore/svg/SVGFEImageElement.h b/WebCore/svg/SVGFEImageElement.h
index 0417d7f..64d95dc 100644
--- a/WebCore/svg/SVGFEImageElement.h
+++ b/WebCore/svg/SVGFEImageElement.h
@@ -25,11 +25,11 @@
#include "CachedResourceClient.h"
#include "CachedResourceHandle.h"
#include "ImageBuffer.h"
+#include "SVGAnimatedPreserveAspectRatio.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGFEImage.h"
#include "SVGFilterPrimitiveStandardAttributes.h"
#include "SVGLangSpace.h"
-#include "SVGPreserveAspectRatio.h"
#include "SVGURIReference.h"
namespace WebCore {
@@ -58,13 +58,13 @@
void requestImageResource();
// Animated property declarations
- DECLARE_ANIMATED_PROPERTY_NEW(SVGFEImageElement, SVGNames::preserveAspectRatioAttr, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
+ DECLARE_ANIMATED_PRESERVEASPECTRATIO(PreserveAspectRatio, preserveAspectRatio)
// SVGURIReference
DECLARE_ANIMATED_STRING(Href, href)
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGFEImageElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
CachedResourceHandle<CachedImage> m_cachedImage;
OwnPtr<ImageBuffer> m_targetImage;
diff --git a/WebCore/svg/SVGFETurbulenceElement.cpp b/WebCore/svg/SVGFETurbulenceElement.cpp
index 27aed00..c1c1309 100644
--- a/WebCore/svg/SVGFETurbulenceElement.cpp
+++ b/WebCore/svg/SVGFETurbulenceElement.cpp
@@ -31,6 +31,7 @@
// Animated property definitions
DEFINE_ANIMATED_NUMBER_MULTIPLE_WRAPPERS(SVGFETurbulenceElement, SVGNames::baseFrequencyAttr, baseFrequencyXIdentifier(), BaseFrequencyX, baseFrequencyX)
DEFINE_ANIMATED_NUMBER_MULTIPLE_WRAPPERS(SVGFETurbulenceElement, SVGNames::baseFrequencyAttr, baseFrequencyYIdentifier(), BaseFrequencyY, baseFrequencyY)
+DEFINE_ANIMATED_INTEGER(SVGFETurbulenceElement, SVGNames::numOctavesAttr, NumOctaves, numOctaves)
DEFINE_ANIMATED_NUMBER(SVGFETurbulenceElement, SVGNames::seedAttr, Seed, seed)
DEFINE_ANIMATED_ENUMERATION(SVGFETurbulenceElement, SVGNames::stitchTilesAttr, StitchTiles, stitchTiles)
DEFINE_ANIMATED_ENUMERATION(SVGFETurbulenceElement, SVGNames::typeAttr, Type, type)
diff --git a/WebCore/svg/SVGFETurbulenceElement.h b/WebCore/svg/SVGFETurbulenceElement.h
index 8dc3c87..5e436f4 100644
--- a/WebCore/svg/SVGFETurbulenceElement.h
+++ b/WebCore/svg/SVGFETurbulenceElement.h
@@ -53,7 +53,7 @@
// Animated property declarations
DECLARE_ANIMATED_NUMBER(BaseFrequencyX, baseFrequencyX)
DECLARE_ANIMATED_NUMBER(BaseFrequencyY, baseFrequencyY)
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGFETurbulenceElement, SVGNames::numOctavesAttr, long, NumOctaves, numOctaves)
+ DECLARE_ANIMATED_INTEGER(NumOctaves, numOctaves)
DECLARE_ANIMATED_NUMBER(Seed, seed)
DECLARE_ANIMATED_ENUMERATION(StitchTiles, stitchTiles)
DECLARE_ANIMATED_ENUMERATION(Type, type)
diff --git a/WebCore/svg/SVGFilterElement.cpp b/WebCore/svg/SVGFilterElement.cpp
index 0a919a2..03ff7fa 100644
--- a/WebCore/svg/SVGFilterElement.cpp
+++ b/WebCore/svg/SVGFilterElement.cpp
@@ -43,7 +43,10 @@
DEFINE_ANIMATED_LENGTH(SVGFilterElement, SVGNames::yAttr, Y, y)
DEFINE_ANIMATED_LENGTH(SVGFilterElement, SVGNames::widthAttr, Width, width)
DEFINE_ANIMATED_LENGTH(SVGFilterElement, SVGNames::heightAttr, Height, height)
+DEFINE_ANIMATED_INTEGER_MULTIPLE_WRAPPERS(SVGFilterElement, SVGNames::filterResAttr, filterResXIdentifier(), FilterResX, filterResX)
+DEFINE_ANIMATED_INTEGER_MULTIPLE_WRAPPERS(SVGFilterElement, SVGNames::filterResAttr, filterResYIdentifier(), FilterResY, filterResY)
DEFINE_ANIMATED_STRING(SVGFilterElement, XLinkNames::hrefAttr, Href, href)
+DEFINE_ANIMATED_BOOLEAN(SVGFilterElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
inline SVGFilterElement::SVGFilterElement(const QualifiedName& tagName, Document* document)
: SVGStyledElement(tagName, document)
diff --git a/WebCore/svg/SVGFilterElement.h b/WebCore/svg/SVGFilterElement.h
index 14344d5..a438625 100644
--- a/WebCore/svg/SVGFilterElement.h
+++ b/WebCore/svg/SVGFilterElement.h
@@ -24,7 +24,9 @@
#define SVGFilterElement_h
#if ENABLE(SVG) && ENABLE(FILTERS)
+#include "SVGAnimatedBoolean.h"
#include "SVGAnimatedEnumeration.h"
+#include "SVGAnimatedInteger.h"
#include "SVGAnimatedLength.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGLangSpace.h"
@@ -67,15 +69,14 @@
DECLARE_ANIMATED_LENGTH(Y, y)
DECLARE_ANIMATED_LENGTH(Width, width)
DECLARE_ANIMATED_LENGTH(Height, height)
-
- DECLARE_ANIMATED_STATIC_PROPERTY_MULTIPLE_WRAPPERS_NEW(SVGFilterElement, SVGNames::filterResAttr, filterResXIdentifier(), long, FilterResX, filterResX)
- DECLARE_ANIMATED_STATIC_PROPERTY_MULTIPLE_WRAPPERS_NEW(SVGFilterElement, SVGNames::filterResAttr, filterResYIdentifier(), long, FilterResY, filterResY)
+ DECLARE_ANIMATED_INTEGER(FilterResX, filterResX)
+ DECLARE_ANIMATED_INTEGER(FilterResY, filterResY)
// SVGURIReference
DECLARE_ANIMATED_STRING(Href, href)
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGFilterElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
};
}
diff --git a/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h b/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
index 03bc474..b13084b 100644
--- a/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
+++ b/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
@@ -27,7 +27,6 @@
#include "SVGAnimatedLength.h"
#include "SVGFilterBuilder.h"
#include "SVGFilterElement.h"
-#include "SVGNames.h"
#include "SVGStyledElement.h"
#include <wtf/PassRefPtr.h>
diff --git a/WebCore/svg/SVGFontElement.cpp b/WebCore/svg/SVGFontElement.cpp
index ae0cb6e..d70d46a 100644
--- a/WebCore/svg/SVGFontElement.cpp
+++ b/WebCore/svg/SVGFontElement.cpp
@@ -34,11 +34,10 @@
#include "SVGVKernElement.h"
#include <wtf/ASCIICType.h>
-using namespace WTF;
-
namespace WebCore {
-using namespace SVGNames;
+// Animated property declarations
+DEFINE_ANIMATED_BOOLEAN(SVGFontElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
inline SVGFontElement::SVGFontElement(const QualifiedName& tagName, Document* document)
: SVGStyledElement(tagName, document)
@@ -72,7 +71,7 @@
SVGMissingGlyphElement* SVGFontElement::firstMissingGlyphElement() const
{
for (Node* child = firstChild(); child; child = child->nextSibling()) {
- if (child->hasTagName(missing_glyphTag))
+ if (child->hasTagName(SVGNames::missing_glyphTag))
return static_cast<SVGMissingGlyphElement*>(child);
}
@@ -85,15 +84,15 @@
return;
for (Node* child = firstChild(); child; child = child->nextSibling()) {
- if (child->hasTagName(glyphTag)) {
+ if (child->hasTagName(SVGNames::glyphTag)) {
SVGGlyphElement* glyph = static_cast<SVGGlyphElement*>(child);
- String unicode = glyph->getAttribute(unicodeAttr);
+ String unicode = glyph->getAttribute(SVGNames::unicodeAttr);
if (unicode.length())
m_glyphMap.add(unicode, glyph->buildGlyphIdentifier());
- } else if (child->hasTagName(hkernTag)) {
+ } else if (child->hasTagName(SVGNames::hkernTag)) {
SVGHKernElement* hkern = static_cast<SVGHKernElement*>(child);
hkern->buildHorizontalKerningPair(m_horizontalKerningPairs);
- } else if (child->hasTagName(vkernTag)) {
+ } else if (child->hasTagName(SVGNames::vkernTag)) {
SVGVKernElement* vkern = static_cast<SVGVKernElement*>(child);
vkern->buildVerticalKerningPair(m_verticalKerningPairs);
}
diff --git a/WebCore/svg/SVGFontElement.h b/WebCore/svg/SVGFontElement.h
index e81ac61..b2de38c 100644
--- a/WebCore/svg/SVGFontElement.h
+++ b/WebCore/svg/SVGFontElement.h
@@ -23,7 +23,7 @@
#define SVGFontElement_h
#if ENABLE(SVG_FONTS)
-#include "SVGAnimatedPropertyMacros.h"
+#include "SVGAnimatedBoolean.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGGlyphElement.h"
#include "SVGGlyphMap.h"
@@ -74,8 +74,10 @@
void ensureGlyphCache() const;
+ // Animated property declarations
+
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGFontElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
mutable KerningPairVector m_horizontalKerningPairs;
mutable KerningPairVector m_verticalKerningPairs;
diff --git a/WebCore/svg/SVGForeignObjectElement.cpp b/WebCore/svg/SVGForeignObjectElement.cpp
index a922337..c2fcecb 100644
--- a/WebCore/svg/SVGForeignObjectElement.cpp
+++ b/WebCore/svg/SVGForeignObjectElement.cpp
@@ -39,6 +39,7 @@
DEFINE_ANIMATED_LENGTH(SVGForeignObjectElement, SVGNames::widthAttr, Width, width)
DEFINE_ANIMATED_LENGTH(SVGForeignObjectElement, SVGNames::heightAttr, Height, height)
DEFINE_ANIMATED_STRING(SVGForeignObjectElement, XLinkNames::hrefAttr, Href, href)
+DEFINE_ANIMATED_BOOLEAN(SVGForeignObjectElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
inline SVGForeignObjectElement::SVGForeignObjectElement(const QualifiedName& tagName, Document* document)
: SVGStyledTransformableElement(tagName, document)
diff --git a/WebCore/svg/SVGForeignObjectElement.h b/WebCore/svg/SVGForeignObjectElement.h
index 2dfac0c..5263eeb 100644
--- a/WebCore/svg/SVGForeignObjectElement.h
+++ b/WebCore/svg/SVGForeignObjectElement.h
@@ -21,8 +21,8 @@
#define SVGForeignObjectElement_h
#if ENABLE(SVG) && ENABLE(SVG_FOREIGN_OBJECT)
+#include "SVGAnimatedBoolean.h"
#include "SVGAnimatedLength.h"
-#include "SVGAnimatedPropertyMacros.h"
#include "SVGTests.h"
#include "SVGLangSpace.h"
#include "SVGURIReference.h"
@@ -61,7 +61,7 @@
DECLARE_ANIMATED_STRING(Href, href)
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGForeignObjectElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
};
} // namespace WebCore
diff --git a/WebCore/svg/SVGGElement.cpp b/WebCore/svg/SVGGElement.cpp
index c58eefa..42069dd 100644
--- a/WebCore/svg/SVGGElement.cpp
+++ b/WebCore/svg/SVGGElement.cpp
@@ -29,6 +29,9 @@
namespace WebCore {
+// Animated property declarations
+DEFINE_ANIMATED_BOOLEAN(SVGGElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
+
SVGGElement::SVGGElement(const QualifiedName& tagName, Document* document)
: SVGStyledTransformableElement(tagName, document)
{
diff --git a/WebCore/svg/SVGGElement.h b/WebCore/svg/SVGGElement.h
index b0003d1..3c00b34 100644
--- a/WebCore/svg/SVGGElement.h
+++ b/WebCore/svg/SVGGElement.h
@@ -22,7 +22,7 @@
#define SVGGElement_h
#if ENABLE(SVG)
-#include "SVGAnimatedPropertyMacros.h"
+#include "SVGAnimatedBoolean.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGLangSpace.h"
#include "SVGStyledTransformableElement.h"
@@ -30,32 +30,34 @@
namespace WebCore {
- class SVGGElement : public SVGStyledTransformableElement,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired {
- public:
- static PassRefPtr<SVGGElement> create(const QualifiedName&, Document*);
+class SVGGElement : public SVGStyledTransformableElement,
+ public SVGTests,
+ public SVGLangSpace,
+ public SVGExternalResourcesRequired {
+public:
+ static PassRefPtr<SVGGElement> create(const QualifiedName&, Document*);
- virtual bool isShadowTreeContainerElement() const { return false; }
+ virtual bool isShadowTreeContainerElement() const { return false; }
- protected:
- SVGGElement(const QualifiedName&, Document*);
+protected:
+ SVGGElement(const QualifiedName&, Document*);
- virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
+ virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
- private:
- virtual bool isValid() const { return SVGTests::isValid(); }
+private:
+ virtual bool isValid() const { return SVGTests::isValid(); }
- virtual void parseMappedAttribute(Attribute*);
- virtual void svgAttributeChanged(const QualifiedName&);
- virtual void synchronizeProperty(const QualifiedName&);
+ virtual void parseMappedAttribute(Attribute*);
+ virtual void svgAttributeChanged(const QualifiedName&);
+ virtual void synchronizeProperty(const QualifiedName&);
- virtual bool rendererIsNeeded(RenderStyle*);
+ virtual bool rendererIsNeeded(RenderStyle*);
- // SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGGElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
- };
+ // Animated property declarations
+
+ // SVGExternalResourcesRequired
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
+};
} // namespace WebCore
diff --git a/WebCore/svg/SVGGradientElement.cpp b/WebCore/svg/SVGGradientElement.cpp
index 40b59d7..4f9bc16 100644
--- a/WebCore/svg/SVGGradientElement.cpp
+++ b/WebCore/svg/SVGGradientElement.cpp
@@ -43,6 +43,7 @@
DEFINE_ANIMATED_ENUMERATION(SVGGradientElement, SVGNames::gradientUnitsAttr, GradientUnits, gradientUnits)
DEFINE_ANIMATED_TRANSFORM_LIST(SVGGradientElement, SVGNames::gradientTransformAttr, GradientTransform, gradientTransform)
DEFINE_ANIMATED_STRING(SVGGradientElement, XLinkNames::hrefAttr, Href, href)
+DEFINE_ANIMATED_BOOLEAN(SVGGradientElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
SVGGradientElement::SVGGradientElement(const QualifiedName& tagName, Document* document)
: SVGStyledElement(tagName, document)
diff --git a/WebCore/svg/SVGGradientElement.h b/WebCore/svg/SVGGradientElement.h
index bd4e321..1fd1f0b 100644
--- a/WebCore/svg/SVGGradientElement.h
+++ b/WebCore/svg/SVGGradientElement.h
@@ -23,6 +23,7 @@
#if ENABLE(SVG)
#include "Gradient.h"
+#include "SVGAnimatedBoolean.h"
#include "SVGAnimatedEnumeration.h"
#include "SVGAnimatedTransformList.h"
#include "SVGExternalResourcesRequired.h"
@@ -58,7 +59,7 @@
DECLARE_ANIMATED_STRING(Href, href)
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGGradientElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
};
} // namespace WebCore
diff --git a/WebCore/svg/SVGImageElement.cpp b/WebCore/svg/SVGImageElement.cpp
index 9437431..4404a6c 100644
--- a/WebCore/svg/SVGImageElement.cpp
+++ b/WebCore/svg/SVGImageElement.cpp
@@ -42,7 +42,9 @@
DEFINE_ANIMATED_LENGTH(SVGImageElement, SVGNames::yAttr, Y, y)
DEFINE_ANIMATED_LENGTH(SVGImageElement, SVGNames::widthAttr, Width, width)
DEFINE_ANIMATED_LENGTH(SVGImageElement, SVGNames::heightAttr, Height, height)
+DEFINE_ANIMATED_PRESERVEASPECTRATIO(SVGImageElement, SVGNames::preserveAspectRatioAttr, PreserveAspectRatio, preserveAspectRatio)
DEFINE_ANIMATED_STRING(SVGImageElement, XLinkNames::hrefAttr, Href, href)
+DEFINE_ANIMATED_BOOLEAN(SVGImageElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
inline SVGImageElement::SVGImageElement(const QualifiedName& tagName, Document* document)
: SVGStyledTransformableElement(tagName, document)
diff --git a/WebCore/svg/SVGImageElement.h b/WebCore/svg/SVGImageElement.h
index 97b6060..6b8bb65d 100644
--- a/WebCore/svg/SVGImageElement.h
+++ b/WebCore/svg/SVGImageElement.h
@@ -22,15 +22,15 @@
#define SVGImageElement_h
#if ENABLE(SVG)
+#include "SVGAnimatedBoolean.h"
#include "SVGAnimatedLength.h"
-#include "SVGAnimatedPropertyMacros.h"
+#include "SVGAnimatedPreserveAspectRatio.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGLangSpace.h"
#include "SVGImageLoader.h"
#include "SVGStyledTransformableElement.h"
#include "SVGTests.h"
#include "SVGURIReference.h"
-#include "SVGPreserveAspectRatio.h"
namespace WebCore {
@@ -69,13 +69,13 @@
DECLARE_ANIMATED_LENGTH(Y, y)
DECLARE_ANIMATED_LENGTH(Width, width)
DECLARE_ANIMATED_LENGTH(Height, height)
- DECLARE_ANIMATED_PROPERTY_NEW(SVGImageElement, SVGNames::preserveAspectRatioAttr, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
+ DECLARE_ANIMATED_PRESERVEASPECTRATIO(PreserveAspectRatio, preserveAspectRatio)
// SVGURIReference
DECLARE_ANIMATED_STRING(Href, href)
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGImageElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
SVGImageLoader m_imageLoader;
};
diff --git a/WebCore/svg/SVGLineElement.cpp b/WebCore/svg/SVGLineElement.cpp
index 2758b77..cfe43da 100644
--- a/WebCore/svg/SVGLineElement.cpp
+++ b/WebCore/svg/SVGLineElement.cpp
@@ -37,6 +37,7 @@
DEFINE_ANIMATED_LENGTH(SVGLineElement, SVGNames::y1Attr, Y1, y1)
DEFINE_ANIMATED_LENGTH(SVGLineElement, SVGNames::x2Attr, X2, x2)
DEFINE_ANIMATED_LENGTH(SVGLineElement, SVGNames::y2Attr, Y2, y2)
+DEFINE_ANIMATED_BOOLEAN(SVGLineElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
inline SVGLineElement::SVGLineElement(const QualifiedName& tagName, Document* document)
: SVGStyledTransformableElement(tagName, document)
diff --git a/WebCore/svg/SVGLineElement.h b/WebCore/svg/SVGLineElement.h
index 614675f..ad60a95 100644
--- a/WebCore/svg/SVGLineElement.h
+++ b/WebCore/svg/SVGLineElement.h
@@ -22,8 +22,8 @@
#define SVGLineElement_h
#if ENABLE(SVG)
+#include "SVGAnimatedBoolean.h"
#include "SVGAnimatedLength.h"
-#include "SVGAnimatedPropertyMacros.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGLangSpace.h"
#include "SVGStyledTransformableElement.h"
@@ -60,7 +60,7 @@
DECLARE_ANIMATED_LENGTH(Y2, y2)
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGLineElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
};
} // namespace WebCore
diff --git a/WebCore/svg/SVGLinearGradientElement.h b/WebCore/svg/SVGLinearGradientElement.h
index 6cf4e0c..198f0ee 100644
--- a/WebCore/svg/SVGLinearGradientElement.h
+++ b/WebCore/svg/SVGLinearGradientElement.h
@@ -23,7 +23,6 @@
#if ENABLE(SVG)
#include "SVGAnimatedLength.h"
-#include "SVGAnimatedPropertyMacros.h"
#include "SVGGradientElement.h"
namespace WebCore {
diff --git a/WebCore/svg/SVGMPathElement.cpp b/WebCore/svg/SVGMPathElement.cpp
index 88b0078..eb0b998 100644
--- a/WebCore/svg/SVGMPathElement.cpp
+++ b/WebCore/svg/SVGMPathElement.cpp
@@ -29,6 +29,7 @@
// Animated property definitions
DEFINE_ANIMATED_STRING(SVGMPathElement, XLinkNames::hrefAttr, Href, href)
+DEFINE_ANIMATED_BOOLEAN(SVGMPathElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
inline SVGMPathElement::SVGMPathElement(const QualifiedName& tagName, Document* document)
: SVGElement(tagName, document)
diff --git a/WebCore/svg/SVGMPathElement.h b/WebCore/svg/SVGMPathElement.h
index 9fbd418..2fa7c28 100644
--- a/WebCore/svg/SVGMPathElement.h
+++ b/WebCore/svg/SVGMPathElement.h
@@ -21,6 +21,7 @@
#define SVGMPathElement_h
#if ENABLE(SVG)
+#include "SVGAnimatedBoolean.h"
#include "SVGAnimatedString.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGURIReference.h"
@@ -49,7 +50,7 @@
DECLARE_ANIMATED_STRING(Href, href)
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGMPathElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
};
} // namespace WebCore
diff --git a/WebCore/svg/SVGMarkerElement.cpp b/WebCore/svg/SVGMarkerElement.cpp
index 3208bd4..3174711 100644
--- a/WebCore/svg/SVGMarkerElement.cpp
+++ b/WebCore/svg/SVGMarkerElement.cpp
@@ -25,12 +25,9 @@
#include "SVGMarkerElement.h"
#include "Attribute.h"
-#include "PlatformString.h"
#include "RenderSVGResourceMarker.h"
#include "SVGFitToViewBox.h"
-#include "SVGLength.h"
#include "SVGNames.h"
-#include "SVGPreserveAspectRatio.h"
#include "SVGSVGElement.h"
namespace WebCore {
@@ -42,7 +39,11 @@
DEFINE_ANIMATED_LENGTH(SVGMarkerElement, SVGNames::markerHeightAttr, MarkerHeight, markerHeight)
DEFINE_ANIMATED_ENUMERATION(SVGMarkerElement, SVGNames::markerUnitsAttr, MarkerUnits, markerUnits)
DEFINE_ANIMATED_ENUMERATION_MULTIPLE_WRAPPERS(SVGMarkerElement, SVGNames::orientAttr, orientTypeIdentifier(), OrientType, orientType)
-
+DEFINE_ANIMATED_ANGLE_MULTIPLE_WRAPPERS(SVGMarkerElement, SVGNames::orientAttr, orientAngleIdentifier(), OrientAngle, orientAngle)
+DEFINE_ANIMATED_BOOLEAN(SVGMarkerElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
+DEFINE_ANIMATED_RECT(SVGMarkerElement, SVGNames::viewBoxAttr, ViewBox, viewBox)
+DEFINE_ANIMATED_PRESERVEASPECTRATIO(SVGMarkerElement, SVGNames::preserveAspectRatioAttr, PreserveAspectRatio, preserveAspectRatio)
+
inline SVGMarkerElement::SVGMarkerElement(const QualifiedName& tagName, Document* document)
: SVGStyledElement(tagName, document)
, m_refX(LengthModeWidth)
diff --git a/WebCore/svg/SVGMarkerElement.h b/WebCore/svg/SVGMarkerElement.h
index babae5b..472baa6 100644
--- a/WebCore/svg/SVGMarkerElement.h
+++ b/WebCore/svg/SVGMarkerElement.h
@@ -22,21 +22,19 @@
#define SVGMarkerElement_h
#if ENABLE(SVG)
-#include "RenderObject.h"
-#include "SVGAngle.h"
+#include "SVGAnimatedAngle.h"
+#include "SVGAnimatedBoolean.h"
#include "SVGAnimatedEnumeration.h"
#include "SVGAnimatedLength.h"
+#include "SVGAnimatedPreserveAspectRatio.h"
+#include "SVGAnimatedRect.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGFitToViewBox.h"
#include "SVGLangSpace.h"
-#include "SVGPreserveAspectRatio.h"
-#include "SVGRect.h"
#include "SVGStyledElement.h"
namespace WebCore {
-class Document;
-
class SVGMarkerElement : public SVGStyledElement,
public SVGLangSpace,
public SVGExternalResourcesRequired,
@@ -85,14 +83,14 @@
DECLARE_ANIMATED_LENGTH(MarkerHeight, markerHeight)
DECLARE_ANIMATED_ENUMERATION(MarkerUnits, markerUnits)
DECLARE_ANIMATED_ENUMERATION(OrientType, orientType)
- DECLARE_ANIMATED_PROPERTY_MULTIPLE_WRAPPERS_NEW(SVGMarkerElement, SVGNames::orientAttr, orientAngleIdentifier(), SVGAngle, OrientAngle, orientAngle)
+ DECLARE_ANIMATED_ANGLE(OrientAngle, orientAngle)
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGMarkerElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
// SVGFitToViewBox
- DECLARE_ANIMATED_PROPERTY_NEW(SVGMarkerElement, SVGNames::viewBoxAttr, FloatRect, ViewBox, viewBox)
- DECLARE_ANIMATED_PROPERTY_NEW(SVGMarkerElement, SVGNames::preserveAspectRatioAttr, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
+ DECLARE_ANIMATED_RECT(ViewBox, viewBox)
+ DECLARE_ANIMATED_PRESERVEASPECTRATIO(PreserveAspectRatio, preserveAspectRatio)
};
}
diff --git a/WebCore/svg/SVGMaskElement.cpp b/WebCore/svg/SVGMaskElement.cpp
index 0004a7a..ec23e29 100644
--- a/WebCore/svg/SVGMaskElement.cpp
+++ b/WebCore/svg/SVGMaskElement.cpp
@@ -42,6 +42,7 @@
DEFINE_ANIMATED_LENGTH(SVGMaskElement, SVGNames::yAttr, Y, y)
DEFINE_ANIMATED_LENGTH(SVGMaskElement, SVGNames::widthAttr, Width, width)
DEFINE_ANIMATED_LENGTH(SVGMaskElement, SVGNames::heightAttr, Height, height)
+DEFINE_ANIMATED_BOOLEAN(SVGMaskElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
inline SVGMaskElement::SVGMaskElement(const QualifiedName& tagName, Document* document)
: SVGStyledLocatableElement(tagName, document)
diff --git a/WebCore/svg/SVGMaskElement.h b/WebCore/svg/SVGMaskElement.h
index 1ca3036..87e91ff 100644
--- a/WebCore/svg/SVGMaskElement.h
+++ b/WebCore/svg/SVGMaskElement.h
@@ -21,7 +21,7 @@
#define SVGMaskElement_h
#if ENABLE(SVG)
-#include "RenderObject.h"
+#include "SVGAnimatedBoolean.h"
#include "SVGAnimatedEnumeration.h"
#include "SVGAnimatedLength.h"
#include "SVGExternalResourcesRequired.h"
@@ -64,7 +64,7 @@
DECLARE_ANIMATED_LENGTH(Height, height)
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGMaskElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
};
}
diff --git a/WebCore/svg/SVGPathElement.cpp b/WebCore/svg/SVGPathElement.cpp
index 7ecd9d14..e976fc1 100644
--- a/WebCore/svg/SVGPathElement.cpp
+++ b/WebCore/svg/SVGPathElement.cpp
@@ -46,6 +46,7 @@
// Animated property definitions
DEFINE_ANIMATED_NUMBER(SVGPathElement, SVGNames::pathLengthAttr, PathLength, pathLength)
+DEFINE_ANIMATED_BOOLEAN(SVGPathElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
inline SVGPathElement::SVGPathElement(const QualifiedName& tagName, Document* document)
: SVGStyledTransformableElement(tagName, document)
diff --git a/WebCore/svg/SVGPathElement.h b/WebCore/svg/SVGPathElement.h
index ffdd32e..6ea7d55 100644
--- a/WebCore/svg/SVGPathElement.h
+++ b/WebCore/svg/SVGPathElement.h
@@ -22,6 +22,7 @@
#define SVGPathElement_h
#if ENABLE(SVG)
+#include "SVGAnimatedBoolean.h"
#include "SVGAnimatedNumber.h"
#include "SVGAnimatedPathSegListPropertyTearOff.h"
#include "SVGExternalResourcesRequired.h"
@@ -109,7 +110,7 @@
DECLARE_ANIMATED_NUMBER(PathLength, pathLength)
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGPathElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
void synchronizeD();
diff --git a/WebCore/svg/SVGPatternElement.cpp b/WebCore/svg/SVGPatternElement.cpp
index cec92b4..29723e7 100644
--- a/WebCore/svg/SVGPatternElement.cpp
+++ b/WebCore/svg/SVGPatternElement.cpp
@@ -51,6 +51,9 @@
DEFINE_ANIMATED_ENUMERATION(SVGPatternElement, SVGNames::patternContentUnitsAttr, PatternContentUnits, patternContentUnits)
DEFINE_ANIMATED_TRANSFORM_LIST(SVGPatternElement, SVGNames::patternTransformAttr, PatternTransform, patternTransform)
DEFINE_ANIMATED_STRING(SVGPatternElement, XLinkNames::hrefAttr, Href, href)
+DEFINE_ANIMATED_BOOLEAN(SVGPatternElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
+DEFINE_ANIMATED_RECT(SVGPatternElement, SVGNames::viewBoxAttr, ViewBox, viewBox)
+DEFINE_ANIMATED_PRESERVEASPECTRATIO(SVGPatternElement, SVGNames::preserveAspectRatioAttr, PreserveAspectRatio, preserveAspectRatio)
inline SVGPatternElement::SVGPatternElement(const QualifiedName& tagName, Document* document)
: SVGStyledElement(tagName, document)
diff --git a/WebCore/svg/SVGPatternElement.h b/WebCore/svg/SVGPatternElement.h
index 394c70f..e581308 100644
--- a/WebCore/svg/SVGPatternElement.h
+++ b/WebCore/svg/SVGPatternElement.h
@@ -22,14 +22,15 @@
#define SVGPatternElement_h
#if ENABLE(SVG)
+#include "SVGAnimatedBoolean.h"
#include "SVGAnimatedEnumeration.h"
#include "SVGAnimatedLength.h"
+#include "SVGAnimatedPreserveAspectRatio.h"
+#include "SVGAnimatedRect.h"
#include "SVGAnimatedTransformList.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGFitToViewBox.h"
#include "SVGLangSpace.h"
-#include "SVGPreserveAspectRatio.h"
-#include "SVGRect.h"
#include "SVGStyledElement.h"
#include "SVGTests.h"
#include "SVGURIReference.h"
@@ -77,11 +78,11 @@
DECLARE_ANIMATED_STRING(Href, href)
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGPatternElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
// SVGPatternElement
- DECLARE_ANIMATED_PROPERTY_NEW(SVGPatternElement, SVGNames::viewBoxAttr, FloatRect, ViewBox, viewBox)
- DECLARE_ANIMATED_PROPERTY_NEW(SVGPatternElement, SVGNames::preserveAspectRatioAttr, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
+ DECLARE_ANIMATED_RECT(ViewBox, viewBox)
+ DECLARE_ANIMATED_PRESERVEASPECTRATIO(PreserveAspectRatio, preserveAspectRatio)
};
} // namespace WebCore
diff --git a/WebCore/svg/SVGPolyElement.cpp b/WebCore/svg/SVGPolyElement.cpp
index beef21f..0fb48d7 100644
--- a/WebCore/svg/SVGPolyElement.cpp
+++ b/WebCore/svg/SVGPolyElement.cpp
@@ -34,6 +34,9 @@
namespace WebCore {
+// Animated property definitions
+DEFINE_ANIMATED_BOOLEAN(SVGPolyElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
+
SVGPolyElement::SVGPolyElement(const QualifiedName& tagName, Document* document)
: SVGStyledTransformableElement(tagName, document)
{
diff --git a/WebCore/svg/SVGPolyElement.h b/WebCore/svg/SVGPolyElement.h
index 0855218..3af8a79 100644
--- a/WebCore/svg/SVGPolyElement.h
+++ b/WebCore/svg/SVGPolyElement.h
@@ -22,7 +22,7 @@
#define SVGPolyElement_h
#if ENABLE(SVG)
-#include "SVGAnimatedPropertyMacros.h"
+#include "SVGAnimatedBoolean.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGLangSpace.h"
#include "SVGPointList.h"
@@ -54,7 +54,7 @@
virtual bool supportsMarkers() const { return true; }
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGPolyElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
void synchronizePoints();
diff --git a/WebCore/svg/SVGRadialGradientElement.h b/WebCore/svg/SVGRadialGradientElement.h
index 52f5498..199eaba 100644
--- a/WebCore/svg/SVGRadialGradientElement.h
+++ b/WebCore/svg/SVGRadialGradientElement.h
@@ -23,7 +23,6 @@
#if ENABLE(SVG)
#include "SVGAnimatedLength.h"
-#include "SVGAnimatedPropertyMacros.h"
#include "SVGGradientElement.h"
namespace WebCore {
diff --git a/WebCore/svg/SVGRectElement.cpp b/WebCore/svg/SVGRectElement.cpp
index 04fba95..d5db5b9 100644
--- a/WebCore/svg/SVGRectElement.cpp
+++ b/WebCore/svg/SVGRectElement.cpp
@@ -38,6 +38,7 @@
DEFINE_ANIMATED_LENGTH(SVGRectElement, SVGNames::heightAttr, Height, height)
DEFINE_ANIMATED_LENGTH(SVGRectElement, SVGNames::rxAttr, Rx, rx)
DEFINE_ANIMATED_LENGTH(SVGRectElement, SVGNames::ryAttr, Ry, ry)
+DEFINE_ANIMATED_BOOLEAN(SVGRectElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
inline SVGRectElement::SVGRectElement(const QualifiedName& tagName, Document* document)
: SVGStyledTransformableElement(tagName, document)
diff --git a/WebCore/svg/SVGRectElement.h b/WebCore/svg/SVGRectElement.h
index 706c41c..0c30378 100644
--- a/WebCore/svg/SVGRectElement.h
+++ b/WebCore/svg/SVGRectElement.h
@@ -22,8 +22,8 @@
#define SVGRectElement_h
#if ENABLE(SVG)
+#include "SVGAnimatedBoolean.h"
#include "SVGAnimatedLength.h"
-#include "SVGAnimatedPropertyMacros.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGLangSpace.h"
#include "SVGStyledTransformableElement.h"
@@ -60,7 +60,7 @@
DECLARE_ANIMATED_LENGTH(Ry, ry)
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGRectElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
};
} // namespace WebCore
diff --git a/WebCore/svg/SVGSVGElement.cpp b/WebCore/svg/SVGSVGElement.cpp
index f418315..8b33c89 100644
--- a/WebCore/svg/SVGSVGElement.cpp
+++ b/WebCore/svg/SVGSVGElement.cpp
@@ -53,14 +53,14 @@
namespace WebCore {
-using namespace HTMLNames;
-using namespace SVGNames;
-
// Animated property definitions
DEFINE_ANIMATED_LENGTH(SVGSVGElement, SVGNames::xAttr, X, x)
DEFINE_ANIMATED_LENGTH(SVGSVGElement, SVGNames::yAttr, Y, y)
DEFINE_ANIMATED_LENGTH(SVGSVGElement, SVGNames::widthAttr, Width, width)
DEFINE_ANIMATED_LENGTH(SVGSVGElement, SVGNames::heightAttr, Height, height)
+DEFINE_ANIMATED_BOOLEAN(SVGSVGElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
+DEFINE_ANIMATED_PRESERVEASPECTRATIO(SVGSVGElement, SVGNames::preserveAspectRatioAttr, PreserveAspectRatio, preserveAspectRatio)
+DEFINE_ANIMATED_RECT(SVGSVGElement, SVGNames::viewBoxAttr, ViewBox, viewBox)
inline SVGSVGElement::SVGSVGElement(const QualifiedName& tagName, Document* doc)
: SVGStyledLocatableElement(tagName, doc)
@@ -106,7 +106,7 @@
const AtomicString& SVGSVGElement::contentScriptType() const
{
DEFINE_STATIC_LOCAL(const AtomicString, defaultValue, ("text/ecmascript"));
- const AtomicString& n = getAttribute(contentScriptTypeAttr);
+ const AtomicString& n = getAttribute(SVGNames::contentScriptTypeAttr);
return n.isNull() ? defaultValue : n;
}
@@ -118,7 +118,7 @@
const AtomicString& SVGSVGElement::contentStyleType() const
{
DEFINE_STATIC_LOCAL(const AtomicString, defaultValue, ("text/css"));
- const AtomicString& n = getAttribute(contentStyleTypeAttr);
+ const AtomicString& n = getAttribute(SVGNames::contentStyleTypeAttr);
return n.isNull() ? defaultValue : n;
}
@@ -246,11 +246,11 @@
bool setListener = true;
// Only handle events if we're the outermost <svg> element
- if (attr->name() == onunloadAttr)
+ if (attr->name() == HTMLNames::onunloadAttr)
document()->setWindowAttributeEventListener(eventNames().unloadEvent, createAttributeEventListener(document()->frame(), attr));
- else if (attr->name() == onresizeAttr)
+ else if (attr->name() == HTMLNames::onresizeAttr)
document()->setWindowAttributeEventListener(eventNames().resizeEvent, createAttributeEventListener(document()->frame(), attr));
- else if (attr->name() == onscrollAttr)
+ else if (attr->name() == HTMLNames::onscrollAttr)
document()->setWindowAttributeEventListener(eventNames().scrollEvent, createAttributeEventListener(document()->frame(), attr));
else if (attr->name() == SVGNames::onzoomAttr)
document()->setWindowAttributeEventListener(eventNames().zoomEvent, createAttributeEventListener(document()->frame(), attr));
@@ -261,9 +261,9 @@
return;
}
- if (attr->name() == onabortAttr)
+ if (attr->name() == HTMLNames::onabortAttr)
document()->setWindowAttributeEventListener(eventNames().abortEvent, createAttributeEventListener(document()->frame(), attr));
- else if (attr->name() == onerrorAttr)
+ else if (attr->name() == HTMLNames::onerrorAttr)
document()->setWindowAttributeEventListener(eventNames().errorEvent, createAttributeEventListener(document()->frame(), attr));
else if (attr->name() == SVGNames::xAttr)
setXBaseValue(SVGLength(LengthModeWidth, attr->value()));
diff --git a/WebCore/svg/SVGSVGElement.h b/WebCore/svg/SVGSVGElement.h
index 4a0ac58..0995c67 100644
--- a/WebCore/svg/SVGSVGElement.h
+++ b/WebCore/svg/SVGSVGElement.h
@@ -22,14 +22,13 @@
#define SVGSVGElement_h
#if ENABLE(SVG)
-#include "IntSize.h"
+#include "SVGAnimatedBoolean.h"
#include "SVGAnimatedLength.h"
-#include "SVGAnimatedPropertyMacros.h"
+#include "SVGAnimatedPreserveAspectRatio.h"
+#include "SVGAnimatedRect.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGFitToViewBox.h"
#include "SVGLangSpace.h"
-#include "SVGPreserveAspectRatio.h"
-#include "SVGRect.h"
#include "SVGStyledLocatableElement.h"
#include "SVGTests.h"
#include "SVGZoomAndPan.h"
@@ -155,11 +154,11 @@
DECLARE_ANIMATED_LENGTH(Height, height)
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGSVGElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
// SVGFitToViewBox
- DECLARE_ANIMATED_PROPERTY_NEW(SVGSVGElement, SVGNames::viewBoxAttr, FloatRect, ViewBox, viewBox)
- DECLARE_ANIMATED_PROPERTY_NEW(SVGSVGElement, SVGNames::preserveAspectRatioAttr, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
+ DECLARE_ANIMATED_RECT(ViewBox, viewBox)
+ DECLARE_ANIMATED_PRESERVEASPECTRATIO(PreserveAspectRatio, preserveAspectRatio)
virtual void documentWillBecomeInactive();
virtual void documentDidBecomeActive();
diff --git a/WebCore/svg/SVGScriptElement.cpp b/WebCore/svg/SVGScriptElement.cpp
index 7e0ff3f..6452700 100644
--- a/WebCore/svg/SVGScriptElement.cpp
+++ b/WebCore/svg/SVGScriptElement.cpp
@@ -33,6 +33,7 @@
// Animated property definitions
DEFINE_ANIMATED_STRING(SVGScriptElement, XLinkNames::hrefAttr, Href, href)
+DEFINE_ANIMATED_BOOLEAN(SVGScriptElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
inline SVGScriptElement::SVGScriptElement(const QualifiedName& tagName, Document* document, bool wasInsertedByParser, bool wasAlreadyStarted)
: SVGElement(tagName, document)
diff --git a/WebCore/svg/SVGScriptElement.h b/WebCore/svg/SVGScriptElement.h
index 4014e0c..df502e0 100644
--- a/WebCore/svg/SVGScriptElement.h
+++ b/WebCore/svg/SVGScriptElement.h
@@ -22,6 +22,7 @@
#define SVGScriptElement_h
#if ENABLE(SVG)
+#include "SVGAnimatedBoolean.h"
#include "SVGAnimatedString.h"
#include "SVGElement.h"
#include "SVGExternalResourcesRequired.h"
@@ -77,7 +78,7 @@
DECLARE_ANIMATED_STRING(Href, href)
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGScriptElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
String m_type;
};
diff --git a/WebCore/svg/SVGSwitchElement.cpp b/WebCore/svg/SVGSwitchElement.cpp
index b2588f5..853bf03 100644
--- a/WebCore/svg/SVGSwitchElement.cpp
+++ b/WebCore/svg/SVGSwitchElement.cpp
@@ -19,6 +19,7 @@
*/
#include "config.h"
+
#if ENABLE(SVG)
#include "SVGSwitchElement.h"
@@ -27,6 +28,9 @@
namespace WebCore {
+// Animated property definitions
+DEFINE_ANIMATED_BOOLEAN(SVGSwitchElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
+
inline SVGSwitchElement::SVGSwitchElement(const QualifiedName& tagName, Document* document)
: SVGStyledTransformableElement(tagName, document)
{
diff --git a/WebCore/svg/SVGSwitchElement.h b/WebCore/svg/SVGSwitchElement.h
index 1b006ec..937a1e4 100644
--- a/WebCore/svg/SVGSwitchElement.h
+++ b/WebCore/svg/SVGSwitchElement.h
@@ -22,33 +22,36 @@
#define SVGSwitchElement_h
#if ENABLE(SVG)
-#include "SVGAnimatedPropertyMacros.h"
+#include "SVGAnimatedBoolean.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGLangSpace.h"
#include "SVGStyledTransformableElement.h"
#include "SVGTests.h"
namespace WebCore {
- class SVGSwitchElement : public SVGStyledTransformableElement,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired {
- public:
- static PassRefPtr<SVGSwitchElement> create(const QualifiedName&, Document*);
- private:
- SVGSwitchElement(const QualifiedName&, Document*);
-
- virtual bool isValid() const { return SVGTests::isValid(); }
+class SVGSwitchElement : public SVGStyledTransformableElement,
+ public SVGTests,
+ public SVGLangSpace,
+ public SVGExternalResourcesRequired {
+public:
+ static PassRefPtr<SVGSwitchElement> create(const QualifiedName&, Document*);
- virtual bool childShouldCreateRenderer(Node*) const;
+private:
+ SVGSwitchElement(const QualifiedName&, Document*);
+
+ virtual bool isValid() const { return SVGTests::isValid(); }
- virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
- virtual void synchronizeProperty(const QualifiedName&);
+ virtual bool childShouldCreateRenderer(Node*) const;
- // SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGSwitchElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
- };
+ virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
+ virtual void synchronizeProperty(const QualifiedName&);
+
+ // Animated property declarations
+
+ // SVGExternalResourcesRequired
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
+};
} // namespace WebCore
diff --git a/WebCore/svg/SVGSymbolElement.cpp b/WebCore/svg/SVGSymbolElement.cpp
index 7dab3e1..358ea6e 100644
--- a/WebCore/svg/SVGSymbolElement.cpp
+++ b/WebCore/svg/SVGSymbolElement.cpp
@@ -19,14 +19,19 @@
*/
#include "config.h"
+
#if ENABLE(SVG)
#include "SVGSymbolElement.h"
-#include "PlatformString.h"
#include "SVGFitToViewBox.h"
namespace WebCore {
+// Animated property definitions
+DEFINE_ANIMATED_BOOLEAN(SVGSymbolElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
+DEFINE_ANIMATED_PRESERVEASPECTRATIO(SVGSymbolElement, SVGNames::preserveAspectRatioAttr, PreserveAspectRatio, preserveAspectRatio)
+DEFINE_ANIMATED_RECT(SVGSymbolElement, SVGNames::viewBoxAttr, ViewBox, viewBox)
+
inline SVGSymbolElement::SVGSymbolElement(const QualifiedName& tagName, Document* document)
: SVGStyledElement(tagName, document)
{
diff --git a/WebCore/svg/SVGSymbolElement.h b/WebCore/svg/SVGSymbolElement.h
index d416150..e049f0d9 100644
--- a/WebCore/svg/SVGSymbolElement.h
+++ b/WebCore/svg/SVGSymbolElement.h
@@ -22,40 +22,42 @@
#define SVGSymbolElement_h
#if ENABLE(SVG)
-#include "SVGAnimatedPropertyMacros.h"
+#include "SVGAnimatedBoolean.h"
+#include "SVGAnimatedPreserveAspectRatio.h"
+#include "SVGAnimatedRect.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGFitToViewBox.h"
#include "SVGLangSpace.h"
-#include "SVGPreserveAspectRatio.h"
-#include "SVGRect.h"
#include "SVGStyledElement.h"
namespace WebCore {
- class SVGSymbolElement : public SVGStyledElement,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGFitToViewBox {
- public:
- static PassRefPtr<SVGSymbolElement> create(const QualifiedName&, Document*);
+class SVGSymbolElement : public SVGStyledElement,
+ public SVGLangSpace,
+ public SVGExternalResourcesRequired,
+ public SVGFitToViewBox {
+public:
+ static PassRefPtr<SVGSymbolElement> create(const QualifiedName&, Document*);
- private:
- SVGSymbolElement(const QualifiedName&, Document*);
+private:
+ SVGSymbolElement(const QualifiedName&, Document*);
- virtual void parseMappedAttribute(Attribute*);
- virtual void svgAttributeChanged(const QualifiedName&);
- virtual void synchronizeProperty(const QualifiedName&);
- virtual bool rendererIsNeeded(RenderStyle*) { return false; }
+ virtual void parseMappedAttribute(Attribute*);
+ virtual void svgAttributeChanged(const QualifiedName&);
+ virtual void synchronizeProperty(const QualifiedName&);
+ virtual bool rendererIsNeeded(RenderStyle*) { return false; }
- virtual bool selfHasRelativeLengths() const;
+ virtual bool selfHasRelativeLengths() const;
- // SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGSymbolElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ // Animated property declarations
+
+ // SVGExternalResourcesRequired
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
- // SVGFitToViewBox
- DECLARE_ANIMATED_PROPERTY_NEW(SVGSymbolElement, SVGNames::viewBoxAttr, FloatRect, ViewBox, viewBox)
- DECLARE_ANIMATED_PROPERTY_NEW(SVGSymbolElement, SVGNames::preserveAspectRatioAttr, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
- };
+ // SVGFitToViewBox
+ DECLARE_ANIMATED_RECT(ViewBox, viewBox)
+ DECLARE_ANIMATED_PRESERVEASPECTRATIO(PreserveAspectRatio, preserveAspectRatio)
+};
} // namespace WebCore
diff --git a/WebCore/svg/SVGTextContentElement.cpp b/WebCore/svg/SVGTextContentElement.cpp
index 1d68c13..e1a5140 100644
--- a/WebCore/svg/SVGTextContentElement.cpp
+++ b/WebCore/svg/SVGTextContentElement.cpp
@@ -36,6 +36,7 @@
// Animated property definitions
DEFINE_ANIMATED_LENGTH(SVGTextContentElement, SVGNames::textLengthAttr, TextLength, textLength)
DEFINE_ANIMATED_ENUMERATION(SVGTextContentElement, SVGNames::lengthAdjustAttr, LengthAdjust, lengthAdjust)
+DEFINE_ANIMATED_BOOLEAN(SVGTextContentElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
SVGTextContentElement::SVGTextContentElement(const QualifiedName& tagName, Document* document)
: SVGStyledElement(tagName, document)
diff --git a/WebCore/svg/SVGTextContentElement.h b/WebCore/svg/SVGTextContentElement.h
index d8a7a77..60b023b 100644
--- a/WebCore/svg/SVGTextContentElement.h
+++ b/WebCore/svg/SVGTextContentElement.h
@@ -22,6 +22,7 @@
#define SVGTextContentElement_h
#if ENABLE(SVG)
+#include "SVGAnimatedBoolean.h"
#include "SVGAnimatedEnumeration.h"
#include "SVGAnimatedLength.h"
#include "SVGExternalResourcesRequired.h"
@@ -75,7 +76,7 @@
DECLARE_ANIMATED_ENUMERATION(LengthAdjust, lengthAdjust)
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGTextContentElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
};
} // namespace WebCore
diff --git a/WebCore/svg/SVGUseElement.cpp b/WebCore/svg/SVGUseElement.cpp
index 74df0f9..b5cd8aa 100644
--- a/WebCore/svg/SVGUseElement.cpp
+++ b/WebCore/svg/SVGUseElement.cpp
@@ -63,6 +63,7 @@
DEFINE_ANIMATED_LENGTH(SVGUseElement, SVGNames::widthAttr, Width, width)
DEFINE_ANIMATED_LENGTH(SVGUseElement, SVGNames::heightAttr, Height, height)
DEFINE_ANIMATED_STRING(SVGUseElement, XLinkNames::hrefAttr, Href, href)
+DEFINE_ANIMATED_BOOLEAN(SVGUseElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
inline SVGUseElement::SVGUseElement(const QualifiedName& tagName, Document* document)
: SVGStyledTransformableElement(tagName, document)
diff --git a/WebCore/svg/SVGUseElement.h b/WebCore/svg/SVGUseElement.h
index fa61d09..a8f2b82 100644
--- a/WebCore/svg/SVGUseElement.h
+++ b/WebCore/svg/SVGUseElement.h
@@ -22,8 +22,8 @@
#define SVGUseElement_h
#if ENABLE(SVG)
+#include "SVGAnimatedBoolean.h"
#include "SVGAnimatedLength.h"
-#include "SVGAnimatedPropertyMacros.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGLangSpace.h"
#include "SVGStyledTransformableElement.h"
@@ -112,7 +112,7 @@
DECLARE_ANIMATED_STRING(Href, href)
// SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGUseElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
bool m_updatesBlocked;
bool m_isPendingResource;
diff --git a/WebCore/svg/SVGViewElement.cpp b/WebCore/svg/SVGViewElement.cpp
index c59a080..ee3c8d1 100644
--- a/WebCore/svg/SVGViewElement.cpp
+++ b/WebCore/svg/SVGViewElement.cpp
@@ -23,8 +23,7 @@
#if ENABLE(SVG)
#include "SVGViewElement.h"
-#include "Attr.h"
-#include "PlatformString.h"
+#include "Attribute.h"
#include "SVGFitToViewBox.h"
#include "SVGNames.h"
#include "SVGStringList.h"
@@ -32,6 +31,11 @@
namespace WebCore {
+// Animated property definitions
+DEFINE_ANIMATED_BOOLEAN(SVGViewElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
+DEFINE_ANIMATED_RECT(SVGViewElement, SVGNames::viewBoxAttr, ViewBox, viewBox)
+DEFINE_ANIMATED_PRESERVEASPECTRATIO(SVGViewElement, SVGNames::preserveAspectRatioAttr, PreserveAspectRatio, preserveAspectRatio)
+
inline SVGViewElement::SVGViewElement(const QualifiedName& tagName, Document* document)
: SVGStyledElement(tagName, document)
, m_viewTarget(SVGNames::viewTargetAttr)
diff --git a/WebCore/svg/SVGViewElement.h b/WebCore/svg/SVGViewElement.h
index b3a0f39..0e2e4fd 100644
--- a/WebCore/svg/SVGViewElement.h
+++ b/WebCore/svg/SVGViewElement.h
@@ -22,43 +22,45 @@
#define SVGViewElement_h
#if ENABLE(SVG)
-#include "SVGAnimatedPropertyMacros.h"
+#include "SVGAnimatedBoolean.h"
+#include "SVGAnimatedPreserveAspectRatio.h"
+#include "SVGAnimatedRect.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGFitToViewBox.h"
-#include "SVGPreserveAspectRatio.h"
-#include "SVGRect.h"
#include "SVGStringList.h"
#include "SVGStyledElement.h"
#include "SVGZoomAndPan.h"
namespace WebCore {
- class SVGViewElement : public SVGStyledElement,
- public SVGExternalResourcesRequired,
- public SVGFitToViewBox,
- public SVGZoomAndPan {
- public:
- static PassRefPtr<SVGViewElement> create(const QualifiedName&, Document*);
+class SVGViewElement : public SVGStyledElement,
+ public SVGExternalResourcesRequired,
+ public SVGFitToViewBox,
+ public SVGZoomAndPan {
+public:
+ static PassRefPtr<SVGViewElement> create(const QualifiedName&, Document*);
- SVGStringList& viewTarget() { return m_viewTarget; }
+ SVGStringList& viewTarget() { return m_viewTarget; }
- private:
- SVGViewElement(const QualifiedName&, Document*);
+private:
+ SVGViewElement(const QualifiedName&, Document*);
- virtual void parseMappedAttribute(Attribute*);
- virtual void synchronizeProperty(const QualifiedName&);
+ virtual void parseMappedAttribute(Attribute*);
+ virtual void synchronizeProperty(const QualifiedName&);
- virtual bool rendererIsNeeded(RenderStyle*) { return false; }
+ virtual bool rendererIsNeeded(RenderStyle*) { return false; }
- // SVGExternalResourcesRequired
- DECLARE_ANIMATED_STATIC_PROPERTY_NEW(SVGViewElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
+ // Animated property declarations
+
+ // SVGExternalResourcesRequired
+ DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesRequired)
- // SVGFitToViewBox
- DECLARE_ANIMATED_PROPERTY_NEW(SVGViewElement, SVGNames::viewBoxAttr, FloatRect, ViewBox, viewBox)
- DECLARE_ANIMATED_PROPERTY_NEW(SVGViewElement, SVGNames::preserveAspectRatioAttr, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
+ // SVGFitToViewBox
+ DECLARE_ANIMATED_RECT(ViewBox, viewBox)
+ DECLARE_ANIMATED_PRESERVEASPECTRATIO(PreserveAspectRatio, preserveAspectRatio)
- SVGStringList m_viewTarget;
- };
+ SVGStringList m_viewTarget;
+};
} // namespace WebCore
diff --git a/WebCore/svg/SVGViewSpec.cpp b/WebCore/svg/SVGViewSpec.cpp
index a0a683b..8cd656d 100644
--- a/WebCore/svg/SVGViewSpec.cpp
+++ b/WebCore/svg/SVGViewSpec.cpp
@@ -18,19 +18,22 @@
*/
#include "config.h"
+
#if ENABLE(SVG)
#include "SVGViewSpec.h"
#include "Document.h"
-#include "PlatformString.h"
#include "SVGParserUtilities.h"
#include "SVGPreserveAspectRatio.h"
#include "SVGSVGElement.h"
-#include "SVGTransformList.h"
#include "SVGTransformable.h"
namespace WebCore {
+// Animated property definitions
+DEFINE_ANIMATED_RECT(SVGViewSpec, SVGNames::viewBoxAttr, ViewBox, viewBox)
+DEFINE_ANIMATED_PRESERVEASPECTRATIO(SVGViewSpec, SVGNames::preserveAspectRatioAttr, PreserveAspectRatio, preserveAspectRatio)
+
SVGViewSpec::SVGViewSpec(SVGElement* contextElement)
: m_contextElement(contextElement)
{
diff --git a/WebCore/svg/SVGViewSpec.h b/WebCore/svg/SVGViewSpec.h
index 7427f4b..686cec3 100644
--- a/WebCore/svg/SVGViewSpec.h
+++ b/WebCore/svg/SVGViewSpec.h
@@ -21,51 +21,49 @@
#define SVGViewSpec_h
#if ENABLE(SVG)
-#include "SVGAnimatedPropertyMacros.h"
-#include "SVGElement.h"
+#include "SVGAnimatedPreserveAspectRatio.h"
+#include "SVGAnimatedRect.h"
#include "SVGFitToViewBox.h"
-#include "SVGPreserveAspectRatio.h"
-#include "SVGRect.h"
+#include "SVGTransformList.h"
#include "SVGZoomAndPan.h"
-#include <wtf/RefPtr.h>
-
namespace WebCore {
- class SVGElement;
- class SVGTransformList;
+class SVGElement;
- class SVGViewSpec : public SVGFitToViewBox,
- public SVGZoomAndPan,
- public Noncopyable {
- public:
- SVGViewSpec(SVGElement*);
+class SVGViewSpec : public SVGFitToViewBox,
+ public SVGZoomAndPan,
+ public Noncopyable {
+public:
+ SVGViewSpec(SVGElement*);
- bool parseViewSpec(const String&);
+ bool parseViewSpec(const String&);
- void setTransform(const String&);
- SVGTransformList transform() const { return m_transform; }
+ void setTransform(const String&);
+ SVGTransformList transform() const { return m_transform; }
- void setViewBoxString(const String&);
+ void setViewBoxString(const String&);
- void setPreserveAspectRatioString(const String&);
+ void setPreserveAspectRatioString(const String&);
- void setViewTargetString(const String&);
- String viewTargetString() const { return m_viewTargetString; }
- SVGElement* viewTarget() const;
+ void setViewTargetString(const String&);
+ String viewTargetString() const { return m_viewTargetString; }
+ SVGElement* viewTarget() const;
- SVGElement* contextElement() const { return const_cast<SVGElement*>(m_contextElement); }
+ SVGElement* contextElement() const { return const_cast<SVGElement*>(m_contextElement); }
- private:
- SVGElement* m_contextElement;
+private:
+ SVGElement* m_contextElement;
- // SVGFitToViewBox
- DECLARE_ANIMATED_PROPERTY_NEW(SVGViewSpec, SVGNames::viewBoxAttr, FloatRect, ViewBox, viewBox)
- DECLARE_ANIMATED_PROPERTY_NEW(SVGViewSpec, SVGNames::preserveAspectRatioAttr, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
+ // Animated property declarations
- SVGTransformList m_transform;
- String m_viewTargetString;
- };
+ // SVGFitToViewBox
+ DECLARE_ANIMATED_RECT(ViewBox, viewBox)
+ DECLARE_ANIMATED_PRESERVEASPECTRATIO(PreserveAspectRatio, preserveAspectRatio)
+
+ SVGTransformList m_transform;
+ String m_viewTargetString;
+};
} // namespace WebCore
diff --git a/WebCore/svg/properties/SVGAnimatedPropertyMacros.h b/WebCore/svg/properties/SVGAnimatedPropertyMacros.h
index a24a25d..defbc6e 100644
--- a/WebCore/svg/properties/SVGAnimatedPropertyMacros.h
+++ b/WebCore/svg/properties/SVGAnimatedPropertyMacros.h
@@ -23,18 +23,12 @@
#define SVGAnimatedPropertyMacros_h
#if ENABLE(SVG)
-#include "SVGAnimatedListPropertyTearOff.h"
-#include "SVGAnimatedStaticPropertyTearOff.h"
#include "SVGAnimatedPropertySynchronizer.h"
-#include "SVGAnimatedPropertyTearOff.h"
-#include "SVGAnimatedTransformListPropertyTearOff.h"
#include "SVGNames.h" // FIXME: Temporary hack, until we expand the macros in all files, so we don't need a global SVGNames.h include
#include "SVGPropertyTraits.h"
namespace WebCore {
-class SVGElement;
-
// GetOwnerElementForType implementation
template<typename OwnerType, bool isDerivedFromSVGElement>
struct GetOwnerElementForType;
@@ -69,6 +63,7 @@
static const bool value = false;
};
+// SVGSynchronizableAnimatedProperty implementation
template<typename PropertyType>
struct SVGSynchronizableAnimatedProperty {
SVGSynchronizableAnimatedProperty()
@@ -95,56 +90,6 @@
bool shouldSynchronize : 1;
};
-// FIXME: These macros should be removed, after the transition to the new SVGAnimatedProperty concept is finished.
-#define DECLARE_ANIMATED_PROPERTY_NEW_SHARED(OwnerType, DOMAttribute, SVGDOMAttributeIdentifier, TearOffType, PropertyType, UpperProperty, LowerProperty) \
-public: \
-PropertyType& LowerProperty() const \
-{ \
- return m_##LowerProperty.value; \
-} \
-\
-PropertyType& LowerProperty##BaseValue() const \
-{ \
- return m_##LowerProperty.value; \
-} \
-\
-void set##UpperProperty##BaseValue(const PropertyType& type) \
-{ \
- m_##LowerProperty.value = type; \
-} \
-\
-void synchronize##UpperProperty() \
-{ \
- if (!m_##LowerProperty.shouldSynchronize) \
- return; \
- AtomicString value(SVGPropertyTraits<PropertyType>::toString(LowerProperty##BaseValue())); \
- SVGElement* contextElement = GetOwnerElementForType<OwnerType, IsDerivedFromSVGElement<OwnerType>::value>::ownerElement(this); \
- SVGAnimatedPropertySynchronizer<IsDerivedFromSVGElement<OwnerType>::value>::synchronize(contextElement, DOMAttribute, value); \
-} \
-\
-PassRefPtr<TearOffType> LowerProperty##Animated() \
-{ \
- m_##LowerProperty.shouldSynchronize = true; \
- SVGElement* contextElement = GetOwnerElementForType<OwnerType, IsDerivedFromSVGElement<OwnerType>::value>::ownerElement(this); \
- return SVGAnimatedProperty::lookupOrCreateWrapper<TearOffType, PropertyType>(contextElement, DOMAttribute, SVGDOMAttributeIdentifier, m_##LowerProperty.value); \
-} \
-private: \
- mutable SVGSynchronizableAnimatedProperty<PropertyType> m_##LowerProperty;
-
-#define DECLARE_ANIMATED_PROPERTY_NEW(OwnerType, DOMAttribute, PropertyType, UpperProperty, LowerProperty) \
-DECLARE_ANIMATED_PROPERTY_NEW_SHARED(OwnerType, DOMAttribute, DOMAttribute.localName(), SVGAnimatedPropertyTearOff<PropertyType>, PropertyType, UpperProperty, LowerProperty)
-
-#define DECLARE_ANIMATED_PROPERTY_MULTIPLE_WRAPPERS_NEW(OwnerType, DOMAttribute, SVGDOMAttributeIdentifier, PropertyType, UpperProperty, LowerProperty) \
-DECLARE_ANIMATED_PROPERTY_NEW_SHARED(OwnerType, DOMAttribute, SVGDOMAttributeIdentifier, SVGAnimatedPropertyTearOff<PropertyType>, PropertyType, UpperProperty, LowerProperty)
-
-#define DECLARE_ANIMATED_STATIC_PROPERTY_MULTIPLE_WRAPPERS_NEW(OwnerType, DOMAttribute, SVGDOMAttributeIdentifier, PropertyType, UpperProperty, LowerProperty) \
-DECLARE_ANIMATED_PROPERTY_NEW_SHARED(OwnerType, DOMAttribute, SVGDOMAttributeIdentifier, SVGAnimatedStaticPropertyTearOff<PropertyType>, PropertyType, UpperProperty, LowerProperty)
-
-#define DECLARE_ANIMATED_STATIC_PROPERTY_NEW(OwnerType, DOMAttribute, PropertyType, UpperProperty, LowerProperty) \
-DECLARE_ANIMATED_PROPERTY_NEW_SHARED(OwnerType, DOMAttribute, DOMAttribute.localName(), SVGAnimatedStaticPropertyTearOff<PropertyType>, PropertyType, UpperProperty, LowerProperty)
-
-// FIXME: Remove all macros above, once these two below are deployed everywhere.
-
#define DEFINE_ANIMATED_PROPERTY(OwnerType, DOMAttribute, SVGDOMAttributeIdentifier, TearOffType, PropertyType, UpperProperty, LowerProperty) \
void OwnerType::synchronize##UpperProperty() \
{ \
diff --git a/WebCore/svg/properties/SVGAnimatedPropertySynchronizer.h b/WebCore/svg/properties/SVGAnimatedPropertySynchronizer.h
index b97073d..bb52442 100644
--- a/WebCore/svg/properties/SVGAnimatedPropertySynchronizer.h
+++ b/WebCore/svg/properties/SVGAnimatedPropertySynchronizer.h
@@ -21,6 +21,8 @@
#define SVGAnimatedPropertySynchronizer_h
#if ENABLE(SVG)
+#include "SVGElement.h"
+
namespace WebCore {
// Helper template used for synchronizing SVG <-> XML properties