Changeset 35248 in webkit


Ignore:
Timestamp:
Jul 19, 2008 8:46:48 AM (16 years ago)
Author:
Nikolas Zimmermann
Message:

Reviewed by Oliver & parts by Eric.

Fixes: https://bugs.webkit.org/show_bug.cgi?id=20051

Rewrite animated property concept without heavy macro usage, replace by a templatified solution.
Fewer virtual function calls, no more usage of the tear-off's within internal code (synchronization needed it before.)

Location:
trunk/WebCore
Files:
1 added
116 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r35244 r35248  
     12008-07-19  Nikolas Zimmermann  <zimmermann@kde.org>
     2
     3        Reviewed by Oliver & parts by Eric.
     4
     5        Fixes: https://bugs.webkit.org/show_bug.cgi?id=20051
     6
     7        Rewrite animated property concept without heavy macro usage, replace by a templatified solution.
     8        Fewer virtual function calls, no more usage of the tear-off's within internal code (synchronization needed it before.)
     9
     10        * dom/Element.cpp:
     11        (WebCore::Element::attributes):
     12        (WebCore::Element::getAttribute):
     13        (WebCore::Element::hasAttributes):
     14        * dom/Element.h:
     15        (WebCore::Element::updateAnimatedSVGAttribute): Take const String&, not StringImpl*.
     16        * svg/SVGAElement.cpp:
     17        (WebCore::SVGAElement::SVGAElement):
     18        * svg/SVGAElement.h:
     19        * svg/SVGAltGlyphElement.h:
     20        * svg/SVGAnimatedProperty.h: Added.
     21        * svg/SVGAnimatedTemplate.h:
     22        (WebCore::lookupOrCreateWrapper):
     23        * svg/SVGAnimationElement.h:
     24        * svg/SVGCircleElement.cpp:
     25        (WebCore::SVGCircleElement::SVGCircleElement):
     26        * svg/SVGCircleElement.h:
     27        * svg/SVGClipPathElement.cpp:
     28        (WebCore::SVGClipPathElement::SVGClipPathElement):
     29        * svg/SVGClipPathElement.h:
     30        * svg/SVGComponentTransferFunctionElement.cpp:
     31        (WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
     32        * svg/SVGComponentTransferFunctionElement.h:
     33        * svg/SVGCursorElement.cpp:
     34        (WebCore::SVGCursorElement::SVGCursorElement):
     35        * svg/SVGCursorElement.h:
     36        * svg/SVGDefsElement.h:
     37        (WebCore::SVGDefsElement::contextElement):
     38        * svg/SVGElement.cpp:
     39        (WebCore::SVGElement::updateAnimatedSVGAttribute):
     40        * svg/SVGElement.h:
     41        (WebCore::SVGElement::supplementalTransform):
     42        (WebCore::SVGElement::invokeSVGPropertySynchronizer):
     43        (WebCore::SVGElement::invokeAllSVGPropertySynchronizers):
     44        (WebCore::SVGElement::addSVGPropertySynchronizer):
     45        * svg/SVGEllipseElement.cpp:
     46        (WebCore::SVGEllipseElement::SVGEllipseElement):
     47        * svg/SVGEllipseElement.h:
     48        * svg/SVGExternalResourcesRequired.cpp:
     49        (WebCore::SVGExternalResourcesRequired::SVGExternalResourcesRequired):
     50        * svg/SVGExternalResourcesRequired.h:
     51        * svg/SVGFEBlendElement.cpp:
     52        (WebCore::SVGFEBlendElement::SVGFEBlendElement):
     53        * svg/SVGFEBlendElement.h:
     54        * svg/SVGFEColorMatrixElement.cpp:
     55        (WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
     56        * svg/SVGFEColorMatrixElement.h:
     57        * svg/SVGFEComponentTransferElement.cpp:
     58        (WebCore::SVGFEComponentTransferElement::SVGFEComponentTransferElement):
     59        * svg/SVGFEComponentTransferElement.h:
     60        * svg/SVGFECompositeElement.cpp:
     61        (WebCore::SVGFECompositeElement::SVGFECompositeElement):
     62        * svg/SVGFECompositeElement.h:
     63        * svg/SVGFEDiffuseLightingElement.cpp:
     64        (WebCore::SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement):
     65        * svg/SVGFEDiffuseLightingElement.h:
     66        * svg/SVGFEDisplacementMapElement.cpp:
     67        (WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement):
     68        * svg/SVGFEDisplacementMapElement.h:
     69        * svg/SVGFEFloodElement.h:
     70        * svg/SVGFEGaussianBlurElement.cpp:
     71        (WebCore::SVGFEGaussianBlurElement::SVGFEGaussianBlurElement):
     72        * svg/SVGFEGaussianBlurElement.h:
     73        * svg/SVGFEImageElement.cpp:
     74        (WebCore::SVGFEImageElement::SVGFEImageElement):
     75        * svg/SVGFEImageElement.h:
     76        * svg/SVGFELightElement.cpp:
     77        (WebCore::SVGFELightElement::SVGFELightElement):
     78        * svg/SVGFELightElement.h:
     79        (WebCore::SVGFELightElement::contextElement):
     80        * svg/SVGFEMergeElement.h:
     81        * svg/SVGFEMergeNodeElement.cpp:
     82        (WebCore::SVGFEMergeNodeElement::SVGFEMergeNodeElement):
     83        * svg/SVGFEMergeNodeElement.h:
     84        * svg/SVGFEOffsetElement.cpp:
     85        (WebCore::SVGFEOffsetElement::SVGFEOffsetElement):
     86        * svg/SVGFEOffsetElement.h:
     87        * svg/SVGFESpecularLightingElement.cpp:
     88        (WebCore::SVGFESpecularLightingElement::SVGFESpecularLightingElement):
     89        * svg/SVGFESpecularLightingElement.h:
     90        * svg/SVGFETileElement.cpp:
     91        (WebCore::SVGFETileElement::SVGFETileElement):
     92        * svg/SVGFETileElement.h:
     93        * svg/SVGFETurbulenceElement.cpp:
     94        (WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement):
     95        * svg/SVGFETurbulenceElement.h:
     96        * svg/SVGFilterElement.cpp:
     97        (WebCore::SVGFilterElement::SVGFilterElement):
     98        * svg/SVGFilterElement.h:
     99        * svg/SVGFilterPrimitiveStandardAttributes.cpp:
     100        (WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
     101        * svg/SVGFilterPrimitiveStandardAttributes.h:
     102        * svg/SVGFitToViewBox.cpp:
     103        (WebCore::SVGFitToViewBox::SVGFitToViewBox):
     104        * svg/SVGFitToViewBox.h:
     105        * svg/SVGFontElement.h:
     106        (WebCore::SVGFontElement::rendererIsNeeded):
     107        (WebCore::SVGFontElement::contextElement):
     108        * svg/SVGForeignObjectElement.cpp:
     109        (WebCore::SVGForeignObjectElement::SVGForeignObjectElement):
     110        * svg/SVGForeignObjectElement.h:
     111        * svg/SVGGElement.h:
     112        * svg/SVGGradientElement.cpp:
     113        (WebCore::SVGGradientElement::SVGGradientElement):
     114        * svg/SVGGradientElement.h:
     115        (WebCore::SVGGradientElement::contextElement):
     116        * svg/SVGImageElement.cpp:
     117        (WebCore::SVGImageElement::SVGImageElement):
     118        * svg/SVGImageElement.h:
     119        * svg/SVGLineElement.cpp:
     120        (WebCore::SVGLineElement::SVGLineElement):
     121        * svg/SVGLineElement.h:
     122        * svg/SVGLinearGradientElement.cpp:
     123        (WebCore::SVGLinearGradientElement::SVGLinearGradientElement):
     124        * svg/SVGLinearGradientElement.h:
     125        * svg/SVGMarkerElement.cpp:
     126        (WebCore::SVGMarkerElement::SVGMarkerElement):
     127        (WebCore::SVGMarkerElement::canvasResource):
     128        * svg/SVGMarkerElement.h:
     129        * svg/SVGMaskElement.cpp:
     130        (WebCore::SVGMaskElement::SVGMaskElement):
     131        * svg/SVGMaskElement.h:
     132        * svg/SVGPathElement.cpp:
     133        (WebCore::SVGPathElement::SVGPathElement):
     134        (WebCore::SVGPathElement::parseMappedAttribute):
     135        * svg/SVGPathElement.h:
     136        * svg/SVGPatternElement.cpp:
     137        (WebCore::SVGPatternElement::SVGPatternElement):
     138        * svg/SVGPatternElement.h:
     139        (WebCore::SVGPatternElement::contextElement):
     140        * svg/SVGPolyElement.h:
     141        * svg/SVGPreserveAspectRatio.cpp:
     142        * svg/SVGRadialGradientElement.cpp:
     143        (WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
     144        * svg/SVGRadialGradientElement.h:
     145        * svg/SVGRectElement.cpp:
     146        (WebCore::SVGRectElement::SVGRectElement):
     147        * svg/SVGRectElement.h:
     148        * svg/SVGSVGElement.cpp:
     149        (WebCore::SVGSVGElement::SVGSVGElement):
     150        * svg/SVGSVGElement.h:
     151        * svg/SVGScriptElement.cpp:
     152        * svg/SVGScriptElement.h:
     153        * svg/SVGStopElement.cpp:
     154        (WebCore::SVGStopElement::SVGStopElement):
     155        * svg/SVGStopElement.h:
     156        * svg/SVGStyledElement.cpp:
     157        (WebCore::SVGStyledElement::SVGStyledElement):
     158        * svg/SVGStyledElement.h:
     159        * svg/SVGStyledTransformableElement.cpp:
     160        (WebCore::SVGStyledTransformableElement::SVGStyledTransformableElement):
     161        * svg/SVGStyledTransformableElement.h:
     162        * svg/SVGSwitchElement.h:
     163        * svg/SVGSymbolElement.h:
     164        (WebCore::SVGSymbolElement::contextElement):
     165        * svg/SVGTRefElement.h:
     166        * svg/SVGTSpanElement.h:
     167        * svg/SVGTextContentElement.cpp:
     168        (WebCore::SVGTextContentElement::SVGTextContentElement):
     169        * svg/SVGTextContentElement.h:
     170        (WebCore::SVGTextContentElement::contextElement):
     171        * svg/SVGTextElement.cpp:
     172        (WebCore::SVGTextElement::SVGTextElement):
     173        * svg/SVGTextElement.h:
     174        * svg/SVGTextPathElement.cpp:
     175        (WebCore::SVGTextPathElement::SVGTextPathElement):
     176        * svg/SVGTextPathElement.h:
     177        * svg/SVGTextPositioningElement.cpp:
     178        (WebCore::SVGTextPositioningElement::SVGTextPositioningElement):
     179        * svg/SVGTextPositioningElement.h:
     180        * svg/SVGTransformable.h:
     181        * svg/SVGURIReference.cpp:
     182        (WebCore::SVGURIReference::SVGURIReference):
     183        * svg/SVGURIReference.h:
     184        * svg/SVGUseElement.cpp:
     185        (WebCore::SVGUseElement::SVGUseElement):
     186        * svg/SVGUseElement.h:
     187        * svg/SVGViewElement.h:
     188        * svg/SVGViewSpec.h:
     189
    11902008-07-18  Maxime Britto  <britto@apple.com>
    2191
  • trunk/WebCore/dom/Element.cpp

    r35035 r35248  
    201201#if ENABLE(SVG)
    202202    if (!m_areSVGAttributesValid)
    203         updateAnimatedSVGAttribute(0);
     203        updateAnimatedSVGAttribute(String());
    204204#endif
    205205
     
    231231#if ENABLE(SVG)
    232232    if (!m_areSVGAttributesValid)
    233         updateAnimatedSVGAttribute(name.localName().impl());
     233        updateAnimatedSVGAttribute(name.localName());
    234234#endif
    235235
     
    486486#if ENABLE(SVG)
    487487    if (!m_areSVGAttributesValid)
    488         updateAnimatedSVGAttribute(name.impl());
     488        updateAnimatedSVGAttribute(name);
    489489#endif
    490490
     
    601601#if ENABLE(SVG)
    602602    if (!m_areSVGAttributesValid)
    603         updateAnimatedSVGAttribute(0);
     603        updateAnimatedSVGAttribute(String());
    604604#endif
    605605
  • trunk/WebCore/dom/Element.h

    r35035 r35248  
    208208
    209209#if ENABLE(SVG)
    210     virtual void updateAnimatedSVGAttribute(StringImpl* name) const {}
     210    virtual void updateAnimatedSVGAttribute(const String&) const {}
    211211#endif
    212212
  • trunk/WebCore/svg/SVGAElement.cpp

    r35035 r35248  
    5454    , SVGLangSpace()
    5555    , SVGExternalResourcesRequired()
     56    , m_target(this, SVGNames::targetAttr)
    5657{
    5758}
     
    6566    return getAttribute(XLinkNames::titleAttr);
    6667}
    67 
    68 ANIMATED_PROPERTY_DEFINITIONS(SVGAElement, String, Target, target, SVGNames::targetAttr)
    6968
    7069void SVGAElement::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGAElement.h

    r35035 r35248  
    6565
    6666    private:
    67         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
    68         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    69 
    70         ANIMATED_PROPERTY_DECLARATIONS(SVGAElement, String, Target, target)
     67        ANIMATED_PROPERTY_DECLARATIONS(SVGAElement, SVGNames::aTagString, SVGNames::targetAttrString, String, Target, target)
    7168    };
    7269
  • trunk/WebCore/svg/SVGAltGlyphElement.h

    r34925 r35248  
    11/*
    2     Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
     2    Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
    33                  2004, 2005, 2006 Rob Buis <buis@kde.org>
    44    Copyright (C) 2008 Apple Computer, Inc.
     
    2222#ifndef SVGAltGlyphElement_h
    2323#define SVGAltGlyphElement_h
     24
    2425#if ENABLE(SVG_FONTS)
    25 
    2626#include "AtomicString.h"
    2727#include "SVGTextPositioningElement.h"
    2828#include "SVGURIReference.h"
    2929
    30 namespace WebCore
    31 {
     30namespace WebCore {
     31
    3232    class SVGGlyphElement;
    3333
    34     class SVGAltGlyphElement : public SVGTextPositioningElement, public SVGURIReference
    35     {
     34    class SVGAltGlyphElement : public SVGTextPositioningElement,
     35                               public SVGURIReference {
    3636    public:
    3737        SVGAltGlyphElement(const QualifiedName&, Document*);
     
    5656#endif // ENABLE(SVG)
    5757#endif
    58 
    59 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGAnimatedTemplate.h

    r35035 r35248  
    146146    };
    147147
    148     typedef void (*AnimatedPropertySynchronizer)(const SVGElement*);
    149 
    150     template <class Type, class SVGElementSubClass>
    151     PassRefPtr<Type> lookupOrCreateWrapper(const SVGElementSubClass* element, const QualifiedName& domAttrName,
    152                                            const AtomicString& attrIdentifier, AnimatedPropertySynchronizer synchronizer)
     148    template<typename OwnerTypeArg, typename AnimatedTypeArg, const char* TagName, const char* PropertyName>
     149    class SVGAnimatedProperty;
     150
     151    template<typename OwnerType, typename AnimatedType, const char* TagName, const char* PropertyName, typename Type, typename OwnerElement>
     152    PassRefPtr<Type> lookupOrCreateWrapper(const SVGAnimatedProperty<OwnerType, AnimatedType, TagName, PropertyName>& creator,
     153                                           const OwnerElement* element, const QualifiedName& attrName, const AtomicString& attrIdentifier)
    153154    {
    154155        SVGAnimatedTypeWrapperKey key(element, attrIdentifier);
     
    156157
    157158        if (!wrapper) {
    158             wrapper = Type::create(element, domAttrName);
    159             element->addSVGPropertySynchronizer(domAttrName, synchronizer);
     159            wrapper = Type::create(creator, element, attrName);
     160            element->addSVGPropertySynchronizer(attrName, creator);
    160161            Type::wrapperCache()->set(key, wrapper.get());
    161162        }
     
    167168    template<typename Type>
    168169    struct SVGAnimatedTypeValue : Noncopyable {
     170        typedef RefPtr<Type> StorableType;
     171        typedef Type* DecoratedType;
     172
    169173        static Type null() { return 0; }
    170174        static AtomicString toString(Type type) { return type ? AtomicString(type->valueAsString()) : nullAtom; }
     
    173177    template<>
    174178    struct SVGAnimatedTypeValue<bool> : Noncopyable {
     179        typedef bool StorableType;
     180        typedef bool DecoratedType;
     181
    175182        static bool null() { return false; }
    176183        static AtomicString toString(bool type) { return type ? "true" : "false"; }
     
    179186    template<>
    180187    struct SVGAnimatedTypeValue<int> : Noncopyable {
     188        typedef int StorableType;
     189        typedef int DecoratedType;
     190
    181191        static int null() { return 0; }
    182192        static AtomicString toString(int type) { return String::number(type); }
     
    185195    template<>
    186196    struct SVGAnimatedTypeValue<long> : Noncopyable {
     197        typedef long StorableType;
     198        typedef long DecoratedType;
     199
    187200        static long null() { return 0l; }
    188201        static AtomicString toString(long type) { return String::number(type); }
     
    191204    template<>
    192205    struct SVGAnimatedTypeValue<SVGLength> : Noncopyable {
     206        typedef SVGLength StorableType;
     207        typedef SVGLength DecoratedType;
     208
    193209        static SVGLength null() { return SVGLength(); }
    194210        static AtomicString toString(const SVGLength& type) { return type.valueAsString(); }
     
    197213    template<>
    198214    struct SVGAnimatedTypeValue<float> : Noncopyable {
     215        typedef float StorableType;
     216        typedef float DecoratedType;
     217
    199218        static float null() { return 0.0f; }
    200219        static AtomicString toString(float type) { return String::number(type); }
     
    203222    template<>
    204223    struct SVGAnimatedTypeValue<FloatRect> : Noncopyable {
     224        typedef FloatRect StorableType;
     225        typedef FloatRect DecoratedType;
     226
    205227        static FloatRect null() { return FloatRect(); }
    206228        static AtomicString toString(const FloatRect& type) { return String::format("%f %f %f %f", type.x(), type.y(), type.width(), type.height()); }
     
    209231    template<>
    210232    struct SVGAnimatedTypeValue<String> : Noncopyable {
     233        typedef String StorableType;
     234        typedef String DecoratedType;
     235
    211236        static String null() { return String(); }
    212237        static AtomicString toString(const String& type) { return type; }
  • trunk/WebCore/svg/SVGAnimationElement.h

    r35204 r35248  
    9696        virtual void endedActiveInterval();
    9797       
    98         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    9998    private:
    10099        virtual bool calculateFromAndToValues(const String& fromString, const String& toString) = 0;
  • trunk/WebCore/svg/SVGCircleElement.cpp

    r35204 r35248  
    3838    , SVGLangSpace()
    3939    , SVGExternalResourcesRequired()
    40     , m_cx(LengthModeWidth)
    41     , m_cy(LengthModeHeight)
    42     , m_r(LengthModeOther)
     40    , m_cx(this, SVGNames::cxAttr, LengthModeWidth)
     41    , m_cy(this, SVGNames::cyAttr, LengthModeHeight)
     42    , m_r(this, SVGNames::rAttr, LengthModeOther)
    4343{
    4444}
     
    4747{
    4848}
    49 
    50 ANIMATED_PROPERTY_DEFINITIONS(SVGCircleElement, SVGLength, Cx, cx, SVGNames::cxAttr)
    51 ANIMATED_PROPERTY_DEFINITIONS(SVGCircleElement, SVGLength, Cy, cy, SVGNames::cyAttr)
    52 ANIMATED_PROPERTY_DEFINITIONS(SVGCircleElement, SVGLength, R, r, SVGNames::rAttr)
    5349
    5450void SVGCircleElement::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGCircleElement.h

    r35035 r35248  
    5252
    5353    private:
    54         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    55 
    56         ANIMATED_PROPERTY_DECLARATIONS(SVGCircleElement, SVGLength, Cx, cx)
    57         ANIMATED_PROPERTY_DECLARATIONS(SVGCircleElement, SVGLength, Cy, cy)
    58         ANIMATED_PROPERTY_DECLARATIONS(SVGCircleElement, SVGLength, R, r)
     54        ANIMATED_PROPERTY_DECLARATIONS(SVGCircleElement, SVGNames::circleTagString, SVGNames::cxAttrString, SVGLength, Cx, cx)
     55        ANIMATED_PROPERTY_DECLARATIONS(SVGCircleElement, SVGNames::circleTagString, SVGNames::cyAttrString, SVGLength, Cy, cy)
     56        ANIMATED_PROPERTY_DECLARATIONS(SVGCircleElement, SVGNames::circleTagString, SVGNames::rAttrString, SVGLength, R, r)
    5957    };
    6058
  • trunk/WebCore/svg/SVGClipPathElement.cpp

    r35035 r35248  
    3939    , SVGLangSpace()
    4040    , SVGExternalResourcesRequired()
    41     , m_clipPathUnits(SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE)
     41    , m_clipPathUnits(this, SVGNames::clipPathUnitsAttr, SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE)
    4242{
    4343}
     
    4646{
    4747}
    48 
    49 ANIMATED_PROPERTY_DEFINITIONS(SVGClipPathElement, int, ClipPathUnits, clipPathUnits, SVGNames::clipPathUnitsAttr)
    5048
    5149void SVGClipPathElement::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGClipPathElement.h

    r35035 r35248  
    2525
    2626#if ENABLE(SVG)
    27 #include "SVGResourceClipper.h"
    2827#include "SVGExternalResourcesRequired.h"
    2928#include "SVGLangSpace.h"
     29#include "SVGResourceClipper.h"
    3030#include "SVGStyledTransformableElement.h"
    3131#include "SVGTests.h"
     
    5555
    5656    private:
    57         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    58 
    59         ANIMATED_PROPERTY_DECLARATIONS(SVGClipPathElement, int, ClipPathUnits, clipPathUnits)
     57        ANIMATED_PROPERTY_DECLARATIONS(SVGClipPathElement, SVGNames::clipPathTagString, SVGNames::clipPathUnitsAttrString, int, ClipPathUnits, clipPathUnits)
    6058
    6159        RefPtr<SVGResourceClipper> m_clipper;
  • trunk/WebCore/svg/SVGComponentTransferFunctionElement.cpp

    r35035 r35248  
    3232namespace WebCore {
    3333
     34char SVGComponentTransferFunctionElementIdentifier[] = "SVGComponentTransferFunctionElement";
     35
    3436SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement(const QualifiedName& tagName, Document* doc)
    3537    : SVGElement(tagName, doc)
    36     , m_type(FECOMPONENTTRANSFER_TYPE_UNKNOWN)
    37     , m_tableValues(SVGNumberList::create(SVGNames::tableValuesAttr))
    38     , m_slope(1.0f)
    39     , m_intercept(0.0f)
    40     , m_amplitude(1.0f)
    41     , m_exponent(1.0f)
    42     , m_offset(0.0f)
     38    , m_type(this, SVGNames::typeAttr, FECOMPONENTTRANSFER_TYPE_UNKNOWN)
     39    , m_tableValues(this, SVGNames::tableValuesAttr, SVGNumberList::create(SVGNames::tableValuesAttr))
     40    , m_slope(this, SVGNames::slopeAttr, 1.0f)
     41    , m_intercept(this, SVGNames::interceptAttr)
     42    , m_amplitude(this, SVGNames::amplitudeAttr, 1.0f)
     43    , m_exponent(this, SVGNames::exponentAttr, 1.0f)
     44    , m_offset(this, SVGNames::offsetAttr)
    4345{
    4446}
     
    4749{
    4850}
    49 
    50 ANIMATED_PROPERTY_DEFINITIONS(SVGComponentTransferFunctionElement, int, Type, type, SVGNames::typeAttr)
    51 ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGComponentTransferFunctionElement, SVGNumberList, TableValues, tableValues, SVGNames::tableValuesAttr)
    52 ANIMATED_PROPERTY_DEFINITIONS(SVGComponentTransferFunctionElement, float, Slope, slope, SVGNames::slopeAttr)
    53 ANIMATED_PROPERTY_DEFINITIONS(SVGComponentTransferFunctionElement, float, Intercept, intercept, SVGNames::interceptAttr)
    54 ANIMATED_PROPERTY_DEFINITIONS(SVGComponentTransferFunctionElement, float, Amplitude, amplitude, SVGNames::amplitudeAttr)
    55 ANIMATED_PROPERTY_DEFINITIONS(SVGComponentTransferFunctionElement, float, Exponent, exponent, SVGNames::exponentAttr)
    56 ANIMATED_PROPERTY_DEFINITIONS(SVGComponentTransferFunctionElement, float, Offset, offset, SVGNames::offsetAttr)
    5751
    5852void SVGComponentTransferFunctionElement::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGComponentTransferFunctionElement.h

    r35035 r35248  
    11/*
    2     Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
     2    Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
    33                  2004, 2005, 2006 Rob Buis <buis@kde.org>
    44
     
    2323#ifndef SVGComponentTransferFunctionElement_h
    2424#define SVGComponentTransferFunctionElement_h
     25
    2526#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    26 
    2727#include "SVGElement.h"
     28#include "SVGNumberList.h"
    2829#include "FEComponentTransfer.h"
    2930
    30 namespace WebCore
    31 {
    32     class SVGNumberList;
     31namespace WebCore {
    3332
    34     class SVGComponentTransferFunctionElement : public SVGElement
    35     {
     33    extern char SVGComponentTransferFunctionElementIdentifier[];
     34
     35    class SVGComponentTransferFunctionElement : public SVGElement {
    3636    public:
    3737        SVGComponentTransferFunctionElement(const QualifiedName&, Document*);
    3838        virtual ~SVGComponentTransferFunctionElement();
    3939
    40         // 'SVGComponentTransferFunctionElement' functions
    41         // Derived from: 'Element'
    4240        virtual void parseMappedAttribute(MappedAttribute* attr);
    4341       
     
    4543
    4644    private:
    47         ANIMATED_PROPERTY_START_DECLARATIONS
    48         ANIMATED_PROPERTY_DECLARATIONS(SVGComponentTransferFunctionElement, int, Type, type)
    49         ANIMATED_PROPERTY_DECLARATIONS_REFCOUNTED(SVGComponentTransferFunctionElement, SVGNumberList, TableValues, tableValues)
    50         ANIMATED_PROPERTY_DECLARATIONS(SVGComponentTransferFunctionElement, float, Slope, slope)
    51         ANIMATED_PROPERTY_DECLARATIONS(SVGComponentTransferFunctionElement, float, Intercept, intercept)
    52         ANIMATED_PROPERTY_DECLARATIONS(SVGComponentTransferFunctionElement, float, Amplitude, amplitude)
    53         ANIMATED_PROPERTY_DECLARATIONS(SVGComponentTransferFunctionElement, float, Exponent, exponent)
    54         ANIMATED_PROPERTY_DECLARATIONS(SVGComponentTransferFunctionElement, float, Offset, offset)
     45        ANIMATED_PROPERTY_DECLARATIONS(SVGComponentTransferFunctionElement, SVGComponentTransferFunctionElementIdentifier, SVGNames::typeAttrString, int, Type, type)
     46        ANIMATED_PROPERTY_DECLARATIONS(SVGComponentTransferFunctionElement, SVGComponentTransferFunctionElementIdentifier, SVGNames::tableValuesAttrString, SVGNumberList, TableValues, tableValues)
     47        ANIMATED_PROPERTY_DECLARATIONS(SVGComponentTransferFunctionElement, SVGComponentTransferFunctionElementIdentifier, SVGNames::slopeAttrString, float, Slope, slope)
     48        ANIMATED_PROPERTY_DECLARATIONS(SVGComponentTransferFunctionElement, SVGComponentTransferFunctionElementIdentifier, SVGNames::interceptAttrString, float, Intercept, intercept)
     49        ANIMATED_PROPERTY_DECLARATIONS(SVGComponentTransferFunctionElement, SVGComponentTransferFunctionElementIdentifier, SVGNames::amplitudeAttrString, float, Amplitude, amplitude)
     50        ANIMATED_PROPERTY_DECLARATIONS(SVGComponentTransferFunctionElement, SVGComponentTransferFunctionElementIdentifier, SVGNames::exponentAttrString, float, Exponent, exponent)
     51        ANIMATED_PROPERTY_DECLARATIONS(SVGComponentTransferFunctionElement, SVGComponentTransferFunctionElementIdentifier, SVGNames::offsetAttrString, float, Offset, offset)
    5552    };
    5653
     
    5956#endif // ENABLE(SVG) && ENABLE(SVG_FILTERS)
    6057#endif
    61 
    62 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGCursorElement.cpp

    r35204 r35248  
    3737    , SVGExternalResourcesRequired()
    3838    , SVGURIReference()
    39     , m_x(LengthModeWidth)
    40     , m_y(LengthModeHeight)
     39    , m_x(this, SVGNames::xAttr, LengthModeWidth)
     40    , m_y(this, SVGNames::yAttr, LengthModeHeight)
    4141{
    4242}
     
    4545{
    4646}
    47 
    48 ANIMATED_PROPERTY_DEFINITIONS(SVGCursorElement, SVGLength, X, x, SVGNames::xAttr)
    49 ANIMATED_PROPERTY_DEFINITIONS(SVGCursorElement, SVGLength, Y, y, SVGNames::yAttr)
    5047
    5148void SVGCursorElement::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGCursorElement.h

    r35035 r35248  
    5555
    5656    private:
    57         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    58         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
    59 
    60         ANIMATED_PROPERTY_DECLARATIONS(SVGCursorElement, SVGLength, X, x)
    61         ANIMATED_PROPERTY_DECLARATIONS(SVGCursorElement, SVGLength, Y, y)
     57        ANIMATED_PROPERTY_DECLARATIONS(SVGCursorElement, SVGNames::cursorTagString, SVGNames::xAttrString, SVGLength, X, x)
     58        ANIMATED_PROPERTY_DECLARATIONS(SVGCursorElement, SVGNames::cursorTagString, SVGNames::yAttrString, SVGLength, Y, y)
    6259
    6360        HashSet<SVGElement*> m_clients;
  • trunk/WebCore/svg/SVGDefsElement.h

    r34925 r35248  
    4343
    4444        virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
    45    
     45
    4646    protected:
    4747        virtual const SVGElement* contextElement() const { return this; }
    48 
    49     private:
    50         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    5148    };
    5249
  • trunk/WebCore/svg/SVGElement.cpp

    r35035 r35248  
    3737#include "SVGElementInstance.h"
    3838#include "SVGNames.h"
     39#include "SVGResource.h"
    3940#include "SVGSVGElement.h"
    4041#include "SVGURIReference.h"
     
    270271}
    271272
    272 void SVGElement::updateAnimatedSVGAttribute(StringImpl* name) const
     273void SVGElement::updateAnimatedSVGAttribute(const String& name) const
    273274{
    274275    ASSERT(!m_areSVGAttributesValid);
     
    279280    m_synchronizingSVGAttributes = true;
    280281
    281     if (name)
    282         invokeSVGPropertySynchronizer(name);
    283     else {
     282    if (name.isEmpty()) {
    284283        invokeAllSVGPropertySynchronizers();
    285284        setSynchronizedSVGAttributes(true);
    286     }
     285    } else
     286        invokeSVGPropertySynchronizer(name);
    287287
    288288    m_synchronizingSVGAttributes = false;
  • trunk/WebCore/svg/SVGElement.h

    r35035 r35248  
    2626#if ENABLE(SVG)
    2727#include "Document.h"
    28 #include "FloatRect.h"
    2928#include "StyledElement.h"
    30 #include "SVGAnimatedTemplate.h"
    31 #include "SVGDocumentExtensions.h"
     29#include "SVGAnimatedProperty.h"
    3230#include "SVGNames.h"
    33 #include "SynchronizableTypeWrapper.h"
    34 
    35 #define ANIMATED_PROPERTY_EMPTY_DECLARATIONS_INTERNAL(DecoratedType, NullType, UpperProperty, LowerProperty) \
    36 public: \
    37     virtual DecoratedType LowerProperty() const { ASSERT_NOT_REACHED(); return NullType; } \
    38     virtual void set##UpperProperty(DecoratedType) { ASSERT_NOT_REACHED(); } \
    39     virtual DecoratedType LowerProperty##BaseValue() const { ASSERT_NOT_REACHED(); return NullType; } \
    40     virtual void set##UpperProperty##BaseValue(DecoratedType) { ASSERT_NOT_REACHED(); } \
    41     virtual void synchronize##UpperProperty() const { ASSERT_NOT_REACHED(); } \
    42     virtual AnimatedPropertySynchronizer synchronizerFor##UpperProperty() const { ASSERT_NOT_REACHED(); return AnimatedPropertySynchronizer(); } \
    43     virtual void start##UpperProperty() const { ASSERT_NOT_REACHED(); } \
    44     virtual void stop##UpperProperty() { ASSERT_NOT_REACHED(); }
    45 
    46 #define ANIMATED_PROPERTY_FORWARD_DECLARATIONS_INTERNAL(ForwardClass, DecoratedType, UpperProperty, LowerProperty) \
    47 public: \
    48     virtual DecoratedType LowerProperty() const { return ForwardClass::LowerProperty(); } \
    49     virtual void set##UpperProperty(DecoratedType newValue) { ForwardClass::set##UpperProperty(newValue); } \
    50     virtual DecoratedType LowerProperty##BaseValue() const { return ForwardClass::LowerProperty##BaseValue(); } \
    51     virtual void set##UpperProperty##BaseValue(DecoratedType newValue) { ForwardClass::set##UpperProperty##BaseValue(newValue); } \
    52     virtual void synchronize##UpperProperty() const { ForwardClass::synchronize##UpperProperty(); } \
    53     virtual AnimatedPropertySynchronizer synchronizerFor##UpperProperty() const { return ForwardClass::synchronizerFor##UpperProperty(); } \
    54     virtual void start##UpperProperty() const { ForwardClass::start##UpperProperty(); } \
    55     virtual void stop##UpperProperty() { ForwardClass::stop##UpperProperty(); }
    56 
    57 #define ANIMATED_PROPERTY_DECLARATIONS_INTERNAL(ClassType, DecoratedType, StorageType, UpperProperty, LowerProperty) \
    58 class SVGAnimatedTemplate##UpperProperty : public SVGAnimatedTemplate<DecoratedType> { \
    59 public: \
    60     static PassRefPtr<SVGAnimatedTemplate##UpperProperty> create(const ClassType* element, const QualifiedName& attributeName) \
    61     { \
    62         return adoptRef(new SVGAnimatedTemplate##UpperProperty(element, attributeName)); \
    63     } \
    64     virtual DecoratedType baseVal() const; \
    65     virtual void setBaseVal(DecoratedType); \
    66     virtual DecoratedType animVal() const; \
    67     virtual void setAnimVal(DecoratedType); \
    68     \
    69 private: \
    70     SVGAnimatedTemplate##UpperProperty(const ClassType*, const QualifiedName&); \
    71     RefPtr<ClassType> m_element; \
    72 }; \
    73 public: \
    74     DecoratedType LowerProperty() const; \
    75     void set##UpperProperty(DecoratedType); \
    76     DecoratedType LowerProperty##BaseValue() const; \
    77     void set##UpperProperty##BaseValue(DecoratedType); \
    78     PassRefPtr<SVGAnimatedTemplate##UpperProperty> LowerProperty##Animated() const; \
    79     void synchronize##UpperProperty() const; \
    80     AnimatedPropertySynchronizer synchronizerFor##UpperProperty() const; \
    81     void start##UpperProperty() const; \
    82     void stop##UpperProperty(); \
    83 \
    84 private: \
    85     mutable SynchronizableTypeWrapper<StorageType> m_##LowerProperty;
    86 
    87 #define ANIMATED_PROPERTY_START_DECLARATIONS \
    88 public: \
    89     virtual void invokeSVGPropertySynchronizer(StringImpl* stringImpl) const \
    90     { \
    91         if (m_svgPropertyUpdateMap.contains(stringImpl)) { \
    92             AnimatedPropertySynchronizer updateMethod = m_svgPropertyUpdateMap.get(stringImpl); \
    93             (*updateMethod)(this); \
    94         } \
    95     } \
    96 \
    97     virtual void invokeAllSVGPropertySynchronizers() const \
    98     { \
    99         HashMap<StringImpl*, AnimatedPropertySynchronizer>::const_iterator it = m_svgPropertyUpdateMap.begin(); \
    100         const HashMap<StringImpl*, AnimatedPropertySynchronizer>::const_iterator end = m_svgPropertyUpdateMap.end(); \
    101         for (; it != end; ++it) { \
    102             AnimatedPropertySynchronizer updateMethod = it->second; \
    103             (*updateMethod)(this); \
    104         } \
    105     } \
    106 \
    107     virtual void addSVGPropertySynchronizer(const QualifiedName& attrName, AnimatedPropertySynchronizer method) const \
    108     { \
    109         m_svgPropertyUpdateMap.set(attrName.localName().impl(), method); \
    110     } \
    111 \
    112 private: \
    113     mutable HashMap<StringImpl*, AnimatedPropertySynchronizer> m_svgPropertyUpdateMap;
    114 
    115 #define ANIMATED_PROPERTY_DEFINITIONS_INTERNAL(ClassName, ClassType, DecoratedType, UpperProperty, LowerProperty, AttrName, AttrIdentifier, ContextElement) \
    116 void synchronize##UpperProperty##ClassName##CallBack(const SVGElement* element) \
    117 { \
    118     static_cast<const ClassType*>(element)->synchronize##UpperProperty(); \
    119 } \
    120 ClassName::SVGAnimatedTemplate##UpperProperty::SVGAnimatedTemplate##UpperProperty(const ClassType* element, const QualifiedName& attributeName) \
    121 : SVGAnimatedTemplate<DecoratedType>(attributeName), m_element(const_cast<ClassType*>(element)) { } \
    122 \
    123 DecoratedType ClassName::SVGAnimatedTemplate##UpperProperty::baseVal() const \
    124 { \
    125     return m_element->LowerProperty##BaseValue(); \
    126 } \
    127 void ClassName::SVGAnimatedTemplate##UpperProperty::setBaseVal(DecoratedType newBaseVal) \
    128 { \
    129     m_element->set##UpperProperty##BaseValue(newBaseVal); \
    130 } \
    131 DecoratedType ClassName::SVGAnimatedTemplate##UpperProperty::animVal() const \
    132 { \
    133     return m_element->LowerProperty(); \
    134 } \
    135 void ClassName::SVGAnimatedTemplate##UpperProperty::setAnimVal(DecoratedType newAnimVal) \
    136 { \
    137     m_element->set##UpperProperty(newAnimVal); \
    138 } \
    139 DecoratedType ClassName::LowerProperty() const \
    140 { \
    141     return m_##LowerProperty; \
    142 } \
    143 void ClassName::set##UpperProperty(DecoratedType newValue) \
    144 { \
    145     m_##LowerProperty = newValue; \
    146     \
    147     const SVGElement* context = ContextElement; \
    148     ASSERT(context); \
    149     context->setSynchronizedSVGAttributes(false); \
    150 } \
    151 DecoratedType ClassName::LowerProperty##BaseValue() const \
    152 { \
    153     const SVGElement* context = ContextElement; \
    154     ASSERT(context); \
    155     SVGDocumentExtensions* extensions = (context->document() ? context->document()->accessSVGExtensions() : 0); \
    156     if (extensions && extensions->hasBaseValue<DecoratedType>(context, AttrIdentifier)) \
    157          return extensions->baseValue<DecoratedType>(context, AttrIdentifier); \
    158     return LowerProperty(); \
    159 } \
    160 \
    161 void ClassName::set##UpperProperty##BaseValue(DecoratedType newValue) \
    162 { \
    163     const SVGElement* context = ContextElement; \
    164     ASSERT(context); \
    165     SVGDocumentExtensions* extensions = (context->document() ? context->document()->accessSVGExtensions() : 0); \
    166     if (extensions && extensions->hasBaseValue<DecoratedType>(context, AttrIdentifier)) { \
    167         extensions->setBaseValue<DecoratedType>(context, AttrIdentifier, newValue); \
    168         return; \
    169     } \
    170     /* Only update stored property, if not animating */ \
    171     set##UpperProperty(newValue); \
    172 } \
    173 \
    174 void ClassName::synchronize##UpperProperty() const \
    175 { \
    176     if (!m_##LowerProperty.needsSynchronization()) \
    177         return; \
    178     const SVGElement* context = ContextElement; \
    179     ASSERT(context); \
    180     RefPtr<ClassName::SVGAnimatedTemplate##UpperProperty> animatedClass(LowerProperty##Animated()); \
    181     ASSERT(animatedClass); \
    182     AtomicString value(SVGAnimatedTypeValue<DecoratedType>::toString(animatedClass->baseVal())); \
    183     NamedAttrMap* namedAttrMap = context->attributes(false); \
    184     Attribute* old = namedAttrMap->getAttributeItem(AttrName); \
    185     if (old && value.isNull()) \
    186         namedAttrMap->removeAttribute(old->name()); \
    187     else if (!old && !value.isNull()) \
    188         namedAttrMap->addAttribute(const_cast<SVGElement*>(context)->createAttribute(QualifiedName(nullAtom, AttrIdentifier, nullAtom), value)); \
    189     else if (old && !value.isNull()) \
    190         old->setValue(value); \
    191     m_##LowerProperty.setSynchronized(); \
    192 } \
    193 \
    194 void ClassName::start##UpperProperty() const \
    195 { \
    196     const SVGElement* context = ContextElement; \
    197     ASSERT(context); \
    198     SVGDocumentExtensions* extensions = (context->document() ? context->document()->accessSVGExtensions() : 0); \
    199     if (extensions) { \
    200         ASSERT(!extensions->hasBaseValue<DecoratedType>(context, AttrIdentifier)); \
    201         extensions->setBaseValue<DecoratedType>(context, AttrIdentifier, LowerProperty()); \
    202     } \
    203 } \
    204 \
    205 void ClassName::stop##UpperProperty() \
    206 { \
    207     const SVGElement* context = ContextElement; \
    208     ASSERT(context); \
    209     SVGDocumentExtensions* extensions = (context->document() ? context->document()->accessSVGExtensions() : 0); \
    210     if (extensions) { \
    211         ASSERT(extensions->hasBaseValue<DecoratedType>(context, AttrIdentifier)); \
    212         set##UpperProperty(extensions->baseValue<DecoratedType>(context, AttrIdentifier)); \
    213         extensions->removeBaseValue<DecoratedType>(context, AttrIdentifier); \
    214     } \
    215 } \
    216 \
    217 AnimatedPropertySynchronizer ClassName::synchronizerFor##UpperProperty() const \
    218 { \
    219     return &synchronize##UpperProperty##ClassName##CallBack; \
    220 } \
    221 PassRefPtr<ClassName::SVGAnimatedTemplate##UpperProperty> ClassName::LowerProperty##Animated() const \
    222 { \
    223     const ClassType* context = ContextElement; \
    224     ASSERT(context); \
    225     return lookupOrCreateWrapper<ClassName::SVGAnimatedTemplate##UpperProperty, ClassType>(context, AttrName, AttrIdentifier, synchronizerFor##UpperProperty()); \
    226 }
    227 
    228 // Forward declarations, used in classes that inherit from SVGElement, and another base class ie. SVGURIReference - which declared it's properties using the WITH_CONTEXT(...) macros)
    229 #define ANIMATED_PROPERTY_FORWARD_DECLARATIONS(ForwardClass, BareType, UpperProperty, LowerProperty) \
    230 ANIMATED_PROPERTY_FORWARD_DECLARATIONS_INTERNAL(ForwardClass, BareType, UpperProperty, LowerProperty)
    231 
    232 #define ANIMATED_PROPERTY_FORWARD_DECLARATIONS_REFCOUNTED(ForwardClass, BareType, UpperProperty, LowerProperty) \
    233 ANIMATED_PROPERTY_FORWARD_DECLARATIONS_INTERNAL(ForwardClass, BareType*, UpperProperty, LowerProperty)
    234 
    235 #define ANIMATED_PROPERTY_EMPTY_DECLARATIONS(BareType, UpperProperty, LowerProperty) \
    236 ANIMATED_PROPERTY_EMPTY_DECLARATIONS_INTERNAL(BareType, BareType(), UpperProperty, LowerProperty)
    237 
    238 #define ANIMATED_PROPERTY_EMPTY_DECLARATIONS_REFCOUNTED(BareType, UpperProperty, LowerProperty) \
    239 ANIMATED_PROPERTY_EMPTY_DECLARATIONS_INTERNAL(BareType*, 0, UpperProperty, LowerProperty)
    240 
    241 // Macros used for primitive types in SVGElement derived classes
    242 #define ANIMATED_PROPERTY_DECLARATIONS(ClassName, BareType, UpperProperty, LowerProperty) \
    243 ANIMATED_PROPERTY_DECLARATIONS_INTERNAL(ClassName, BareType, BareType, UpperProperty, LowerProperty)
    244 
    245 #define ANIMATED_PROPERTY_DEFINITIONS(ClassName, BareType, UpperProperty, LowerProperty, AttrName) \
    246 ANIMATED_PROPERTY_DEFINITIONS_INTERNAL(ClassName, ClassName, BareType, UpperProperty, LowerProperty, AttrName, AttrName.localName(), this)
    247 
    248 #define ANIMATED_PROPERTY_DEFINITIONS_WITH_CUSTOM_IDENTIFIER(ClassName, BareType, UpperProperty, LowerProperty, AttrName, AttrIdentifier) \
    249 ANIMATED_PROPERTY_DEFINITIONS_INTERNAL(ClassName, ClassName, BareType, UpperProperty, LowerProperty, AttrName, AttrIdentifier, this)
    250 
    251 // Macros used for refcounted types in SVGElement derived classes
    252 #define ANIMATED_PROPERTY_DECLARATIONS_REFCOUNTED(ClassName, BareType, UpperProperty, LowerProperty) \
    253 ANIMATED_PROPERTY_DECLARATIONS_INTERNAL(ClassName, BareType*, RefPtr<BareType>, UpperProperty, LowerProperty)
    254 
    255 #define ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(ClassName, BareType, UpperProperty, LowerProperty, AttrName) \
    256 ANIMATED_PROPERTY_DEFINITIONS_INTERNAL(ClassName, ClassName, BareType*, UpperProperty, LowerProperty, AttrName, AttrName.localName(), this)
    257 
    258 #define ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED_WITH_CUSTOM_IDENTIFIER(ClassName, BareType, UpperProperty, LowerProperty, AttrName, AttrIdentifier) \
    259 ANIMATED_PROPERTY_DEFINITIONS_INTERNAL(ClassName, ClassName, BareType*, UpperProperty, LowerProperty, AttrName, AttrIdentifier, this)
    260 
    261 // Macros used for primitive types in non-SVGElement base classes (ie. SVGURIReference acts as base class, glued using multiple inheritance in the SVG*Element classes)
    262 #define ANIMATED_PROPERTY_DECLARATIONS_WITH_CONTEXT(ClassName, BareType, UpperProperty, LowerProperty) \
    263 ANIMATED_PROPERTY_DECLARATIONS_INTERNAL(SVGElement, BareType, BareType, UpperProperty, LowerProperty)
    264 
    265 #define ANIMATED_PROPERTY_DEFINITIONS_WITH_CONTEXT(ClassName, BareType, UpperProperty, LowerProperty, AttrName) \
    266 ANIMATED_PROPERTY_DEFINITIONS_INTERNAL(ClassName, SVGElement, BareType, UpperProperty, LowerProperty, AttrName, AttrName.localName(), contextElement())
    267 
    268 // Macros used for refcounted types in non-SVGElement base classes (ie. see above)
    269 #define ANIMATED_PROPERTY_DECLARATIONS_REFCOUNTED_WITH_CONTEXT(ClassName, BareType, UpperProperty, LowerProperty) \
    270 ANIMATED_PROPERTY_DECLARATIONS_INTERNAL(SVGElement, BareType*, RefPtr<BareType>, UpperProperty, LowerProperty)
    271 
    272 #define ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED_WITH_CONTEXT(ClassName, BareType, UpperProperty, LowerProperty, AttrName) \
    273 ANIMATED_PROPERTY_DEFINITIONS_INTERNAL(ClassName, SVGElement, BareType*, UpperProperty, LowerProperty, AttrName, AttrName.localName(), contextElement())
    27431
    27532namespace WebCore {
     
    32481       
    32582        virtual AffineTransform* supplementalTransform() { return 0; }
    326 
    327         // Forwarded properties (declared/defined anywhere else in the inheritance structure)
    328 
    329         // -> For SVGURIReference
    330         ANIMATED_PROPERTY_EMPTY_DECLARATIONS(String, Href, href)
    331 
    332         // -> For SVGFitToViewBox
    333         ANIMATED_PROPERTY_EMPTY_DECLARATIONS(FloatRect, ViewBox, viewBox)   
    334         ANIMATED_PROPERTY_EMPTY_DECLARATIONS_REFCOUNTED(SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
    335 
    336         // -> For SVGExternalResourcesRequired
    337         ANIMATED_PROPERTY_EMPTY_DECLARATIONS(bool, ExternalResourcesRequired, externalResourcesRequired)
    338 
    33983        virtual bool dispatchEvent(PassRefPtr<Event> e, ExceptionCode& ec, bool tempEvent = false);
    34084
    341         virtual void invokeSVGPropertySynchronizer(StringImpl*) const { }
    342         virtual void invokeAllSVGPropertySynchronizers() const { }
    343         virtual void addSVGPropertySynchronizer(const QualifiedName&, AnimatedPropertySynchronizer) const { ASSERT_NOT_REACHED(); }
     85        virtual void updateAnimatedSVGAttribute(const String&) const;
     86        virtual void setSynchronizedSVGAttributes(bool) const;
    34487
    345         virtual void updateAnimatedSVGAttribute(StringImpl*) const;
    346         virtual void setSynchronizedSVGAttributes(bool) const;
     88        // Inlined methods handling SVG property synchronization
     89        void invokeSVGPropertySynchronizer(const String& name) const
     90        {
     91            if (m_svgPropertyMap.contains(name)) {
     92                const SVGAnimatedPropertyBase* property = m_svgPropertyMap.get(name);
     93                ASSERT(property);
     94
     95                property->synchronize();
     96            }
     97        }
     98
     99        void invokeAllSVGPropertySynchronizers() const
     100        {
     101            HashMap<String, const SVGAnimatedPropertyBase*>::const_iterator it = m_svgPropertyMap.begin();
     102            const HashMap<String, const SVGAnimatedPropertyBase*>::const_iterator end = m_svgPropertyMap.end();
     103            for (; it != end; ++it) {
     104                const SVGAnimatedPropertyBase* property = it->second;
     105                ASSERT(property);
     106
     107                property->synchronize();
     108            }
     109        }
     110
     111        void addSVGPropertySynchronizer(const QualifiedName& attrName, const SVGAnimatedPropertyBase& base) const
     112        {
     113            m_svgPropertyMap.set(attrName.localName(), &base);
     114        }
    347115
    348116    private:
     
    351119
    352120        Node* m_shadowParent;
     121        mutable HashMap<String, const SVGAnimatedPropertyBase*> m_svgPropertyMap;
    353122    };
    354123
  • trunk/WebCore/svg/SVGEllipseElement.cpp

    r35204 r35248  
    3838    , SVGLangSpace()
    3939    , SVGExternalResourcesRequired()
    40     , m_cx(LengthModeWidth)
    41     , m_cy(LengthModeHeight)
    42     , m_rx(LengthModeWidth)
    43     , m_ry(LengthModeHeight)
     40    , m_cx(this, SVGNames::cxAttr, LengthModeWidth)
     41    , m_cy(this, SVGNames::cyAttr, LengthModeHeight)
     42    , m_rx(this, SVGNames::rxAttr, LengthModeWidth)
     43    , m_ry(this, SVGNames::ryAttr, LengthModeHeight)
    4444{
    4545}   
     
    4848{
    4949}
    50 
    51 ANIMATED_PROPERTY_DEFINITIONS(SVGEllipseElement, SVGLength, Cx, cx, SVGNames::cxAttr)
    52 ANIMATED_PROPERTY_DEFINITIONS(SVGEllipseElement, SVGLength, Cy, cy, SVGNames::cyAttr)
    53 ANIMATED_PROPERTY_DEFINITIONS(SVGEllipseElement, SVGLength, Rx, rx, SVGNames::rxAttr)
    54 ANIMATED_PROPERTY_DEFINITIONS(SVGEllipseElement, SVGLength, Ry, ry, SVGNames::ryAttr)
    5550
    5651void SVGEllipseElement::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGEllipseElement.h

    r35035 r35248  
    5252
    5353    private:
    54         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    55  
    56         ANIMATED_PROPERTY_DECLARATIONS(SVGEllipseElement, SVGLength, Cx, cx)
    57         ANIMATED_PROPERTY_DECLARATIONS(SVGEllipseElement, SVGLength, Cy, cy)
    58         ANIMATED_PROPERTY_DECLARATIONS(SVGEllipseElement, SVGLength, Rx, rx)
    59         ANIMATED_PROPERTY_DECLARATIONS(SVGEllipseElement, SVGLength, Ry, ry)
     54        ANIMATED_PROPERTY_DECLARATIONS(SVGEllipseElement, SVGNames::ellipseTagString, SVGNames::cxAttrString, SVGLength, Cx, cx)
     55        ANIMATED_PROPERTY_DECLARATIONS(SVGEllipseElement, SVGNames::ellipseTagString, SVGNames::cyAttrString, SVGLength, Cy, cy)
     56        ANIMATED_PROPERTY_DECLARATIONS(SVGEllipseElement, SVGNames::ellipseTagString, SVGNames::rxAttrString, SVGLength, Rx, rx)
     57        ANIMATED_PROPERTY_DECLARATIONS(SVGEllipseElement, SVGNames::ellipseTagString, SVGNames::ryAttrString, SVGLength, Ry, ry)
    6058    };
    6159
  • trunk/WebCore/svg/SVGExternalResourcesRequired.cpp

    r35035 r35248  
    3232namespace WebCore {
    3333
     34char SVGExternalResourcesRequiredIdentifier[] = "SVGExternalResourcesRequired";
     35
    3436SVGExternalResourcesRequired::SVGExternalResourcesRequired()
    35     : m_externalResourcesRequired(false)
     37    : m_externalResourcesRequired(this, SVGNames::externalResourcesRequiredAttr, false)
    3638{
    3739}
     
    4042{
    4143}
    42 
    43 ANIMATED_PROPERTY_DEFINITIONS_WITH_CONTEXT(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired, SVGNames::externalResourcesRequiredAttr)
    4444
    4545bool SVGExternalResourcesRequired::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGExternalResourcesRequired.h

    r35035 r35248  
    2525
    2626#if ENABLE(SVG)
    27 #include <wtf/RefPtr.h>
    2827#include "SVGElement.h"
    2928
    3029namespace WebCore {
    3130
     31    extern char SVGExternalResourcesRequiredIdentifier[];
    3232    class MappedAttribute;
    3333
     
    5050        bool isKnownAttribute(const QualifiedName&);
    5151
    52     protected:
    5352        virtual const SVGElement* contextElement() const = 0;
    5453
    5554    private:
    56         ANIMATED_PROPERTY_DECLARATIONS_WITH_CONTEXT(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
     55        ANIMATED_PROPERTY_DECLARATIONS(SVGExternalResourcesRequired, SVGExternalResourcesRequiredIdentifier,
     56                                       SVGNames::externalResourcesRequiredAttrString, bool,
     57                                       ExternalResourcesRequired, externalResourcesRequired)
    5758    };
    5859
  • trunk/WebCore/svg/SVGFEBlendElement.cpp

    r35094 r35248  
    3232SVGFEBlendElement::SVGFEBlendElement(const QualifiedName& tagName, Document* doc)
    3333    : SVGFilterPrimitiveStandardAttributes(tagName, doc)
    34     , m_mode(FEBLEND_MODE_NORMAL)
     34    , m_in1(this, SVGNames::inAttr)
     35    , m_in2(this, SVGNames::in2Attr)
     36    , m_mode(this, SVGNames::modeAttr, FEBLEND_MODE_NORMAL)
    3537    , m_filterEffect(0)
    3638{
     
    4042{
    4143}
    42 
    43 ANIMATED_PROPERTY_DEFINITIONS(SVGFEBlendElement, String, In1, in1, SVGNames::inAttr)
    44 ANIMATED_PROPERTY_DEFINITIONS(SVGFEBlendElement, String, In2, in2, SVGNames::in2Attr)
    45 ANIMATED_PROPERTY_DEFINITIONS(SVGFEBlendElement, int, Mode, mode, SVGNames::modeAttr)
    4644
    4745void SVGFEBlendElement::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGFEBlendElement.h

    r35094 r35248  
    4040        bool build(FilterBuilder*);
    4141
    42     protected:
    43         virtual const SVGElement* contextElement() const { return this; }
    44 
    4542    private:
    46         ANIMATED_PROPERTY_DECLARATIONS(SVGFEBlendElement, String, In1, in1)
    47         ANIMATED_PROPERTY_DECLARATIONS(SVGFEBlendElement, String, In2, in2)
    48         ANIMATED_PROPERTY_DECLARATIONS(SVGFEBlendElement, int, Mode, mode)
     43        ANIMATED_PROPERTY_DECLARATIONS(SVGFEBlendElement, SVGNames::feBlendTagString, SVGNames::inAttrString, String, In1, in1)
     44        ANIMATED_PROPERTY_DECLARATIONS(SVGFEBlendElement, SVGNames::feBlendTagString, SVGNames::in2AttrString, String, In2, in2)
     45        ANIMATED_PROPERTY_DECLARATIONS(SVGFEBlendElement, SVGNames::feBlendTagString, SVGNames::modeAttrString, int, Mode, mode)
    4946
    5047        mutable RefPtr<FEBlend> m_filterEffect;
  • trunk/WebCore/svg/SVGFEColorMatrixElement.cpp

    r35094 r35248  
    3434SVGFEColorMatrixElement::SVGFEColorMatrixElement(const QualifiedName& tagName, Document* doc)
    3535    : SVGFilterPrimitiveStandardAttributes(tagName, doc)
    36     , m_type(FECOLORMATRIX_TYPE_UNKNOWN)
    37     , m_values(SVGNumberList::create(SVGNames::valuesAttr))
     36    , m_in1(this, SVGNames::inAttr)
     37    , m_type(this, SVGNames::typeAttr, FECOLORMATRIX_TYPE_UNKNOWN)
     38    , m_values(this, SVGNames::valuesAttr, SVGNumberList::create(SVGNames::valuesAttr))
    3839    , m_filterEffect(0)
    3940{
     
    4344{
    4445}
    45 
    46 ANIMATED_PROPERTY_DEFINITIONS(SVGFEColorMatrixElement, String, In1, in1, SVGNames::inAttr)
    47 ANIMATED_PROPERTY_DEFINITIONS(SVGFEColorMatrixElement, int, Type, type, SVGNames::typeAttr)
    48 ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGFEColorMatrixElement, SVGNumberList, Values, values, SVGNames::valuesAttr)
    4946
    5047void SVGFEColorMatrixElement::parseMappedAttribute(MappedAttribute* attr)
     
    9895
    9996#endif // ENABLE(SVG)
    100 
    101 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGFEColorMatrixElement.h

    r35094 r35248  
    2727#include "FEColorMatrix.h"
    2828#include "SVGFilterPrimitiveStandardAttributes.h"
     29#include "SVGNumberList.h"
    2930
    30 namespace WebCore
    31 {
    32     class SVGNumberList;
     31namespace WebCore {
    3332
    34     class SVGFEColorMatrixElement : public SVGFilterPrimitiveStandardAttributes
    35     {
     33    class SVGFEColorMatrixElement : public SVGFilterPrimitiveStandardAttributes {
    3634    public:
    3735        SVGFEColorMatrixElement(const QualifiedName&, Document*);
     
    4240        bool build(FilterBuilder*);
    4341
    44     protected:
    45         virtual const SVGElement* contextElement() const { return this; }
    46 
    4742    private:
    48         ANIMATED_PROPERTY_DECLARATIONS(SVGFEColorMatrixElement, String, In1, in1)
    49         ANIMATED_PROPERTY_DECLARATIONS(SVGFEColorMatrixElement, int, Type, type)
    50         ANIMATED_PROPERTY_DECLARATIONS_REFCOUNTED(SVGFEColorMatrixElement, SVGNumberList, Values, values)
     43        ANIMATED_PROPERTY_DECLARATIONS(SVGFEColorMatrixElement, SVGNames::feColorMatrixTagString, SVGNames::inAttrString, String, In1, in1)
     44        ANIMATED_PROPERTY_DECLARATIONS(SVGFEColorMatrixElement, SVGNames::feColorMatrixTagString, SVGNames::typeAttrString, int, Type, type)
     45        ANIMATED_PROPERTY_DECLARATIONS(SVGFEColorMatrixElement, SVGNames::feColorMatrixTagString, SVGNames::valuesAttrString, SVGNumberList, Values, values)
    5146
    5247        mutable RefPtr<FEColorMatrix> m_filterEffect;
     
    5752#endif // ENABLE(SVG)
    5853#endif
    59 
    60 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGFEComponentTransferElement.cpp

    r35094 r35248  
    3939SVGFEComponentTransferElement::SVGFEComponentTransferElement(const QualifiedName& tagName, Document* doc)
    4040    : SVGFilterPrimitiveStandardAttributes(tagName, doc)
     41    , m_in1(this, SVGNames::inAttr)
    4142    , m_filterEffect(0)
    4243{
     
    4647{
    4748}
    48 
    49 ANIMATED_PROPERTY_DEFINITIONS(SVGFEComponentTransferElement, String, In1, in1, SVGNames::inAttr)
    5049
    5150void SVGFEComponentTransferElement::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGFEComponentTransferElement.h

    r35094 r35248  
    2828#include "FEComponentTransfer.h"
    2929
    30 namespace WebCore
    31 {
     30namespace WebCore {
    3231
    33     class SVGFEComponentTransferElement : public SVGFilterPrimitiveStandardAttributes
    34     {
     32    class SVGFEComponentTransferElement : public SVGFilterPrimitiveStandardAttributes {
    3533    public:
    3634        SVGFEComponentTransferElement(const QualifiedName&, Document*);
     
    4139        bool build(FilterBuilder*);
    4240
    43     protected:
    44         virtual const SVGElement* contextElement() const { return this; }
    45 
    4641    private:
    47         ANIMATED_PROPERTY_DECLARATIONS(SVGFEComponentTransferElement, String, In1, in1)
     42        ANIMATED_PROPERTY_DECLARATIONS(SVGFEComponentTransferElement, SVGNames::feComponentTransferTagString, SVGNames::inAttrString, String, In1, in1)
    4843
    4944        mutable RefPtr<FEComponentTransfer> m_filterEffect;
  • trunk/WebCore/svg/SVGFECompositeElement.cpp

    r35094 r35248  
    3333SVGFECompositeElement::SVGFECompositeElement(const QualifiedName& tagName, Document* doc)
    3434    : SVGFilterPrimitiveStandardAttributes(tagName, doc)
    35     , m__operator(FECOMPOSITE_OPERATOR_OVER)
    36     , m_k1(0.0f)
    37     , m_k2(0.0f)
    38     , m_k3(0.0f)
    39     , m_k4(0.0f)
     35    , m_in1(this, SVGNames::inAttr)
     36    , m_in2(this, SVGNames::in2Attr)
     37    , m__operator(this, SVGNames::operatorAttr, FECOMPOSITE_OPERATOR_OVER)
     38    , m_k1(this, SVGNames::k1Attr)
     39    , m_k2(this, SVGNames::k2Attr)
     40    , m_k3(this, SVGNames::k3Attr)
     41    , m_k4(this, SVGNames::k4Attr)
    4042    , m_filterEffect(0)
    4143{
     
    4547{
    4648}
    47 
    48 ANIMATED_PROPERTY_DEFINITIONS(SVGFECompositeElement, String, In1, in1, SVGNames::inAttr)
    49 ANIMATED_PROPERTY_DEFINITIONS(SVGFECompositeElement, String, In2, in2, SVGNames::in2Attr)
    50 ANIMATED_PROPERTY_DEFINITIONS(SVGFECompositeElement, int, _operator, _operator, SVGNames::operatorAttr)
    51 ANIMATED_PROPERTY_DEFINITIONS(SVGFECompositeElement, float, K1, k1, SVGNames::k1Attr)
    52 ANIMATED_PROPERTY_DEFINITIONS(SVGFECompositeElement, float, K2, k2, SVGNames::k2Attr)
    53 ANIMATED_PROPERTY_DEFINITIONS(SVGFECompositeElement, float, K3, k3, SVGNames::k3Attr)
    54 ANIMATED_PROPERTY_DEFINITIONS(SVGFECompositeElement, float, K4, k4, SVGNames::k4Attr)
    5549
    5650void SVGFECompositeElement::parseMappedAttribute(MappedAttribute *attr)
     
    111105
    112106#endif // ENABLE(SVG)
    113 
    114 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGFECompositeElement.h

    r35094 r35248  
    2828#include "SVGFilterPrimitiveStandardAttributes.h"
    2929
    30 namespace WebCore
    31 {
     30namespace WebCore {
    3231
    33     class SVGFECompositeElement : public SVGFilterPrimitiveStandardAttributes
    34     {
     32    class SVGFECompositeElement : public SVGFilterPrimitiveStandardAttributes {
    3533    public:
    3634        SVGFECompositeElement(const QualifiedName&, Document*);
     
    4139        bool build(FilterBuilder*);
    4240
    43     protected:
    44         virtual const SVGElement* contextElement() const { return this; }
    45 
    4641    private:
    47         ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, String, In1, in1)
    48         ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, String, In2, in2)
    49         ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, int, _operator, _operator)
    50         ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, float, K1, k1)
    51         ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, float, K2, k2)
    52         ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, float, K3, k3)
    53         ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, float, K4, k4)
     42        ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, SVGNames::feCompositeTagString, SVGNames::inAttrString, String, In1, in1)
     43        ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, SVGNames::feCompositeTagString, SVGNames::in2AttrString, String, In2, in2)
     44        ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, SVGNames::feCompositeTagString, SVGNames::operatorAttrString, int, _operator, _operator)
     45        ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, SVGNames::feCompositeTagString, SVGNames::k1AttrString, float, K1, k1)
     46        ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, SVGNames::feCompositeTagString, SVGNames::k2AttrString, float, K2, k2)
     47        ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, SVGNames::feCompositeTagString, SVGNames::k3AttrString, float, K3, k3)
     48        ANIMATED_PROPERTY_DECLARATIONS(SVGFECompositeElement, SVGNames::feCompositeTagString, SVGNames::k4AttrString, float, K4, k4)
    5449
    5550        mutable RefPtr<FEComposite> m_filterEffect;
     
    6055#endif // ENABLE(SVG)
    6156#endif
    62 
    63 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGFEDiffuseLightingElement.cpp

    r35094 r35248  
    3535namespace WebCore {
    3636
     37char SVGKernelUnitLengthXIdentifier[] = "SVGKernelUnitLengthX";
     38char SVGKernelUnitLengthYIdentifier[] = "SVGKernelUnitLengthY";
     39
    3740SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement(const QualifiedName& tagName, Document* doc)
    3841    : SVGFilterPrimitiveStandardAttributes(tagName, doc)
    39     , m_diffuseConstant(1.0f)
    40     , m_surfaceScale(1.0f)
    41     , m_kernelUnitLengthX(0.0f)
    42     , m_kernelUnitLengthY(0.0f)
     42    , m_in1(this, SVGNames::inAttr)
     43    , m_diffuseConstant(this, SVGNames::diffuseConstantAttr, 1.0f)
     44    , m_surfaceScale(this, SVGNames::surfaceScaleAttr, 1.0f)
     45    , m_kernelUnitLengthX(this, SVGNames::kernelUnitLengthAttr)
     46    , m_kernelUnitLengthY(this, SVGNames::kernelUnitLengthAttr)
    4347    , m_filterEffect(0)
    4448{
     
    4852{
    4953}
    50 
    51 ANIMATED_PROPERTY_DEFINITIONS(SVGFEDiffuseLightingElement, String, In1, in1, SVGNames::inAttr)
    52 ANIMATED_PROPERTY_DEFINITIONS(SVGFEDiffuseLightingElement, float, DiffuseConstant, diffuseConstant, SVGNames::diffuseConstantAttr)
    53 ANIMATED_PROPERTY_DEFINITIONS(SVGFEDiffuseLightingElement, float, SurfaceScale, surfaceScale, SVGNames::surfaceScaleAttr)
    54 ANIMATED_PROPERTY_DEFINITIONS_WITH_CUSTOM_IDENTIFIER(SVGFEDiffuseLightingElement, float, KernelUnitLengthX, kernelUnitLengthX, SVGNames::kernelUnitLengthAttr, "kernelUnitLengthX")
    55 ANIMATED_PROPERTY_DEFINITIONS_WITH_CUSTOM_IDENTIFIER(SVGFEDiffuseLightingElement, float, KernelUnitLengthY, kernelUnitLengthY, SVGNames::kernelUnitLengthAttr, "kernelUnitLengthY")
    5654
    5755void SVGFEDiffuseLightingElement::parseMappedAttribute(MappedAttribute *attr)
     
    120118
    121119#endif // ENABLE(SVG)
    122 
    123 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGFEDiffuseLightingElement.h

    r35094 r35248  
    2828
    2929namespace WebCore {
     30
     31    extern char SVGKernelUnitLengthXIdentifier[];
     32    extern char SVGKernelUnitLengthYIdentifier[];
     33
    3034    class FEDiffuseLighting;
    3135    class SVGColor;
    3236
    33     class SVGFEDiffuseLightingElement : public SVGFilterPrimitiveStandardAttributes
    34     {
     37    class SVGFEDiffuseLightingElement : public SVGFilterPrimitiveStandardAttributes {
    3538    public:
    3639        SVGFEDiffuseLightingElement(const QualifiedName&, Document*);
     
    4144        bool build(FilterBuilder*);
    4245
    43     protected:
    44         virtual const SVGElement* contextElement() const { return this; }
    45 
    4646    private:
    47         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, String, In1, in1)
    48         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, float, DiffuseConstant, diffuseConstant)
    49         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, float, SurfaceScale, surfaceScale)
    50         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, float, KernelUnitLengthX, kernelUnitLengthX)
    51         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, float, KernelUnitLengthY, kernelUnitLengthY)
     47        ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, SVGNames::feDiffuseLightingTagString, SVGNames::inAttrString, String, In1, in1)
     48        ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, SVGNames::feDiffuseLightingTagString, SVGNames::diffuseConstantAttrString, float, DiffuseConstant, diffuseConstant)
     49        ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, SVGNames::feDiffuseLightingTagString, SVGNames::surfaceScaleAttrString, float, SurfaceScale, surfaceScale)
     50        ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, SVGNames::feDiffuseLightingTagString, SVGKernelUnitLengthXIdentifier, float, KernelUnitLengthX, kernelUnitLengthX)
     51        ANIMATED_PROPERTY_DECLARATIONS(SVGFEDiffuseLightingElement, SVGNames::feDiffuseLightingTagString, SVGKernelUnitLengthYIdentifier, float, KernelUnitLengthY, kernelUnitLengthY)
    5252
    5353        LightSource* findLights() const;
  • trunk/WebCore/svg/SVGFEDisplacementMapElement.cpp

    r35094 r35248  
    3030SVGFEDisplacementMapElement::SVGFEDisplacementMapElement(const QualifiedName& tagName, Document* doc)
    3131    : SVGFilterPrimitiveStandardAttributes(tagName, doc)
    32     , m_xChannelSelector(CHANNEL_A)
    33     , m_yChannelSelector(CHANNEL_A)
    34     , m_scale(0.0f)
     32    , m_in1(this, SVGNames::inAttr)
     33    , m_in2(this, SVGNames::in2Attr)
     34    , m_xChannelSelector(this, SVGNames::xChannelSelectorAttr, CHANNEL_A)
     35    , m_yChannelSelector(this, SVGNames::yChannelSelectorAttr, CHANNEL_A)
     36    , m_scale(this, SVGNames::scaleAttr)
    3537    , m_filterEffect(0)
    3638{
     
    4042{
    4143}
    42 
    43 ANIMATED_PROPERTY_DEFINITIONS(SVGFEDisplacementMapElement, String, In1, in1, SVGNames::inAttr)
    44 ANIMATED_PROPERTY_DEFINITIONS(SVGFEDisplacementMapElement, String, In2, in2, SVGNames::in2Attr)
    45 ANIMATED_PROPERTY_DEFINITIONS(SVGFEDisplacementMapElement, int, XChannelSelector, xChannelSelector, SVGNames::xChannelSelectorAttr)
    46 ANIMATED_PROPERTY_DEFINITIONS(SVGFEDisplacementMapElement, int, YChannelSelector, yChannelSelector, SVGNames::yChannelSelectorAttr)
    47 ANIMATED_PROPERTY_DEFINITIONS(SVGFEDisplacementMapElement, float, Scale, scale, SVGNames::scaleAttr)
    4844
    4945ChannelSelectorType SVGFEDisplacementMapElement::stringToChannel(const String& key)
  • trunk/WebCore/svg/SVGFEDisplacementMapElement.h

    r35094 r35248  
    3838        bool build(FilterBuilder*);
    3939       
    40     protected:
    41         virtual const SVGElement* contextElement() const { return this; }
    42 
    4340    private:
    44         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, String, In1, in1)
    45         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, String, In2, in2)
    46         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, int, XChannelSelector, xChannelSelector)
    47         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, int, YChannelSelector, yChannelSelector)
    48         ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, float, Scale, scale)
     41        ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, SVGNames::feDisplacementMapTagString, SVGNames::inAttrString, String, In1, in1)
     42        ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, SVGNames::feDisplacementMapTagString, SVGNames::in2AttrString, String, In2, in2)
     43        ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, SVGNames::feDisplacementMapTagString, SVGNames::xChannelSelectorAttrString, int, XChannelSelector, xChannelSelector)
     44        ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, SVGNames::feDisplacementMapTagString, SVGNames::yChannelSelectorAttrString, int, YChannelSelector, yChannelSelector)
     45        ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, SVGNames::feDisplacementMapTagString, SVGNames::scaleAttrString, float, Scale, scale)
    4946
    5047        mutable RefPtr<FEDisplacementMap> m_filterEffect;
  • trunk/WebCore/svg/SVGFEFloodElement.h

    r35094 r35248  
    4040        bool build(FilterBuilder*);
    4141
    42     protected:
    43         virtual const SVGElement* contextElement() const { return this; }
    44 
    4542    private:
    4643        mutable RefPtr<FEFlood> m_filterEffect;
  • trunk/WebCore/svg/SVGFEGaussianBlurElement.cpp

    r35094 r35248  
    3232namespace WebCore {
    3333
     34char SVGStdDeviationXAttrIdentifier[] = "SVGStdDeviationXAttr";
     35char SVGStdDeviationYAttrIdentifier[] = "SVGStdDeviationYAttr";
     36
    3437SVGFEGaussianBlurElement::SVGFEGaussianBlurElement(const QualifiedName& tagName, Document* doc)
    3538    : SVGFilterPrimitiveStandardAttributes(tagName, doc)
    36     , m_stdDeviationX(0.0f)
    37     , m_stdDeviationY(0.0f)
     39    , m_in1(this, SVGNames::inAttr)
     40    , m_stdDeviationX(this, SVGNames::stdDeviationAttr)
     41    , m_stdDeviationY(this, SVGNames::stdDeviationAttr)
    3842    , m_filterEffect(0)
    3943{
     
    4347{
    4448}
    45 
    46 ANIMATED_PROPERTY_DEFINITIONS(SVGFEGaussianBlurElement, String, In1, in1, SVGNames::inAttr)
    47 ANIMATED_PROPERTY_DEFINITIONS_WITH_CUSTOM_IDENTIFIER(SVGFEGaussianBlurElement, float, StdDeviationX, stdDeviationX, SVGNames::stdDeviationAttr, "stdDeviationX")
    48 ANIMATED_PROPERTY_DEFINITIONS_WITH_CUSTOM_IDENTIFIER(SVGFEGaussianBlurElement, float, StdDeviationY, stdDeviationY, SVGNames::stdDeviationAttr, "stdDeviationY")
    4949
    5050void SVGFEGaussianBlurElement::setStdDeviation(float stdDeviationX, float stdDeviationY)
     
    8888
    8989#endif // ENABLE(SVG)
    90 
    91 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGFEGaussianBlurElement.h

    r35094 r35248  
    2828#include "SVGFilterPrimitiveStandardAttributes.h"
    2929
    30 namespace WebCore
    31 {
     30namespace WebCore {
    3231
    33     class SVGFEGaussianBlurElement : public SVGFilterPrimitiveStandardAttributes
    34     {
     32    extern char SVGStdDeviationXAttrIdentifier[];
     33    extern char SVGStdDeviationYAttrIdentifier[];
     34
     35    class SVGFEGaussianBlurElement : public SVGFilterPrimitiveStandardAttributes {
    3536    public:
    3637        SVGFEGaussianBlurElement(const QualifiedName&, Document*);
     
    4344        bool build(FilterBuilder*);
    4445
    45     protected:
    46         virtual const SVGElement* contextElement() const { return this; }
    47 
    4846    private:
    49         ANIMATED_PROPERTY_DECLARATIONS(SVGFEGaussianBlurElement, String, In1, in1)
    50         ANIMATED_PROPERTY_DECLARATIONS(SVGFEGaussianBlurElement, float, StdDeviationX, stdDeviationX)
    51         ANIMATED_PROPERTY_DECLARATIONS(SVGFEGaussianBlurElement, float, StdDeviationY, stdDeviationY)
     47        ANIMATED_PROPERTY_DECLARATIONS(SVGFEGaussianBlurElement, SVGNames::feGaussianBlurTagString, SVGNames::inAttrString, String, In1, in1)
     48        ANIMATED_PROPERTY_DECLARATIONS(SVGFEGaussianBlurElement, SVGNames::feGaussianBlurTagString, SVGStdDeviationXAttrIdentifier, float, StdDeviationX, stdDeviationX)
     49        ANIMATED_PROPERTY_DECLARATIONS(SVGFEGaussianBlurElement, SVGNames::feGaussianBlurTagString, SVGStdDeviationYAttrIdentifier, float, StdDeviationY, stdDeviationY)
    5250
    5351        mutable RefPtr<FEGaussianBlur> m_filterEffect;
     
    5856#endif // ENABLE(SVG)
    5957#endif
    60 
    61 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGFEImageElement.cpp

    r35094 r35248  
    4242    , SVGLangSpace()
    4343    , SVGExternalResourcesRequired()
    44     , m_preserveAspectRatio(SVGPreserveAspectRatio::create())
     44    , m_preserveAspectRatio(this, SVGNames::preserveAspectRatioAttr, SVGPreserveAspectRatio::create())
    4545    , m_cachedImage(0)
    4646    , m_filterEffect(0)
     
    5353        m_cachedImage->removeClient(this);
    5454}
    55 
    56 ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGFEImageElement, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio, SVGNames::preserveAspectRatioAttr)
    5755
    5856void SVGFEImageElement::parseMappedAttribute(MappedAttribute* attr)
     
    114112
    115113#endif // ENABLE(SVG)
    116 
    117 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGFEImageElement.h

    r35094 r35248  
    3030#include "SVGExternalResourcesRequired.h"
    3131#include "SVGFEImage.h"
     32#include "SVGPreserveAspectRatio.h"
    3233
    3334namespace WebCore {
    34     class SVGPreserveAspectRatio;
    3535
    3636    class SVGFEImageElement : public SVGFilterPrimitiveStandardAttributes,
     
    3838                              public SVGLangSpace,
    3939                              public SVGExternalResourcesRequired,
    40                               public CachedResourceClient
    41     {
     40                              public CachedResourceClient {
    4241    public:
    4342        SVGFEImageElement(const QualifiedName&, Document*);
     
    5251    protected:
    5352        virtual SVGFilterEffect* filterEffect(SVGResourceFilter*) const;
    54 
    55     protected:
    5653        virtual const SVGElement* contextElement() const { return this; }
    5754
    5855    private:
    59         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
    60         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    61  
    62         ANIMATED_PROPERTY_DECLARATIONS_REFCOUNTED(SVGFEImageElement, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
     56        ANIMATED_PROPERTY_DECLARATIONS(SVGFEImageElement, SVGNames::feImageTagString, SVGNames::preserveAspectRatioAttrString, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
    6357
    6458        CachedImage* m_cachedImage;
     
    7064#endif // ENABLE(SVG)
    7165#endif
    72 
    73 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGFELightElement.cpp

    r35038 r35248  
    2424#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
    2525#include "SVGFELightElement.h"
    26 
    2726#include "SVGNames.h"
    2827
    2928namespace WebCore {
    3029
     30char SVGFELightElementIdentifier[] = "SVGFELightElement";
     31
    3132SVGFELightElement::SVGFELightElement(const QualifiedName& tagName, Document* doc)
    3233    : SVGElement(tagName, doc)
    33     , m_azimuth(0.0f)
    34     , m_elevation(0.0f)
    35     , m_x(0.0f)
    36     , m_y(0.0f)
    37     , m_z(0.0f)
    38     , m_pointsAtX(0.0f)
    39     , m_pointsAtY(0.0f)
    40     , m_pointsAtZ(0.0f)
    41     , m_specularExponent(1.0f)
    42     , m_limitingConeAngle(0.0f)
     34    , m_azimuth(this, SVGNames::azimuthAttr)
     35    , m_elevation(this, SVGNames::elevationAttr)
     36    , m_x(this, SVGNames::xAttr)
     37    , m_y(this, SVGNames::yAttr)
     38    , m_z(this, SVGNames::zAttr)
     39    , m_pointsAtX(this, SVGNames::pointsAtXAttr)
     40    , m_pointsAtY(this, SVGNames::pointsAtYAttr)
     41    , m_pointsAtZ(this, SVGNames::pointsAtZAttr)
     42    , m_specularExponent(this, SVGNames::specularExponentAttr, 1.0f)
     43    , m_limitingConeAngle(this, SVGNames::limitingConeAngleAttr)
    4344{
    4445}
     
    4748{
    4849}
    49 
    50 ANIMATED_PROPERTY_DEFINITIONS(SVGFELightElement, float, Azimuth, azimuth, SVGNames::azimuthAttr)
    51 ANIMATED_PROPERTY_DEFINITIONS(SVGFELightElement, float, Elevation, elevation, SVGNames::elevationAttr)
    52 ANIMATED_PROPERTY_DEFINITIONS(SVGFELightElement, float, X, x, SVGNames::xAttr)
    53 ANIMATED_PROPERTY_DEFINITIONS(SVGFELightElement, float, Y, y, SVGNames::yAttr)
    54 ANIMATED_PROPERTY_DEFINITIONS(SVGFELightElement, float, Z, z, SVGNames::zAttr)
    55 ANIMATED_PROPERTY_DEFINITIONS(SVGFELightElement, float, PointsAtX, pointsAtX, SVGNames::pointsAtXAttr)
    56 ANIMATED_PROPERTY_DEFINITIONS(SVGFELightElement, float, PointsAtY, pointsAtY, SVGNames::pointsAtYAttr)
    57 ANIMATED_PROPERTY_DEFINITIONS(SVGFELightElement, float, PointsAtZ, pointsAtZ, SVGNames::pointsAtZAttr)
    58 ANIMATED_PROPERTY_DEFINITIONS(SVGFELightElement, float, SpecularExponent, specularExponent, SVGNames::specularExponentAttr)
    59 ANIMATED_PROPERTY_DEFINITIONS(SVGFELightElement, float, LimitingConeAngle, limitingConeAngle, SVGNames::limitingConeAngleAttr)
    6050
    6151void SVGFELightElement::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGFELightElement.h

    r35035 r35248  
    2727#include "SVGLightSource.h"
    2828
    29 namespace WebCore
    30 {
    31     class SVGNumberList;
    32    
    33     class SVGFELightElement : public SVGElement
    34     {
     29namespace WebCore {
     30
     31    extern char SVGFELightElementIdentifier[];
     32
     33    class SVGFELightElement : public SVGElement {
    3534    public:
    3635        SVGFELightElement(const QualifiedName&, Document*);
     
    4039        virtual void parseMappedAttribute(MappedAttribute*);
    4140
     41    protected:
     42        virtual const SVGElement* contextElement() const { return this; }
     43
    4244    private:
    43         ANIMATED_PROPERTY_START_DECLARATIONS
    44         ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, float, Azimuth, azimuth)
    45         ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, float, Elevation, elevation)
    46         ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, float, X, x)
    47         ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, float, Y, y)
    48         ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, float, Z, z)
    49         ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, float, PointsAtX, pointsAtX)
    50         ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, float, PointsAtY, pointsAtY)
    51         ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, float, PointsAtZ, pointsAtZ)
    52         ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, float, SpecularExponent, specularExponent)
    53         ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, float, LimitingConeAngle, limitingConeAngle)
     45        ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, SVGFELightElementIdentifier, SVGNames::azimuthAttrString, float, Azimuth, azimuth)
     46        ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, SVGFELightElementIdentifier, SVGNames::elevationAttrString, float, Elevation, elevation)
     47        ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, SVGFELightElementIdentifier, SVGNames::xAttrString, float, X, x)
     48        ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, SVGFELightElementIdentifier, SVGNames::yAttrString, float, Y, y)
     49        ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, SVGFELightElementIdentifier, SVGNames::zAttrString, float, Z, z)
     50        ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, SVGFELightElementIdentifier, SVGNames::pointsAtXAttrString, float, PointsAtX, pointsAtX)
     51        ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, SVGFELightElementIdentifier, SVGNames::pointsAtYAttrString, float, PointsAtY, pointsAtY)
     52        ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, SVGFELightElementIdentifier, SVGNames::pointsAtZAttrString, float, PointsAtZ, pointsAtZ)
     53        ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, SVGFELightElementIdentifier, SVGNames::specularExponentAttrString, float, SpecularExponent, specularExponent)
     54        ANIMATED_PROPERTY_DECLARATIONS(SVGFELightElement, SVGFELightElementIdentifier, SVGNames::limitingConeAngleAttrString, float, LimitingConeAngle, limitingConeAngle)
    5455    };
    5556
  • trunk/WebCore/svg/SVGFEMergeElement.h

    r35094 r35248  
    2828#include "SVGFilterPrimitiveStandardAttributes.h"
    2929
    30 namespace WebCore
    31 {
    32     class SVGFEMergeElement : public SVGFilterPrimitiveStandardAttributes
    33     {
     30namespace WebCore {
     31
     32    class SVGFEMergeElement : public SVGFilterPrimitiveStandardAttributes {
    3433    public:
    3534        SVGFEMergeElement(const QualifiedName&, Document*);
     
    3837        virtual SVGFilterEffect* filterEffect(SVGResourceFilter*) const;
    3938        bool build(FilterBuilder*);
    40 
    41     protected:
    42         virtual const SVGElement* contextElement() const { return this; }
    4339
    4440    private:
  • trunk/WebCore/svg/SVGFEMergeNodeElement.cpp

    r35035 r35248  
    3030SVGFEMergeNodeElement::SVGFEMergeNodeElement(const QualifiedName& tagName, Document* doc)
    3131    : SVGElement(tagName, doc)
     32    , m_in1(this, SVGNames::inAttr)
    3233{
    3334}
     
    3637{
    3738}
    38 
    39 ANIMATED_PROPERTY_DEFINITIONS(SVGFEMergeNodeElement, String, In1, in1, SVGNames::inAttr)
    4039
    4140void SVGFEMergeNodeElement::parseMappedAttribute(MappedAttribute* attr)
     
    5150
    5251#endif // ENABLE(SVG)
    53 
    54 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGFEMergeNodeElement.h

    r35035 r35248  
    2727#include "SVGElement.h"
    2828
    29 namespace WebCore
    30 {
    31     class SVGFEMergeNodeElement : public SVGElement
    32     {
     29namespace WebCore {
     30
     31    class SVGFEMergeNodeElement : public SVGElement {
    3332    public:
    3433        SVGFEMergeNodeElement(const QualifiedName&, Document*);
     
    4140
    4241    private:
    43         ANIMATED_PROPERTY_START_DECLARATIONS
    44         ANIMATED_PROPERTY_DECLARATIONS(SVGFEMergeNodeElement, String, In1, in1)
     42        ANIMATED_PROPERTY_DECLARATIONS(SVGFEMergeNodeElement, SVGNames::feMergeNodeTagString, SVGNames::inAttrString, String, In1, in1)
    4543    };
    4644
     
    4947#endif // ENABLE(SVG)
    5048#endif
    51 
    52 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGFEOffsetElement.cpp

    r35094 r35248  
    3333SVGFEOffsetElement::SVGFEOffsetElement(const QualifiedName& tagName, Document* doc)
    3434    : SVGFilterPrimitiveStandardAttributes(tagName, doc)
    35     , m_dx(0.0f)
    36     , m_dy(0.0f)
     35    , m_in1(this, SVGNames::inAttr)
     36    , m_dx(this, SVGNames::dxAttr)
     37    , m_dy(this, SVGNames::dyAttr)
    3738    , m_filterEffect(0)
    3839{
     
    4243{
    4344}
    44 
    45 ANIMATED_PROPERTY_DEFINITIONS(SVGFEOffsetElement, String, In1, in1, SVGNames::inAttr)
    46 ANIMATED_PROPERTY_DEFINITIONS(SVGFEOffsetElement, float, Dx, dx, SVGNames::dxAttr)
    47 ANIMATED_PROPERTY_DEFINITIONS(SVGFEOffsetElement, float, Dy, dy, SVGNames::dyAttr)
    4845
    4946void SVGFEOffsetElement::parseMappedAttribute(MappedAttribute* attr)
     
    8178
    8279#endif // ENABLE(SVG)
    83 
    84 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGFEOffsetElement.h

    r35094 r35248  
    2828#include "SVGFEOffset.h"
    2929
    30 namespace WebCore
    31 {
     30namespace WebCore {
    3231
    33     class SVGFEOffsetElement : public SVGFilterPrimitiveStandardAttributes
    34     {
     32    class SVGFEOffsetElement : public SVGFilterPrimitiveStandardAttributes {
    3533    public:
    3634        SVGFEOffsetElement(const QualifiedName&, Document*);
     
    4139        bool build(FilterBuilder*);
    4240
    43     protected:
    44         virtual const SVGElement* contextElement() const { return this; }
    45 
    4641    private:
    47         ANIMATED_PROPERTY_DECLARATIONS(SVGFEOffsetElement, String, In1, in1)
    48         ANIMATED_PROPERTY_DECLARATIONS(SVGFEOffsetElement, float, Dx, dx)
    49         ANIMATED_PROPERTY_DECLARATIONS(SVGFEOffsetElement, float, Dy, dy)
     42        ANIMATED_PROPERTY_DECLARATIONS(SVGFEOffsetElement, SVGNames::feOffsetTagString, SVGNames::inAttrString, String, In1, in1)
     43        ANIMATED_PROPERTY_DECLARATIONS(SVGFEOffsetElement, SVGNames::feOffsetTagString, SVGNames::dxAttrString, float, Dx, dx)
     44        ANIMATED_PROPERTY_DECLARATIONS(SVGFEOffsetElement, SVGNames::feOffsetTagString, SVGNames::dyAttrString, float, Dy, dy)
    5045
    5146        mutable RefPtr<FEOffset> m_filterEffect;
     
    5651#endif // ENABLE(SVG)
    5752#endif
    58 
    59 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGFESpecularLightingElement.cpp

    r35094 r35248  
    3636SVGFESpecularLightingElement::SVGFESpecularLightingElement(const QualifiedName& tagName, Document* doc)
    3737    : SVGFilterPrimitiveStandardAttributes(tagName, doc)
    38     , m_specularConstant(1.0f)
    39     , m_specularExponent(1.0f)
    40     , m_surfaceScale(1.0f)
    41     , m_kernelUnitLengthX(0.0f)
    42     , m_kernelUnitLengthY(0.0f)
     38    , m_in1(this, SVGNames::inAttr)
     39    , m_specularConstant(this, SVGNames::specularConstantAttr, 1.0f)
     40    , m_specularExponent(this, SVGNames::specularExponentAttr, 1.0f)
     41    , m_surfaceScale(this, SVGNames::surfaceScaleAttr, 1.0f)
     42    , m_kernelUnitLengthX(this, SVGNames::kernelUnitLengthAttr)
     43    , m_kernelUnitLengthY(this, SVGNames::kernelUnitLengthAttr)
    4344    , m_filterEffect(0)
    4445{
     
    4849{
    4950}
    50 
    51 ANIMATED_PROPERTY_DEFINITIONS(SVGFESpecularLightingElement, String, In1, in1, SVGNames::inAttr)
    52 ANIMATED_PROPERTY_DEFINITIONS(SVGFESpecularLightingElement, float, SpecularConstant, specularConstant, SVGNames::specularConstantAttr)
    53 ANIMATED_PROPERTY_DEFINITIONS(SVGFESpecularLightingElement, float, SpecularExponent, specularExponent, SVGNames::specularExponentAttr)
    54 ANIMATED_PROPERTY_DEFINITIONS(SVGFESpecularLightingElement, float, SurfaceScale, surfaceScale, SVGNames::surfaceScaleAttr)
    55 ANIMATED_PROPERTY_DEFINITIONS_WITH_CUSTOM_IDENTIFIER(SVGFESpecularLightingElement, float, KernelUnitLengthX, kernelUnitLengthX, SVGNames::kernelUnitLengthAttr, "kernelUnitLengthX")
    56 ANIMATED_PROPERTY_DEFINITIONS_WITH_CUSTOM_IDENTIFIER(SVGFESpecularLightingElement, float, KernelUnitLengthY, kernelUnitLengthY, SVGNames::kernelUnitLengthAttr, "kernelUnitLengthY")
    5751
    5852void SVGFESpecularLightingElement::parseMappedAttribute(MappedAttribute* attr)
     
    124118
    125119#endif // ENABLE(SVG)
    126 
    127 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGFESpecularLightingElement.h

    r35094 r35248  
    2727#include "SVGFilterPrimitiveStandardAttributes.h"
    2828
    29 namespace WebCore
    30 {
     29namespace WebCore {
     30
     31    extern char SVGKernelUnitLengthXIdentifier[];
     32    extern char SVGKernelUnitLengthYIdentifier[];
     33
    3134    class SVGColor;
    3235   
    33     class SVGFESpecularLightingElement : public SVGFilterPrimitiveStandardAttributes
    34     {
     36    class SVGFESpecularLightingElement : public SVGFilterPrimitiveStandardAttributes {
    3537    public:
    3638        SVGFESpecularLightingElement(const QualifiedName&, Document*);
     
    4143        bool build(FilterBuilder*);
    4244
    43     protected:
    44         virtual const SVGElement* contextElement() const { return this; }
    45 
    4645    private:
    47         ANIMATED_PROPERTY_DECLARATIONS(SVGFESpecularLightingElement, String, In1, in1)
    48         ANIMATED_PROPERTY_DECLARATIONS(SVGFESpecularLightingElement, float, SpecularConstant, specularConstant)
    49         ANIMATED_PROPERTY_DECLARATIONS(SVGFESpecularLightingElement, float, SpecularExponent, specularExponent)
    50         ANIMATED_PROPERTY_DECLARATIONS(SVGFESpecularLightingElement, float, SurfaceScale, surfaceScale)
    51         ANIMATED_PROPERTY_DECLARATIONS(SVGFESpecularLightingElement, float, KernelUnitLengthX, kernelUnitLengthX)
    52         ANIMATED_PROPERTY_DECLARATIONS(SVGFESpecularLightingElement, float, KernelUnitLengthY, kernelUnitLengthY)
     46        ANIMATED_PROPERTY_DECLARATIONS(SVGFESpecularLightingElement, SVGNames::feSpecularLightingTagString, SVGNames::inAttrString, String, In1, in1)
     47        ANIMATED_PROPERTY_DECLARATIONS(SVGFESpecularLightingElement, SVGNames::feSpecularLightingTagString, SVGNames::specularConstantAttrString, float, SpecularConstant, specularConstant)
     48        ANIMATED_PROPERTY_DECLARATIONS(SVGFESpecularLightingElement, SVGNames::feSpecularLightingTagString, SVGNames::specularExponentAttrString, float, SpecularExponent, specularExponent)
     49        ANIMATED_PROPERTY_DECLARATIONS(SVGFESpecularLightingElement, SVGNames::feSpecularLightingTagString, SVGNames::surfaceScaleAttrString, float, SurfaceScale, surfaceScale)
     50        ANIMATED_PROPERTY_DECLARATIONS(SVGFESpecularLightingElement, SVGNames::feSpecularLightingTagString, SVGKernelUnitLengthXIdentifier, float, KernelUnitLengthX, kernelUnitLengthX)
     51        ANIMATED_PROPERTY_DECLARATIONS(SVGFESpecularLightingElement, SVGNames::feSpecularLightingTagString, SVGKernelUnitLengthYIdentifier, float, KernelUnitLengthY, kernelUnitLengthY)
    5352
    5453        mutable RefPtr<FESpecularLighting> m_filterEffect;
  • trunk/WebCore/svg/SVGFETileElement.cpp

    r35094 r35248  
    3434SVGFETileElement::SVGFETileElement(const QualifiedName& tagName, Document* doc)
    3535    : SVGFilterPrimitiveStandardAttributes(tagName, doc)
     36    , m_in1(this, SVGNames::inAttr)
    3637    , m_filterEffect(0)
    3738{
     
    4142{
    4243}
    43 
    44 ANIMATED_PROPERTY_DEFINITIONS(SVGFETileElement, String, In1, in1, SVGNames::inAttr)
    4544
    4645void SVGFETileElement::parseMappedAttribute(MappedAttribute* attr)
     
    7473
    7574#endif // ENABLE(SVG)
    76 
    77 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGFETileElement.h

    r35094 r35248  
    2828#include "SVGFETile.h"
    2929
    30 namespace WebCore
    31 {
    32     class SVGFETileElement : public SVGFilterPrimitiveStandardAttributes
    33     {
     30namespace WebCore {
     31
     32    class SVGFETileElement : public SVGFilterPrimitiveStandardAttributes {
    3433    public:
    3534        SVGFETileElement(const QualifiedName&, Document*);
     
    4039        bool build(FilterBuilder*);
    4140
    42     protected:
    43         virtual const SVGElement* contextElement() const { return this; }
    44 
    4541    private:
    46         ANIMATED_PROPERTY_DECLARATIONS(SVGFETileElement, String, In1, in1)
     42        ANIMATED_PROPERTY_DECLARATIONS(SVGFETileElement, SVGNames::feTileTagString, SVGNames::inAttrString, String, In1, in1)
    4743
    4844        mutable RefPtr<FETile> m_filterEffect;
  • trunk/WebCore/svg/SVGFETurbulenceElement.cpp

    r35094 r35248  
    3131namespace WebCore {
    3232
     33char SVGBaseFrequencyXIdentifier[] = "SVGBaseFrequencyX";
     34char SVGBaseFrequencyYIdentifier[] = "SVGBaseFrequencyY";
     35
    3336SVGFETurbulenceElement::SVGFETurbulenceElement(const QualifiedName& tagName, Document* doc)
    3437    : SVGFilterPrimitiveStandardAttributes(tagName, doc)
    35     , m_baseFrequencyX(0.0f)
    36     , m_baseFrequencyY(0.0f)
    37     , m_numOctaves(1)
    38     , m_seed(0.0f)
    39     , m_stitchTiles(SVG_STITCHTYPE_NOSTITCH)
    40     , m_type(FETURBULENCE_TYPE_TURBULENCE)
     38    , m_baseFrequencyX(this, SVGNames::baseFrequencyAttr)
     39    , m_baseFrequencyY(this, SVGNames::baseFrequencyAttr)
     40    , m_numOctaves(this, SVGNames::numOctavesAttr, 1)
     41    , m_seed(this, SVGNames::seedAttr)
     42    , m_stitchTiles(this, SVGNames::stitchTilesAttr, SVG_STITCHTYPE_NOSTITCH)
     43    , m_type(this, SVGNames::typeAttr, FETURBULENCE_TYPE_TURBULENCE)
    4144    , m_filterEffect(0)
    4245{
     
    4649{
    4750}
    48 
    49 ANIMATED_PROPERTY_DEFINITIONS_WITH_CUSTOM_IDENTIFIER(SVGFETurbulenceElement, float, BaseFrequencyX, baseFrequencyX, SVGNames::baseFrequencyAttr, "baseFrequencyX")
    50 ANIMATED_PROPERTY_DEFINITIONS_WITH_CUSTOM_IDENTIFIER(SVGFETurbulenceElement, float, BaseFrequencyY, baseFrequencyY, SVGNames::baseFrequencyAttr, "baseFrequencyY")
    51 ANIMATED_PROPERTY_DEFINITIONS(SVGFETurbulenceElement, float, Seed, seed, SVGNames::seedAttr)
    52 ANIMATED_PROPERTY_DEFINITIONS(SVGFETurbulenceElement, long, NumOctaves, numOctaves, SVGNames::numOctavesAttr)
    53 ANIMATED_PROPERTY_DEFINITIONS(SVGFETurbulenceElement, int, StitchTiles, stitchTiles, SVGNames::stitchTilesAttr)
    54 ANIMATED_PROPERTY_DEFINITIONS(SVGFETurbulenceElement, int, Type, type, SVGNames::typeAttr)
    5551
    5652void SVGFETurbulenceElement::parseMappedAttribute(MappedAttribute* attr)
     
    9995
    10096#endif // ENABLE(SVG)
    101 
    102 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGFETurbulenceElement.h

    r35094 r35248  
    2828#include "SVGFilterPrimitiveStandardAttributes.h"
    2929
    30 namespace WebCore
    31 {
     30namespace WebCore {
     31
     32    extern char SVGBaseFrequencyXIdentifier[];
     33    extern char SVGBaseFrequencyYIdentifier[];
     34
    3235    enum SVGStitchOptions {
    3336        SVG_STITCHTYPE_UNKNOWN  = 0,
     
    3639    };
    3740
    38     class SVGFETurbulenceElement : public SVGFilterPrimitiveStandardAttributes
    39     {
     41    class SVGFETurbulenceElement : public SVGFilterPrimitiveStandardAttributes {
    4042    public:
    4143        SVGFETurbulenceElement(const QualifiedName&, Document*);
     
    4648        bool build(FilterBuilder*);
    4749
    48     protected:
    49         virtual const SVGElement* contextElement() const { return this; }
    50 
    5150    private:
    52         ANIMATED_PROPERTY_DECLARATIONS(SVGFETurbulenceElement, float, BaseFrequencyX, baseFrequencyX)
    53         ANIMATED_PROPERTY_DECLARATIONS(SVGFETurbulenceElement, float, BaseFrequencyY, baseFrequencyY)
    54         ANIMATED_PROPERTY_DECLARATIONS(SVGFETurbulenceElement, long, NumOctaves, numOctaves)
    55         ANIMATED_PROPERTY_DECLARATIONS(SVGFETurbulenceElement, float, Seed, seed)
    56         ANIMATED_PROPERTY_DECLARATIONS(SVGFETurbulenceElement, int, StitchTiles, stitchTiles)
    57         ANIMATED_PROPERTY_DECLARATIONS(SVGFETurbulenceElement, int, Type, type)
     51        ANIMATED_PROPERTY_DECLARATIONS(SVGFETurbulenceElement, SVGNames::feTurbulenceTagString, SVGBaseFrequencyXIdentifier, float, BaseFrequencyX, baseFrequencyX)
     52        ANIMATED_PROPERTY_DECLARATIONS(SVGFETurbulenceElement, SVGNames::feTurbulenceTagString, SVGBaseFrequencyYIdentifier, float, BaseFrequencyY, baseFrequencyY)
     53        ANIMATED_PROPERTY_DECLARATIONS(SVGFETurbulenceElement, SVGNames::feTurbulenceTagString, SVGNames::numOctavesAttrString, long, NumOctaves, numOctaves)
     54        ANIMATED_PROPERTY_DECLARATIONS(SVGFETurbulenceElement, SVGNames::feTurbulenceTagString, SVGNames::seedAttrString, float, Seed, seed)
     55        ANIMATED_PROPERTY_DECLARATIONS(SVGFETurbulenceElement, SVGNames::feTurbulenceTagString, SVGNames::stitchTilesAttrString, int, StitchTiles, stitchTiles)
     56        ANIMATED_PROPERTY_DECLARATIONS(SVGFETurbulenceElement, SVGNames::feTurbulenceTagString, SVGNames::typeAttrString, int, Type, type)
    5857
    5958        mutable RefPtr<FETurbulence> m_filterEffect;
     
    6463#endif // ENABLE(SVG)
    6564#endif
    66 
    67 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGFilterElement.cpp

    r35204 r35248  
    3636namespace WebCore {
    3737
     38char SVGFilterResXIdentifier[] = "SVGFilterResX";
     39char SVGFilterResYIdentifier[] = "SVGFilterResY";
     40
    3841SVGFilterElement::SVGFilterElement(const QualifiedName& tagName, Document* doc)
    3942    : SVGStyledElement(tagName, doc)
     
    4144    , SVGLangSpace()
    4245    , SVGExternalResourcesRequired()
    43     , m_filterUnits(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
    44     , m_primitiveUnits(SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE)
    45     , m_x(LengthModeWidth, "-10%")
    46     , m_y(LengthModeHeight, "-10%")
    47     , m_width(LengthModeWidth, "120%")
    48     , m_height(LengthModeHeight, "120%")
    49     , m_filterResX(0)
    50     , m_filterResY(0)
     46    , m_filterUnits(this, SVGNames::filterUnitsAttr, SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
     47    , m_primitiveUnits(this, SVGNames::primitiveUnitsAttr, SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE)
     48    , m_x(this, SVGNames::xAttr, LengthModeWidth, "-10%")
     49    , m_y(this, SVGNames::yAttr, LengthModeHeight, "-10%")
     50    , m_width(this, SVGNames::widthAttr, LengthModeWidth, "120%")
     51    , m_height(this, SVGNames::heightAttr, LengthModeHeight, "120%")
     52    , m_filterResX(this, SVGNames::filterResAttr)
     53    , m_filterResY(this, SVGNames::filterResAttr)
    5154{
    5255    // Spec: If the x/y attribute is not specified, the effect is as if a value of "-10%" were specified.
     
    5760{
    5861}
    59 
    60 ANIMATED_PROPERTY_DEFINITIONS(SVGFilterElement, int, FilterUnits, filterUnits, SVGNames::filterUnitsAttr)
    61 ANIMATED_PROPERTY_DEFINITIONS(SVGFilterElement, int, PrimitiveUnits, primitiveUnits, SVGNames::primitiveUnitsAttr)
    62 ANIMATED_PROPERTY_DEFINITIONS(SVGFilterElement, SVGLength, X, x, SVGNames::xAttr)
    63 ANIMATED_PROPERTY_DEFINITIONS(SVGFilterElement, SVGLength, Y, y, SVGNames::yAttr)
    64 ANIMATED_PROPERTY_DEFINITIONS(SVGFilterElement, SVGLength, Width, width, SVGNames::widthAttr)
    65 ANIMATED_PROPERTY_DEFINITIONS(SVGFilterElement, SVGLength, Height, height, SVGNames::heightAttr)
    66 ANIMATED_PROPERTY_DEFINITIONS_WITH_CUSTOM_IDENTIFIER(SVGFilterElement, long, FilterResX, filterResX, SVGNames::filterResAttr, "filterResX")
    67 ANIMATED_PROPERTY_DEFINITIONS_WITH_CUSTOM_IDENTIFIER(SVGFilterElement, long, FilterResY, filterResY, SVGNames::filterResAttr, "filterResY")
    6862
    6963void SVGFilterElement::setFilterRes(unsigned long, unsigned long) const
  • trunk/WebCore/svg/SVGFilterElement.h

    r35035 r35248  
    3333
    3434namespace WebCore {
    35     class SVGLength;
     35
     36    extern char SVGFilterResXIdentifier[];
     37    extern char SVGFilterResYIdentifier[];
    3638
    3739    class SVGFilterElement : public SVGStyledElement,
    3840                             public SVGURIReference,
    3941                             public SVGLangSpace,
    40                              public SVGExternalResourcesRequired
    41     {
     42                             public SVGExternalResourcesRequired {
    4243    public:
    4344        SVGFilterElement(const QualifiedName&, Document*);
     
    5556
    5657    private:
    57         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
    58         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    59  
    60         ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, int, FilterUnits, filterUnits)
    61         ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, int, PrimitiveUnits, primitiveUnits)
    62         ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, SVGLength, X, x)
    63         ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, SVGLength, Y, y)
    64         ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, SVGLength, Width, width)
    65         ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, SVGLength, Height, height)
    66         ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, long, FilterResX, filterResX)
    67         ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, long, FilterResY, filterResY)
     58        ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, SVGNames::filterTagString, SVGNames::filterUnitsAttrString, int, FilterUnits, filterUnits)
     59        ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, SVGNames::filterTagString, SVGNames::primitiveUnitsAttrString, int, PrimitiveUnits, primitiveUnits)
     60        ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, SVGNames::filterTagString, SVGNames::xAttrString, SVGLength, X, x)
     61        ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, SVGNames::filterTagString, SVGNames::yAttrString, SVGLength, Y, y)
     62        ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, SVGNames::filterTagString, SVGNames::widthAttrString, SVGLength, Width, width)
     63        ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, SVGNames::filterTagString, SVGNames::heightAttrString, SVGLength, Height, height)
     64        ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, SVGNames::filterTagString, SVGFilterResXIdentifier, long, FilterResX, filterResX)
     65        ANIMATED_PROPERTY_DECLARATIONS(SVGFilterElement, SVGNames::filterTagString, SVGFilterResYIdentifier, long, FilterResY, filterResY)
    6866
    6967        RefPtr<SVGResourceFilter> m_filter;
     
    7472#endif // ENABLE(SVG)
    7573#endif
    76 
    77 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp

    r35204 r35248  
    3535namespace WebCore {
    3636
     37char SVGFilterPrimitiveStandardAttributesIdentifierIdentifier[] = "SVGFilterPrimitiveStandardAttributesIdentifier";
     38
    3739SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes(const QualifiedName& tagName, Document* doc)
    3840    : SVGStyledElement(tagName, doc)
    39     , m_x(LengthModeWidth, "0%")
    40     , m_y(LengthModeHeight, "0%")
    41     , m_width(LengthModeWidth, "100%")
    42     , m_height(LengthModeHeight, "100%")
     41    , m_x(this, SVGNames::xAttr, LengthModeWidth, "0%")
     42    , m_y(this, SVGNames::yAttr, LengthModeHeight, "0%")
     43    , m_width(this, SVGNames::widthAttr, LengthModeWidth, "100%")
     44    , m_height(this, SVGNames::heightAttr, LengthModeHeight, "100%")
     45    , m_result(this, SVGNames::resultAttr)
    4346{
    4447    // Spec: If the x/y attribute is not specified, the effect is as if a value of "0%" were specified.
     
    4952{
    5053}
    51 
    52 ANIMATED_PROPERTY_DEFINITIONS(SVGFilterPrimitiveStandardAttributes, SVGLength, X, x, SVGNames::xAttr)
    53 ANIMATED_PROPERTY_DEFINITIONS(SVGFilterPrimitiveStandardAttributes, SVGLength, Y, y, SVGNames::yAttr)
    54 ANIMATED_PROPERTY_DEFINITIONS(SVGFilterPrimitiveStandardAttributes, SVGLength, Width, width, SVGNames::widthAttr)
    55 ANIMATED_PROPERTY_DEFINITIONS(SVGFilterPrimitiveStandardAttributes, SVGLength, Height, height, SVGNames::heightAttr)
    56 ANIMATED_PROPERTY_DEFINITIONS(SVGFilterPrimitiveStandardAttributes, String, Result, result, SVGNames::resultAttr)
    5754
    5855void SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h

    r35094 r35248  
    2929
    3030namespace WebCore {
     31
     32    extern char SVGFilterPrimitiveStandardAttributesIdentifier[];
     33
    3134    class SVGFilterEffect;
    3235    class SVGResourceFilter;
    3336
    34     class SVGFilterPrimitiveStandardAttributes : public SVGStyledElement
    35     {
     37    class SVGFilterPrimitiveStandardAttributes : public SVGStyledElement {
    3638    public:
    3739        SVGFilterPrimitiveStandardAttributes(const QualifiedName&, Document*);
     
    4648
    4749    protected:
     50        virtual const SVGElement* contextElement() const { return this; }
    4851        void setStandardAttributes(SVGFilterEffect*) const;
    4952
    50     protected:
    51         virtual const SVGElement* contextElement() const { return this; }
    52 
    5353    private:
    54         ANIMATED_PROPERTY_DECLARATIONS(SVGFilterPrimitiveStandardAttributes, SVGLength, X, x)
    55         ANIMATED_PROPERTY_DECLARATIONS(SVGFilterPrimitiveStandardAttributes, SVGLength, Y, y)
    56         ANIMATED_PROPERTY_DECLARATIONS(SVGFilterPrimitiveStandardAttributes, SVGLength, Width, width)
    57         ANIMATED_PROPERTY_DECLARATIONS(SVGFilterPrimitiveStandardAttributes, SVGLength, Height, height)
    58         ANIMATED_PROPERTY_DECLARATIONS(SVGFilterPrimitiveStandardAttributes, String, Result, result)
     54        ANIMATED_PROPERTY_DECLARATIONS(SVGFilterPrimitiveStandardAttributes, SVGFilterPrimitiveStandardAttributesIdentifier, SVGNames::xAttrString, SVGLength, X, x)
     55        ANIMATED_PROPERTY_DECLARATIONS(SVGFilterPrimitiveStandardAttributes, SVGFilterPrimitiveStandardAttributesIdentifier, SVGNames::yAttrString, SVGLength, Y, y)
     56        ANIMATED_PROPERTY_DECLARATIONS(SVGFilterPrimitiveStandardAttributes, SVGFilterPrimitiveStandardAttributesIdentifier, SVGNames::widthAttrString, SVGLength, Width, width)
     57        ANIMATED_PROPERTY_DECLARATIONS(SVGFilterPrimitiveStandardAttributes, SVGFilterPrimitiveStandardAttributesIdentifier, SVGNames::heightAttrString, SVGLength, Height, height)
     58        ANIMATED_PROPERTY_DECLARATIONS(SVGFilterPrimitiveStandardAttributes, SVGFilterPrimitiveStandardAttributesIdentifier, SVGNames::resultAttrString, String, Result, result)
    5959    };
    6060
     
    6363#endif // ENABLE(SVG)
    6464#endif
    65 
    66 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGFitToViewBox.cpp

    r35035 r35248  
    2828#include "AffineTransform.h"
    2929#include "FloatRect.h"
    30 #include "SVGDocumentExtensions.h"
    3130#include "SVGNames.h"
    3231#include "SVGParserUtilities.h"
     
    3635namespace WebCore {
    3736
     37char SVGFitToViewBoxIdentifier[] = "SVGFitToViewBox";
     38
    3839SVGFitToViewBox::SVGFitToViewBox()
    39     : m_viewBox()
    40     , m_preserveAspectRatio(SVGPreserveAspectRatio::create())
     40    : m_viewBox(this, SVGNames::viewBoxAttr)
     41    , m_preserveAspectRatio(this, SVGNames::preserveAspectRatioAttr, SVGPreserveAspectRatio::create())
    4142{
    4243}
     
    4546{
    4647}
    47 
    48 ANIMATED_PROPERTY_DEFINITIONS_WITH_CONTEXT(SVGFitToViewBox, FloatRect, ViewBox, viewBox, SVGNames::viewBoxAttr)
    49 ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED_WITH_CONTEXT(SVGFitToViewBox, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio, SVGNames::preserveAspectRatioAttr)
    5048
    5149bool SVGFitToViewBox::parseViewBox(const UChar*& c, const UChar* end, float& x, float& y, float& w, float& h, bool validate)
  • trunk/WebCore/svg/SVGFitToViewBox.h

    r35035 r35248  
    2626#if ENABLE(SVG)
    2727#include "SVGElement.h"
     28#include "SVGPreserveAspectRatio.h"
    2829
    2930namespace WebCore {
    3031
     32    extern char SVGFitToViewBoxIdentifier[];
     33
    3134    class AffineTransform;
    32     class SVGPreserveAspectRatio;
    3335
    3436    class SVGFitToViewBox {
     
    3739        virtual ~SVGFitToViewBox();
    3840
    39         // 'SVGFitToViewBox' functions
    4041        bool parseViewBox(const UChar*& start, const UChar* end, float& x, float& y, float& w, float& h, bool validate = true);
    4142        virtual AffineTransform viewBoxToViewTransform(float viewWidth, float viewHeight) const;
     
    4445        bool isKnownAttribute(const QualifiedName&);
    4546
    46     protected:
    4747        virtual const SVGElement* contextElement() const = 0;
    4848
    4949    private:
    50         ANIMATED_PROPERTY_DECLARATIONS_WITH_CONTEXT(SVGFitToViewBox, FloatRect, ViewBox, viewBox)
    51         ANIMATED_PROPERTY_DECLARATIONS_REFCOUNTED_WITH_CONTEXT(SVGFitToViewBox, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
     50        ANIMATED_PROPERTY_DECLARATIONS(SVGFitToViewBox, SVGFitToViewBoxIdentifier, SVGNames::viewBoxAttrString, FloatRect, ViewBox, viewBox)
     51        ANIMATED_PROPERTY_DECLARATIONS(SVGFitToViewBox, SVGFitToViewBoxIdentifier, SVGNames::preserveAspectRatioAttrString, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
    5252    };
    5353
  • trunk/WebCore/svg/SVGFontElement.h

    r34925 r35248  
    3939
    4040        virtual bool rendererIsNeeded(RenderStyle*) { return false; }   
    41         virtual const SVGElement* contextElement() const { return this; }
    4241
    4342        void invalidateGlyphCache();
     
    4847
    4948        SVGMissingGlyphElement* firstMissingGlyphElement() const;
     49
     50    protected:
     51        virtual const SVGElement* contextElement() const { return this; }
    5052
    5153    private:
     
    6365#endif // ENABLE(SVG_FONTS)
    6466#endif
    65 
    66 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGForeignObjectElement.cpp

    r35204 r35248  
    4040    , SVGLangSpace()
    4141    , SVGExternalResourcesRequired()
    42     , m_x(LengthModeWidth)
    43     , m_y(LengthModeHeight)
    44     , m_width(LengthModeWidth)
    45     , m_height(LengthModeHeight)
     42    , m_x(this, SVGNames::xAttr, LengthModeWidth)
     43    , m_y(this, SVGNames::yAttr, LengthModeHeight)
     44    , m_width(this, SVGNames::widthAttr, LengthModeWidth)
     45    , m_height(this, SVGNames::heightAttr, LengthModeHeight)
    4646{
    4747}
     
    5050{
    5151}
    52 
    53 ANIMATED_PROPERTY_DEFINITIONS(SVGForeignObjectElement, SVGLength, X, x, SVGNames::xAttr)
    54 ANIMATED_PROPERTY_DEFINITIONS(SVGForeignObjectElement, SVGLength, Y, y, SVGNames::yAttr)
    55 ANIMATED_PROPERTY_DEFINITIONS(SVGForeignObjectElement, SVGLength, Width, width, SVGNames::widthAttr)
    56 ANIMATED_PROPERTY_DEFINITIONS(SVGForeignObjectElement, SVGLength, Height, height, SVGNames::heightAttr)
    5752
    5853void SVGForeignObjectElement::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGForeignObjectElement.h

    r35035 r35248  
    5353
    5454    private:
    55         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    56         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
    57 
    58         ANIMATED_PROPERTY_DECLARATIONS(SVGForeignObjectElement, SVGLength, X, x)
    59         ANIMATED_PROPERTY_DECLARATIONS(SVGForeignObjectElement, SVGLength, Y, y)
    60         ANIMATED_PROPERTY_DECLARATIONS(SVGForeignObjectElement, SVGLength, Width, width)
    61         ANIMATED_PROPERTY_DECLARATIONS(SVGForeignObjectElement, SVGLength, Height, height)
     55        ANIMATED_PROPERTY_DECLARATIONS(SVGForeignObjectElement, SVGNames::foreignObjectTagString, SVGNames::xAttrString, SVGLength, X, x)
     56        ANIMATED_PROPERTY_DECLARATIONS(SVGForeignObjectElement, SVGNames::foreignObjectTagString, SVGNames::yAttrString, SVGLength, Y, y)
     57        ANIMATED_PROPERTY_DECLARATIONS(SVGForeignObjectElement, SVGNames::foreignObjectTagString, SVGNames::widthAttrString, SVGLength, Width, width)
     58        ANIMATED_PROPERTY_DECLARATIONS(SVGForeignObjectElement, SVGNames::foreignObjectTagString, SVGNames::heightAttrString, SVGLength, Height, height)
    6259    };
    6360
  • trunk/WebCore/svg/SVGGElement.h

    r34925 r35248  
    5252
    5353    private:
    54         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    55 
    56     private:
    5754        friend class SVGUseElement;
    5855        AffineTransform localMatrix() const;
  • trunk/WebCore/svg/SVGGradientElement.cpp

    r35035 r35248  
    3939namespace WebCore {
    4040
     41char SVGGradientElementIdentifier[] = "SVGGradientElement";
     42
    4143SVGGradientElement::SVGGradientElement(const QualifiedName& tagName, Document* doc)
    4244    : SVGStyledElement(tagName, doc)
    4345    , SVGURIReference()
    4446    , SVGExternalResourcesRequired()
    45     , m_spreadMethod(0)
    46     , m_gradientUnits(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
    47     , m_gradientTransform(SVGTransformList::create(SVGNames::gradientTransformAttr))
     47    , m_spreadMethod(this, SVGNames::spreadMethodAttr)
     48    , m_gradientUnits(this, SVGNames::gradientUnitsAttr, SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
     49    , m_gradientTransform(this, SVGNames::gradientTransformAttr, SVGTransformList::create(SVGNames::gradientTransformAttr))
    4850{
    4951}
     
    5254{
    5355}
    54 
    55 ANIMATED_PROPERTY_DEFINITIONS(SVGGradientElement, int, GradientUnits, gradientUnits, SVGNames::gradientUnitsAttr)
    56 ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGGradientElement, SVGTransformList, GradientTransform, gradientTransform, SVGNames::gradientTransformAttr)
    57 ANIMATED_PROPERTY_DEFINITIONS(SVGGradientElement, int, SpreadMethod, spreadMethod, SVGNames::spreadMethodAttr)
    5856
    5957void SVGGradientElement::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGGradientElement.h

    r35035 r35248  
    2828#include "SVGExternalResourcesRequired.h"
    2929#include "SVGStyledElement.h"
     30#include "SVGTransformList.h"
    3031#include "SVGURIReference.h"
    3132
    3233namespace WebCore {
    3334
    34     class SVGGradientElement;
    35     class SVGTransformList;
     35    extern char SVGGradientElementIdentifier[];
    3636
    3737    class SVGGradientElement : public SVGStyledElement,
     
    6868        mutable RefPtr<SVGPaintServerGradient> m_resource;
    6969 
     70        virtual const SVGElement* contextElement() const { return this; }
     71
    7072    protected:
    71         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
    72         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    73  
    74         ANIMATED_PROPERTY_DECLARATIONS(SVGGradientElement, int, SpreadMethod, spreadMethod)
    75         ANIMATED_PROPERTY_DECLARATIONS(SVGGradientElement, int, GradientUnits, gradientUnits)
    76         ANIMATED_PROPERTY_DECLARATIONS_REFCOUNTED(SVGGradientElement, SVGTransformList, GradientTransform, gradientTransform)
     73        ANIMATED_PROPERTY_DECLARATIONS(SVGGradientElement, SVGGradientElementIdentifier, SVGNames::spreadMethodAttrString, int, SpreadMethod, spreadMethod)
     74        ANIMATED_PROPERTY_DECLARATIONS(SVGGradientElement, SVGGradientElementIdentifier, SVGNames::gradientUnitsAttrString, int, GradientUnits, gradientUnits)
     75        ANIMATED_PROPERTY_DECLARATIONS(SVGGradientElement, SVGGradientElementIdentifier, SVGNames::gradientTransformAttrString, SVGTransformList, GradientTransform, gradientTransform)
    7776    };
    7877
  • trunk/WebCore/svg/SVGImageElement.cpp

    r35204 r35248  
    4343    , SVGExternalResourcesRequired()
    4444    , SVGURIReference()
    45     , m_x(LengthModeWidth)
    46     , m_y(LengthModeHeight)
    47     , m_width(LengthModeWidth)
    48     , m_height(LengthModeHeight)
    49     , m_preserveAspectRatio(SVGPreserveAspectRatio::create())
     45    , m_x(this, SVGNames::xAttr, LengthModeWidth)
     46    , m_y(this, SVGNames::yAttr, LengthModeHeight)
     47    , m_width(this, SVGNames::widthAttr, LengthModeWidth)
     48    , m_height(this, SVGNames::heightAttr, LengthModeHeight)
     49    , m_preserveAspectRatio(this, SVGNames::preserveAspectRatioAttr, SVGPreserveAspectRatio::create())
    5050    , m_imageLoader(this)
    5151{
     
    5656}
    5757
    58 ANIMATED_PROPERTY_DEFINITIONS(SVGImageElement, SVGLength, X, x, SVGNames::xAttr)
    59 ANIMATED_PROPERTY_DEFINITIONS(SVGImageElement, SVGLength, Y, y, SVGNames::yAttr)
    60 ANIMATED_PROPERTY_DEFINITIONS(SVGImageElement, SVGLength, Width, width, SVGNames::widthAttr)
    61 ANIMATED_PROPERTY_DEFINITIONS(SVGImageElement, SVGLength, Height, height, SVGNames::heightAttr)
    62 ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGImageElement, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio, SVGNames::preserveAspectRatioAttr)
    63  
    6458void SVGImageElement::parseMappedAttribute(MappedAttribute *attr)
    6559{
  • trunk/WebCore/svg/SVGImageElement.h

    r35035 r35248  
    3131#include "SVGTests.h"
    3232#include "SVGURIReference.h"
     33#include "SVGPreserveAspectRatio.h"
    3334
    3435namespace WebCore {
    3536
    36     class SVGPreserveAspectRatio;
    3737    class SVGLength;
    3838
     
    5959    protected:
    6060        virtual bool haveLoadedRequiredResources();
    61        
    6261        virtual bool hasRelativeValues() const;
    63 
    64     protected:
    6562        virtual const SVGElement* contextElement() const { return this; }
    6663
    6764    private:
    68         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    69         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
    70 
    71         ANIMATED_PROPERTY_DECLARATIONS(SVGImageElement, SVGLength, X, x)
    72         ANIMATED_PROPERTY_DECLARATIONS(SVGImageElement, SVGLength, Y, y)
    73         ANIMATED_PROPERTY_DECLARATIONS(SVGImageElement, SVGLength, Width, width)
    74         ANIMATED_PROPERTY_DECLARATIONS(SVGImageElement, SVGLength, Height, height)
    75         ANIMATED_PROPERTY_DECLARATIONS_REFCOUNTED(SVGImageElement, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
     65        ANIMATED_PROPERTY_DECLARATIONS(SVGImageElement, SVGNames::imageTagString, SVGNames::xAttrString, SVGLength, X, x)
     66        ANIMATED_PROPERTY_DECLARATIONS(SVGImageElement, SVGNames::imageTagString, SVGNames::yAttrString, SVGLength, Y, y)
     67        ANIMATED_PROPERTY_DECLARATIONS(SVGImageElement, SVGNames::imageTagString, SVGNames::widthAttrString, SVGLength, Width, width)
     68        ANIMATED_PROPERTY_DECLARATIONS(SVGImageElement, SVGNames::imageTagString, SVGNames::heightAttrString, SVGLength, Height, height)
     69        ANIMATED_PROPERTY_DECLARATIONS(SVGImageElement, SVGNames::imageTagString, SVGNames::preserveAspectRatioAttrString, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
    7670
    7771        SVGImageLoader m_imageLoader;
  • trunk/WebCore/svg/SVGLineElement.cpp

    r35204 r35248  
    3838    , SVGLangSpace()
    3939    , SVGExternalResourcesRequired()
    40     , m_x1(LengthModeWidth)
    41     , m_y1(LengthModeHeight)
    42     , m_x2(LengthModeWidth)
    43     , m_y2(LengthModeHeight)
     40    , m_x1(this, SVGNames::x1Attr, LengthModeWidth)
     41    , m_y1(this, SVGNames::y1Attr, LengthModeHeight)
     42    , m_x2(this, SVGNames::x2Attr, LengthModeWidth)
     43    , m_y2(this, SVGNames::y2Attr, LengthModeHeight)
    4444{
    4545}
     
    4848{
    4949}
    50 
    51 ANIMATED_PROPERTY_DEFINITIONS(SVGLineElement, SVGLength, X1, x1, SVGNames::x1Attr)
    52 ANIMATED_PROPERTY_DEFINITIONS(SVGLineElement, SVGLength, Y1, y1, SVGNames::y1Attr)
    53 ANIMATED_PROPERTY_DEFINITIONS(SVGLineElement, SVGLength, X2, x2, SVGNames::x2Attr)
    54 ANIMATED_PROPERTY_DEFINITIONS(SVGLineElement, SVGLength, Y2, y2, SVGNames::y2Attr)
    5550
    5651void SVGLineElement::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGLineElement.h

    r35035 r35248  
    5656
    5757    private:
    58         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    59  
    60         ANIMATED_PROPERTY_DECLARATIONS(SVGLineElement, SVGLength, X1, x1)
    61         ANIMATED_PROPERTY_DECLARATIONS(SVGLineElement, SVGLength, Y1, y1)
    62         ANIMATED_PROPERTY_DECLARATIONS(SVGLineElement, SVGLength, X2, x2)
    63         ANIMATED_PROPERTY_DECLARATIONS(SVGLineElement, SVGLength, Y2, y2)
     58        ANIMATED_PROPERTY_DECLARATIONS(SVGLineElement, SVGNames::lineTagString, SVGNames::x1AttrString, SVGLength, X1, x1)
     59        ANIMATED_PROPERTY_DECLARATIONS(SVGLineElement, SVGNames::lineTagString, SVGNames::y1AttrString, SVGLength, Y1, y1)
     60        ANIMATED_PROPERTY_DECLARATIONS(SVGLineElement, SVGNames::lineTagString, SVGNames::x2AttrString, SVGLength, X2, x2)
     61        ANIMATED_PROPERTY_DECLARATIONS(SVGLineElement, SVGNames::lineTagString, SVGNames::y2AttrString, SVGLength, Y2, y2)
    6462    };
    6563
  • trunk/WebCore/svg/SVGLinearGradientElement.cpp

    r35204 r35248  
    3939SVGLinearGradientElement::SVGLinearGradientElement(const QualifiedName& tagName, Document* doc)
    4040    : SVGGradientElement(tagName, doc)
    41     , m_x1(LengthModeWidth)
    42     , m_y1(LengthModeHeight)
    43     , m_x2(LengthModeWidth, "100%")
    44     , m_y2(LengthModeHeight)
     41    , m_x1(this, SVGNames::x1Attr, LengthModeWidth)
     42    , m_y1(this, SVGNames::y1Attr, LengthModeHeight)
     43    , m_x2(this, SVGNames::x2Attr, LengthModeWidth, "100%")
     44    , m_y2(this, SVGNames::y2Attr, LengthModeHeight)
    4545{
    4646    // Spec: If the x2 attribute is not specified, the effect is as if a value of "100%" were specified.
     
    5050{
    5151}
    52 
    53 ANIMATED_PROPERTY_DEFINITIONS(SVGLinearGradientElement, SVGLength, X1, x1, SVGNames::x1Attr)
    54 ANIMATED_PROPERTY_DEFINITIONS(SVGLinearGradientElement, SVGLength, Y1, y1, SVGNames::y1Attr)
    55 ANIMATED_PROPERTY_DEFINITIONS(SVGLinearGradientElement, SVGLength, X2, x2, SVGNames::x2Attr)
    56 ANIMATED_PROPERTY_DEFINITIONS(SVGLinearGradientElement, SVGLength, Y2, y2, SVGNames::y2Attr)
    5752
    5853void SVGLinearGradientElement::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGLinearGradientElement.h

    r35035 r35248  
    4646        LinearGradientAttributes collectGradientProperties() const;
    4747
    48     protected:
    49         virtual const SVGElement* contextElement() const { return this; }
    50 
    5148    private:
    52         ANIMATED_PROPERTY_DECLARATIONS(SVGLinearGradientElement, SVGLength, X1, x1)
    53         ANIMATED_PROPERTY_DECLARATIONS(SVGLinearGradientElement, SVGLength, Y1, y1)
    54         ANIMATED_PROPERTY_DECLARATIONS(SVGLinearGradientElement, SVGLength, X2, x2)
    55         ANIMATED_PROPERTY_DECLARATIONS(SVGLinearGradientElement, SVGLength, Y2, y2)
     49        ANIMATED_PROPERTY_DECLARATIONS(SVGLinearGradientElement, SVGNames::linearGradientTagString, SVGNames::x1AttrString, SVGLength, X1, x1)
     50        ANIMATED_PROPERTY_DECLARATIONS(SVGLinearGradientElement, SVGNames::linearGradientTagString, SVGNames::y1AttrString, SVGLength, Y1, y1)
     51        ANIMATED_PROPERTY_DECLARATIONS(SVGLinearGradientElement, SVGNames::linearGradientTagString, SVGNames::x2AttrString, SVGLength, X2, x2)
     52        ANIMATED_PROPERTY_DECLARATIONS(SVGLinearGradientElement, SVGNames::linearGradientTagString, SVGNames::y2AttrString, SVGLength, Y2, y2)
    5653    };
    5754
  • trunk/WebCore/svg/SVGMarkerElement.cpp

    r35204 r35248  
    3535namespace WebCore {
    3636
     37char SVGOrientTypeAttrIdentifier[] = "SVGOrientTypeAttr";
     38char SVGOrientAngleAttrIdentifier[] = "SVGOrientAngleAttr";
     39
    3740SVGMarkerElement::SVGMarkerElement(const QualifiedName& tagName, Document* doc)
    3841    : SVGStyledElement(tagName, doc)
     
    4043    , SVGExternalResourcesRequired()
    4144    , SVGFitToViewBox()
    42     , m_refX(LengthModeWidth)
    43     , m_refY(LengthModeHeight)
    44     , m_markerWidth(LengthModeWidth, "3")
    45     , m_markerHeight(LengthModeHeight, "3")
    46     , m_markerUnits(SVG_MARKERUNITS_STROKEWIDTH)
    47     , m_orientType(0)
    48     , m_orientAngle(SVGAngle::create())
     45    , m_refX(this, SVGNames::refXAttr, LengthModeWidth)
     46    , m_refY(this, SVGNames::refYAttr, LengthModeHeight)
     47    , m_markerWidth(this, SVGNames::markerWidthAttr, LengthModeWidth, "3")
     48    , m_markerHeight(this, SVGNames::markerHeightAttr, LengthModeHeight, "3")
     49    , m_markerUnits(this, SVGNames::markerUnitsAttr, SVG_MARKERUNITS_STROKEWIDTH)
     50    , m_orientType(this, SVGNames::orientAttr)
     51    , m_orientAngle(this, SVGNames::orientAttr, SVGAngle::create())
    4952{
    5053    // Spec: If the markerWidth/markerHeight attribute is not specified, the effect is as if a value of "3" were specified.
     
    5457{
    5558}
    56 
    57 ANIMATED_PROPERTY_DEFINITIONS(SVGMarkerElement, SVGLength, RefX, refX, SVGNames::refXAttr)
    58 ANIMATED_PROPERTY_DEFINITIONS(SVGMarkerElement, SVGLength, RefY, refY, SVGNames::refYAttr)
    59 ANIMATED_PROPERTY_DEFINITIONS(SVGMarkerElement, int, MarkerUnits, markerUnits, SVGNames::markerUnitsAttr)
    60 ANIMATED_PROPERTY_DEFINITIONS(SVGMarkerElement, SVGLength, MarkerWidth, markerWidth, SVGNames::markerWidthAttr)
    61 ANIMATED_PROPERTY_DEFINITIONS(SVGMarkerElement, SVGLength, MarkerHeight, markerHeight, SVGNames::markerHeightAttr)
    62 ANIMATED_PROPERTY_DEFINITIONS_WITH_CUSTOM_IDENTIFIER(SVGMarkerElement, int, OrientType, orientType, SVGNames::orientAttr, "orientType")
    63 ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED_WITH_CUSTOM_IDENTIFIER(SVGMarkerElement, SVGAngle, OrientAngle, orientAngle, SVGNames::orientAttr, "orientAngle")
    6459
    6560void SVGMarkerElement::parseMappedAttribute(MappedAttribute* attr)
     
    148143    // Spec: If the attribute is not specified, the effect is as if a
    149144    // value of "0" were specified.
    150     if (!m_orientType)
     145    if (!orientType())
    151146        setOrientToAngle(SVGSVGElement::createSVGAngle());
    152147
  • trunk/WebCore/svg/SVGMarkerElement.h

    r35035 r35248  
    3636    class SVGAngle;
    3737
     38    extern char SVGOrientTypeAttrIdentifier[];
     39    extern char SVGOrientAngleAttrIdentifier[];
     40
    3841    class SVGMarkerElement : public SVGStyledElement,
    3942                             public SVGLangSpace,
     
    7073
    7174    private:
    72         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    73         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGFitToViewBox, FloatRect, ViewBox, viewBox)
    74         ANIMATED_PROPERTY_FORWARD_DECLARATIONS_REFCOUNTED(SVGFitToViewBox, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
    75 
    76         ANIMATED_PROPERTY_DECLARATIONS(SVGMarkerElement, SVGLength, RefX, refX)
    77         ANIMATED_PROPERTY_DECLARATIONS(SVGMarkerElement, SVGLength, RefY, refY)
    78         ANIMATED_PROPERTY_DECLARATIONS(SVGMarkerElement, SVGLength, MarkerWidth, markerWidth)
    79         ANIMATED_PROPERTY_DECLARATIONS(SVGMarkerElement, SVGLength, MarkerHeight, markerHeight)
    80         ANIMATED_PROPERTY_DECLARATIONS(SVGMarkerElement, int, MarkerUnits, markerUnits)
    81         ANIMATED_PROPERTY_DECLARATIONS(SVGMarkerElement, int, OrientType, orientType)
    82         ANIMATED_PROPERTY_DECLARATIONS_REFCOUNTED(SVGMarkerElement, SVGAngle, OrientAngle, orientAngle)
     75        ANIMATED_PROPERTY_DECLARATIONS(SVGMarkerElement, SVGNames::markerTagString, SVGNames::refXAttrString, SVGLength, RefX, refX)
     76        ANIMATED_PROPERTY_DECLARATIONS(SVGMarkerElement, SVGNames::markerTagString, SVGNames::refYAttrString, SVGLength, RefY, refY)
     77        ANIMATED_PROPERTY_DECLARATIONS(SVGMarkerElement, SVGNames::markerTagString, SVGNames::markerWidthAttrString, SVGLength, MarkerWidth, markerWidth)
     78        ANIMATED_PROPERTY_DECLARATIONS(SVGMarkerElement, SVGNames::markerTagString, SVGNames::markerHeightAttrString, SVGLength, MarkerHeight, markerHeight)
     79        ANIMATED_PROPERTY_DECLARATIONS(SVGMarkerElement, SVGNames::markerTagString, SVGNames::markerUnitsAttrString, int, MarkerUnits, markerUnits)
     80        ANIMATED_PROPERTY_DECLARATIONS(SVGMarkerElement, SVGNames::markerTagString, SVGOrientTypeAttrIdentifier, int, OrientType, orientType)
     81        ANIMATED_PROPERTY_DECLARATIONS(SVGMarkerElement, SVGNames::markerTagString, SVGOrientAngleAttrIdentifier, SVGAngle, OrientAngle, orientAngle)
    8382
    8483        RefPtr<SVGResourceMarker> m_marker;
     
    8887
    8988#endif // ENABLE(SVG)
    90 
    9189#endif
  • trunk/WebCore/svg/SVGMaskElement.cpp

    r35204 r35248  
    4949    , SVGLangSpace()
    5050    , SVGExternalResourcesRequired()
    51     , m_maskUnits(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
    52     , m_maskContentUnits(SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE)
    53     , m_x(LengthModeWidth, "-10%")
    54     , m_y(LengthModeHeight, "-10%")
    55     , m_width(LengthModeWidth, "120%")
    56     , m_height(LengthModeHeight, "120%")
     51    , m_maskUnits(this, SVGNames::maskUnitsAttr, SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
     52    , m_maskContentUnits(this, SVGNames::maskContentUnitsAttr, SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE)
     53    , m_x(this, SVGNames::xAttr, LengthModeWidth, "-10%")
     54    , m_y(this, SVGNames::yAttr, LengthModeHeight, "-10%")
     55    , m_width(this, SVGNames::widthAttr, LengthModeWidth, "120%")
     56    , m_height(this, SVGNames::heightAttr, LengthModeHeight, "120%")
    5757{
    5858    // Spec: If the x/y attribute is not specified, the effect is as if a value of "-10%" were specified.
     
    6363{
    6464}
    65 
    66 ANIMATED_PROPERTY_DEFINITIONS(SVGMaskElement, int, MaskUnits, maskUnits, SVGNames::maskUnitsAttr)
    67 ANIMATED_PROPERTY_DEFINITIONS(SVGMaskElement, int, MaskContentUnits, maskContentUnits, SVGNames::maskContentUnitsAttr)
    68 ANIMATED_PROPERTY_DEFINITIONS(SVGMaskElement, SVGLength, X, x, SVGNames::xAttr)
    69 ANIMATED_PROPERTY_DEFINITIONS(SVGMaskElement, SVGLength, Y, y, SVGNames::yAttr)
    70 ANIMATED_PROPERTY_DEFINITIONS(SVGMaskElement, SVGLength, Width, width, SVGNames::widthAttr)
    71 ANIMATED_PROPERTY_DEFINITIONS(SVGMaskElement, SVGLength, Height, height, SVGNames::heightAttr)
    7265
    7366void SVGMaskElement::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGMaskElement.h

    r35035 r35248  
    5555
    5656    protected:
    57         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
    58         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    59            
    60         ANIMATED_PROPERTY_DECLARATIONS(SVGMaskElement, int, MaskUnits, maskUnits)
    61         ANIMATED_PROPERTY_DECLARATIONS(SVGMaskElement, int, MaskContentUnits, maskContentUnits)
    62  
    63         ANIMATED_PROPERTY_DECLARATIONS(SVGMaskElement, SVGLength, X, x)
    64         ANIMATED_PROPERTY_DECLARATIONS(SVGMaskElement, SVGLength, Y, y)
    65         ANIMATED_PROPERTY_DECLARATIONS(SVGMaskElement, SVGLength, Width, width)
    66         ANIMATED_PROPERTY_DECLARATIONS(SVGMaskElement, SVGLength, Height, height)
    67 
    6857        virtual const SVGElement* contextElement() const { return this; }
    6958
    7059    private:
     60        ANIMATED_PROPERTY_DECLARATIONS(SVGMaskElement, SVGNames::maskTagString, SVGNames::maskUnitsAttrString, int, MaskUnits, maskUnits)
     61        ANIMATED_PROPERTY_DECLARATIONS(SVGMaskElement, SVGNames::maskTagString, SVGNames::maskContentUnitsAttrString, int, MaskContentUnits, maskContentUnits)
     62        ANIMATED_PROPERTY_DECLARATIONS(SVGMaskElement, SVGNames::maskTagString, SVGNames::xAttrString, SVGLength, X, x)
     63        ANIMATED_PROPERTY_DECLARATIONS(SVGMaskElement, SVGNames::maskTagString, SVGNames::yAttrString, SVGLength, Y, y)
     64        ANIMATED_PROPERTY_DECLARATIONS(SVGMaskElement, SVGNames::maskTagString, SVGNames::widthAttrString, SVGLength, Width, width)
     65        ANIMATED_PROPERTY_DECLARATIONS(SVGMaskElement, SVGNames::maskTagString, SVGNames::heightAttrString, SVGLength, Height, height)
     66
    7167        RefPtr<SVGResourceMasker> m_masker;
    7268    };
  • trunk/WebCore/svg/SVGPathElement.cpp

    r35035 r35248  
    4949    , SVGLangSpace()
    5050    , SVGExternalResourcesRequired()
    51     , m_pathLength(0.0f)
     51    , m_pathLength(this, SVGNames::pathLengthAttr, 0.0f)
    5252{
    5353}
     
    5656{
    5757}
    58 
    59 ANIMATED_PROPERTY_DEFINITIONS(SVGPathElement, float, PathLength, pathLength, SVGNames::pathLengthAttr)
    6058
    6159float SVGPathElement::getTotalLength()
     
    180178            document()->accessSVGExtensions()->reportError("Problem parsing d=\"" + attr->value() + "\"");
    181179    } else if (attr->name() == SVGNames::pathLengthAttr) {
    182         m_pathLength = attr->value().toFloat();
    183         if (m_pathLength < 0.0f)
     180        setPathLengthBaseValue(attr->value().toFloat());
     181        if (pathLengthBaseValue() < 0.0f)
    184182            document()->accessSVGExtensions()->reportError("A negative value for path attribute <pathLength> is not allowed");
    185183    } else {
  • trunk/WebCore/svg/SVGPathElement.h

    r35035 r35248  
    107107        mutable RefPtr<SVGPathSegList> m_pathSegList;
    108108
    109         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    110  
    111         ANIMATED_PROPERTY_DECLARATIONS(SVGPathElement, float, PathLength, pathLength)
     109        ANIMATED_PROPERTY_DECLARATIONS(SVGPathElement, SVGNames::pathTagString, SVGNames::pathLengthAttrString, float, PathLength, pathLength)
    112110    };
    113111
  • trunk/WebCore/svg/SVGPatternElement.cpp

    r35204 r35248  
    5858    , SVGExternalResourcesRequired()
    5959    , SVGFitToViewBox()
    60     , m_x(LengthModeWidth)
    61     , m_y(LengthModeHeight)
    62     , m_width(LengthModeWidth)
    63     , m_height(LengthModeHeight)
    64     , m_patternUnits(SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
    65     , m_patternContentUnits(SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE)
    66     , m_patternTransform(SVGTransformList::create(SVGNames::patternTransformAttr))
     60    , m_x(this, SVGNames::xAttr, LengthModeWidth)
     61    , m_y(this, SVGNames::yAttr, LengthModeHeight)
     62    , m_width(this, SVGNames::widthAttr, LengthModeWidth)
     63    , m_height(this, SVGNames::heightAttr, LengthModeHeight)
     64    , m_patternUnits(this, SVGNames::patternUnitsAttr, SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)
     65    , m_patternContentUnits(this, SVGNames::patternContentUnitsAttr, SVGUnitTypes::SVG_UNIT_TYPE_USERSPACEONUSE)
     66    , m_patternTransform(this, SVGNames::patternTransformAttr, SVGTransformList::create(SVGNames::patternTransformAttr))
    6767{
    6868}
     
    7171{
    7272}
    73 
    74 ANIMATED_PROPERTY_DEFINITIONS(SVGPatternElement, int, PatternUnits, patternUnits, SVGNames::patternUnitsAttr)
    75 ANIMATED_PROPERTY_DEFINITIONS(SVGPatternElement, int, PatternContentUnits, patternContentUnits, SVGNames::patternContentUnitsAttr)
    76 ANIMATED_PROPERTY_DEFINITIONS(SVGPatternElement, SVGLength, X, x, SVGNames::xAttr)
    77 ANIMATED_PROPERTY_DEFINITIONS(SVGPatternElement, SVGLength, Y, y, SVGNames::yAttr)
    78 ANIMATED_PROPERTY_DEFINITIONS(SVGPatternElement, SVGLength, Width, width, SVGNames::widthAttr)
    79 ANIMATED_PROPERTY_DEFINITIONS(SVGPatternElement, SVGLength, Height, height, SVGNames::heightAttr)
    80 ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGPatternElement, SVGTransformList, PatternTransform, patternTransform, SVGNames::patternTransformAttr)
    8173
    8274void SVGPatternElement::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGPatternElement.h

    r35035 r35248  
    2525
    2626#if ENABLE(SVG)
    27 #include "SVGPaintServerPattern.h"
    2827#include "SVGExternalResourcesRequired.h"
    2928#include "SVGFitToViewBox.h"
    3029#include "SVGLangSpace.h"
     30#include "SVGPaintServerPattern.h"
    3131#include "SVGStyledElement.h"
    3232#include "SVGTests.h"
     33#include "SVGTransformList.h"
    3334#include "SVGURIReference.h"
    34 
    3535
    3636namespace WebCore {
     
    3939 
    4040    class SVGLength;
    41     class SVGTransformList;
    4241
    4342    class SVGPatternElement : public SVGStyledElement,
     
    6160
    6261    protected:
    63         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
    64         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    65         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGFitToViewBox, FloatRect, ViewBox, viewBox)
    66         ANIMATED_PROPERTY_FORWARD_DECLARATIONS_REFCOUNTED(SVGFitToViewBox, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
     62        virtual const SVGElement* contextElement() const { return this; }
    6763
    68         ANIMATED_PROPERTY_DECLARATIONS(SVGPatternElement, SVGLength, X, x)
    69         ANIMATED_PROPERTY_DECLARATIONS(SVGPatternElement, SVGLength, Y, y)
    70         ANIMATED_PROPERTY_DECLARATIONS(SVGPatternElement, SVGLength, Width, width)
    71         ANIMATED_PROPERTY_DECLARATIONS(SVGPatternElement, SVGLength, Height, height)
    72         ANIMATED_PROPERTY_DECLARATIONS(SVGPatternElement, int, PatternUnits, patternUnits)
    73         ANIMATED_PROPERTY_DECLARATIONS(SVGPatternElement, int, PatternContentUnits, patternContentUnits)
    74         ANIMATED_PROPERTY_DECLARATIONS_REFCOUNTED(SVGPatternElement, SVGTransformList, PatternTransform, patternTransform)
     64    private:
     65        ANIMATED_PROPERTY_DECLARATIONS(SVGPatternElement, SVGNames::patternTagString, SVGNames::xAttrString, SVGLength, X, x)
     66        ANIMATED_PROPERTY_DECLARATIONS(SVGPatternElement, SVGNames::patternTagString, SVGNames::yAttrString, SVGLength, Y, y)
     67        ANIMATED_PROPERTY_DECLARATIONS(SVGPatternElement, SVGNames::patternTagString, SVGNames::widthAttrString, SVGLength, Width, width)
     68        ANIMATED_PROPERTY_DECLARATIONS(SVGPatternElement, SVGNames::patternTagString, SVGNames::heightAttrString, SVGLength, Height, height)
     69        ANIMATED_PROPERTY_DECLARATIONS(SVGPatternElement, SVGNames::patternTagString, SVGNames::patternUnitsAttrString, int, PatternUnits, patternUnits)
     70        ANIMATED_PROPERTY_DECLARATIONS(SVGPatternElement, SVGNames::patternTagString, SVGNames::patternContentUnitsAttrString, int, PatternContentUnits, patternContentUnits)
     71        ANIMATED_PROPERTY_DECLARATIONS(SVGPatternElement, SVGNames::patternTagString, SVGNames::patternTransformAttrString, SVGTransformList, PatternTransform, patternTransform)
    7572
    7673        mutable RefPtr<SVGPaintServerPattern> m_resource;
    77 
    78         virtual const SVGElement* contextElement() const { return this; }
    7974
    8075    private:
  • trunk/WebCore/svg/SVGPolyElement.h

    r34925 r35248  
    5959        bool m_ignoreAttributeChanges : 1;
    6060        mutable RefPtr<SVGPointList> m_points;
    61 
    62         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    6361    };
    6462
  • trunk/WebCore/svg/SVGPreserveAspectRatio.cpp

    r35034 r35248  
    2626#include "SVGPreserveAspectRatio.h"
    2727
     28#include "AffineTransform.h"
    2829#include "SVGParserUtilities.h"
    2930#include "SVGSVGElement.h"
  • trunk/WebCore/svg/SVGRadialGradientElement.cpp

    r35204 r35248  
    4242SVGRadialGradientElement::SVGRadialGradientElement(const QualifiedName& tagName, Document* doc)
    4343    : SVGGradientElement(tagName, doc)
    44     , m_cx(LengthModeWidth, "50%")
    45     , m_cy(LengthModeHeight, "50%")
    46     , m_r(LengthModeOther, "50%")
    47     , m_fx(LengthModeWidth)
    48     , m_fy(LengthModeHeight)
     44    , m_cx(this, SVGNames::cxAttr, LengthModeWidth, "50%")
     45    , m_cy(this, SVGNames::cyAttr, LengthModeHeight, "50%")
     46    , m_r(this, SVGNames::rAttr, LengthModeOther, "50%")
     47    , m_fx(this, SVGNames::fxAttr, LengthModeWidth)
     48    , m_fy(this, SVGNames::fyAttr, LengthModeHeight)
    4949{
    5050    // Spec: If the cx/cy/r attribute is not specified, the effect is as if a value of "50%" were specified.
     
    5454{
    5555}
    56 
    57 ANIMATED_PROPERTY_DEFINITIONS(SVGRadialGradientElement, SVGLength, Cx, cx, SVGNames::cxAttr)
    58 ANIMATED_PROPERTY_DEFINITIONS(SVGRadialGradientElement, SVGLength, Cy, cy, SVGNames::cyAttr)
    59 ANIMATED_PROPERTY_DEFINITIONS(SVGRadialGradientElement, SVGLength, Fx, fx, SVGNames::fxAttr)
    60 ANIMATED_PROPERTY_DEFINITIONS(SVGRadialGradientElement, SVGLength, Fy, fy, SVGNames::fyAttr)
    61 ANIMATED_PROPERTY_DEFINITIONS(SVGRadialGradientElement, SVGLength, R, r, SVGNames::rAttr)
    6256
    6357void SVGRadialGradientElement::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGRadialGradientElement.h

    r35035 r35248  
    4646        RadialGradientAttributes collectGradientProperties() const;
    4747
    48     protected:
    49         virtual const SVGElement* contextElement() const { return this; }
    50 
    5148    private:
    52         ANIMATED_PROPERTY_DECLARATIONS(SVGRadialGradientElement, SVGLength, Cx, cx)
    53         ANIMATED_PROPERTY_DECLARATIONS(SVGRadialGradientElement, SVGLength, Cy, cy)
    54         ANIMATED_PROPERTY_DECLARATIONS(SVGRadialGradientElement, SVGLength, R, r)
    55         ANIMATED_PROPERTY_DECLARATIONS(SVGRadialGradientElement, SVGLength, Fx, fx)
    56         ANIMATED_PROPERTY_DECLARATIONS(SVGRadialGradientElement, SVGLength, Fy, fy)
     49        ANIMATED_PROPERTY_DECLARATIONS(SVGRadialGradientElement, SVGNames::radialGradientTagString, SVGNames::cxAttrString, SVGLength, Cx, cx)
     50        ANIMATED_PROPERTY_DECLARATIONS(SVGRadialGradientElement, SVGNames::radialGradientTagString, SVGNames::cyAttrString, SVGLength, Cy, cy)
     51        ANIMATED_PROPERTY_DECLARATIONS(SVGRadialGradientElement, SVGNames::radialGradientTagString, SVGNames::rAttrString, SVGLength, R, r)
     52        ANIMATED_PROPERTY_DECLARATIONS(SVGRadialGradientElement, SVGNames::radialGradientTagString, SVGNames::fxAttrString, SVGLength, Fx, fx)
     53        ANIMATED_PROPERTY_DECLARATIONS(SVGRadialGradientElement, SVGNames::radialGradientTagString, SVGNames::fyAttrString, SVGLength, Fy, fy)
    5754    };
    5855
  • trunk/WebCore/svg/SVGRectElement.cpp

    r35204 r35248  
    3737    , SVGLangSpace()
    3838    , SVGExternalResourcesRequired()
    39     , m_x(LengthModeWidth)
    40     , m_y(LengthModeHeight)
    41     , m_width(LengthModeWidth)
    42     , m_height(LengthModeHeight)
    43     , m_rx(LengthModeWidth)
    44     , m_ry(LengthModeHeight)
     39    , m_x(this, SVGNames::xAttr, LengthModeWidth)
     40    , m_y(this, SVGNames::yAttr, LengthModeHeight)
     41    , m_width(this, SVGNames::widthAttr, LengthModeWidth)
     42    , m_height(this, SVGNames::heightAttr, LengthModeHeight)
     43    , m_rx(this, SVGNames::rxAttr, LengthModeWidth)
     44    , m_ry(this, SVGNames::ryAttr, LengthModeHeight)
    4545{
    4646}
     
    4949{
    5050}
    51 
    52 ANIMATED_PROPERTY_DEFINITIONS(SVGRectElement, SVGLength, X, x, SVGNames::xAttr)
    53 ANIMATED_PROPERTY_DEFINITIONS(SVGRectElement, SVGLength, Y, y, SVGNames::yAttr)
    54 ANIMATED_PROPERTY_DEFINITIONS(SVGRectElement, SVGLength, Width, width, SVGNames::widthAttr)
    55 ANIMATED_PROPERTY_DEFINITIONS(SVGRectElement, SVGLength, Height, height, SVGNames::heightAttr)
    56 ANIMATED_PROPERTY_DEFINITIONS(SVGRectElement, SVGLength, Rx, rx, SVGNames::rxAttr)
    57 ANIMATED_PROPERTY_DEFINITIONS(SVGRectElement, SVGLength, Ry, ry, SVGNames::ryAttr)
    5851
    5952void SVGRectElement::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGRectElement.h

    r35035 r35248  
    5252
    5353    private:
    54         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    55 
    56         ANIMATED_PROPERTY_DECLARATIONS(SVGRectElement, SVGLength, X, x)
    57         ANIMATED_PROPERTY_DECLARATIONS(SVGRectElement, SVGLength, Y, y)
    58         ANIMATED_PROPERTY_DECLARATIONS(SVGRectElement, SVGLength, Width, width)
    59         ANIMATED_PROPERTY_DECLARATIONS(SVGRectElement, SVGLength, Height, height)
    60         ANIMATED_PROPERTY_DECLARATIONS(SVGRectElement, SVGLength, Rx, rx)
    61         ANIMATED_PROPERTY_DECLARATIONS(SVGRectElement, SVGLength, Ry, ry)
     54        ANIMATED_PROPERTY_DECLARATIONS(SVGRectElement, SVGNames::rectTagString, SVGNames::xAttrString, SVGLength, X, x)
     55        ANIMATED_PROPERTY_DECLARATIONS(SVGRectElement, SVGNames::rectTagString, SVGNames::yAttrString, SVGLength, Y, y)
     56        ANIMATED_PROPERTY_DECLARATIONS(SVGRectElement, SVGNames::rectTagString, SVGNames::widthAttrString, SVGLength, Width, width)
     57        ANIMATED_PROPERTY_DECLARATIONS(SVGRectElement, SVGNames::rectTagString, SVGNames::heightAttrString, SVGLength, Height, height)
     58        ANIMATED_PROPERTY_DECLARATIONS(SVGRectElement, SVGNames::rectTagString, SVGNames::rxAttrString, SVGLength, Rx, rx)
     59        ANIMATED_PROPERTY_DECLARATIONS(SVGRectElement, SVGNames::rectTagString, SVGNames::ryAttrString, SVGLength, Ry, ry)
    6260    };
    6361
  • trunk/WebCore/svg/SVGSVGElement.cpp

    r35204 r35248  
    6262    , SVGFitToViewBox()
    6363    , SVGZoomAndPan()
    64     , m_x(LengthModeWidth)
    65     , m_y(LengthModeHeight)
    66     , m_width(LengthModeWidth, "100%")
    67     , m_height(LengthModeHeight, "100%")
     64    , m_x(this, SVGNames::xAttr, LengthModeWidth)
     65    , m_y(this, SVGNames::yAttr, LengthModeHeight)
     66    , m_width(this, SVGNames::widthAttr, LengthModeWidth, "100%")
     67    , m_height(this, SVGNames::heightAttr, LengthModeHeight, "100%")
    6868    , m_useCurrentView(false)
    6969    , m_timeContainer(SMILTimeContainer::create(this))
     
    8282    document()->accessSVGExtensions()->removeTimeContainer(this);
    8383}
    84 
    85 ANIMATED_PROPERTY_DEFINITIONS(SVGSVGElement, SVGLength, X, x, SVGNames::xAttr)
    86 ANIMATED_PROPERTY_DEFINITIONS(SVGSVGElement, SVGLength, Y, y, SVGNames::yAttr)
    87 ANIMATED_PROPERTY_DEFINITIONS(SVGSVGElement, SVGLength, Width, width, SVGNames::widthAttr)
    88 ANIMATED_PROPERTY_DEFINITIONS(SVGSVGElement, SVGLength, Height, height, SVGNames::heightAttr)
    8984
    9085const AtomicString& SVGSVGElement::contentScriptType() const
  • trunk/WebCore/svg/SVGSVGElement.h

    r35035 r35248  
    148148        void addSVGWindowEventListener(const AtomicString& eventType, const Attribute* attr);   
    149149
    150         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    151         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGFitToViewBox, FloatRect, ViewBox, viewBox)
    152         ANIMATED_PROPERTY_FORWARD_DECLARATIONS_REFCOUNTED(SVGFitToViewBox, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
     150        ANIMATED_PROPERTY_DECLARATIONS(SVGSVGElement, SVGNames::svgTagString, SVGNames::xAttrString, SVGLength, X, x)
     151        ANIMATED_PROPERTY_DECLARATIONS(SVGSVGElement, SVGNames::svgTagString, SVGNames::yAttrString, SVGLength, Y, y)
     152        ANIMATED_PROPERTY_DECLARATIONS(SVGSVGElement, SVGNames::svgTagString, SVGNames::widthAttrString, SVGLength, Width, width)
     153        ANIMATED_PROPERTY_DECLARATIONS(SVGSVGElement, SVGNames::svgTagString, SVGNames::heightAttrString, SVGLength, Height, height)
    153154
    154         ANIMATED_PROPERTY_DECLARATIONS(SVGSVGElement, SVGLength, X, x)
    155         ANIMATED_PROPERTY_DECLARATIONS(SVGSVGElement, SVGLength, Y, y)
    156         ANIMATED_PROPERTY_DECLARATIONS(SVGSVGElement, SVGLength, Width, width)
    157         ANIMATED_PROPERTY_DECLARATIONS(SVGSVGElement, SVGLength, Height, height)
    158        
    159155        virtual void willSaveToCache();
    160156        virtual void willRestoreFromCache();
     
    172168#endif // ENABLE(SVG)
    173169#endif
    174 
    175 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGScriptElement.cpp

    r31357 r35248  
    11/*
    2     Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
     2    Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
    33                  2004, 2005, 2007 Rob Buis <buis@kde.org>
    44
     
    2222
    2323#include "config.h"
     24
    2425#if ENABLE(SVG)
    2526#include "SVGScriptElement.h"
    26 
    2727#include "SVGNames.h"
    2828
     
    7171}
    7272
    73 // vim:ts=4:noet
    7473#endif // ENABLE(SVG)
    75 
  • trunk/WebCore/svg/SVGScriptElement.h

    r35035 r35248  
    11/*
    2     Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
     2    Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
    33                  2004, 2005, 2007 Rob Buis <buis@kde.org>
    44
     
    2323#ifndef SVGScriptElement_h
    2424#define SVGScriptElement_h
     25
    2526#if ENABLE(SVG)
    26 
    2727#include "SVGElement.h"
    2828#include "SVGURIReference.h"
    2929#include "SVGExternalResourcesRequired.h"
    3030
    31 namespace WebCore
    32 {
     31namespace WebCore {
     32
    3333    class SVGScriptElement : public SVGElement,
    3434                             public SVGURIReference,
    35                              public SVGExternalResourcesRequired
    36     {
     35                             public SVGExternalResourcesRequired {
    3736    public:
    3837        SVGScriptElement(const QualifiedName&, Document*);
    3938        virtual ~SVGScriptElement();
    4039
    41         // 'SVGScriptElement' functions
    4240        String type() const;
    4341        void setType(const String&);
    4442
    45         // Internal
    4643        virtual void parseMappedAttribute(MappedAttribute *attr);
    47 
    4844        virtual void getSubresourceAttributeStrings(Vector<String>&) const;
    4945
     
    5248
    5349    private:
    54         ANIMATED_PROPERTY_START_DECLARATIONS
    55         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
    56         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    57 
    5850        String m_type;
    5951    };
     
    6355#endif // ENABLE(SVG)
    6456#endif
    65 
    66 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGStopElement.cpp

    r35035 r35248  
    3535SVGStopElement::SVGStopElement(const QualifiedName& tagName, Document* doc)
    3636    : SVGStyledElement(tagName, doc)
    37     , m_offset(0.0f)
     37    , m_offset(this, SVGNames::offsetAttr, 0.0f)
    3838{
    3939}
     
    4242{
    4343}
    44 
    45 ANIMATED_PROPERTY_DEFINITIONS(SVGStopElement, float, Offset, offset, SVGNames::offsetAttr)
    4644
    4745void SVGStopElement::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGStopElement.h

    r35035 r35248  
    4141
    4242    private:
    43         ANIMATED_PROPERTY_DECLARATIONS(SVGStopElement, float, Offset, offset)
     43        ANIMATED_PROPERTY_DECLARATIONS(SVGStopElement, SVGNames::stopTagString, SVGNames::offsetAttrString, float, Offset, offset)
    4444    };
    4545
  • trunk/WebCore/svg/SVGStyledElement.cpp

    r35035 r35248  
    4343using namespace SVGNames;
    4444
     45char SVGStyledElementIdentifier[] = "SVGStyledElement";
    4546static HashSet<const SVGStyledElement*>* gElementsWithInstanceUpdatesBlocked = 0;
    4647
    4748SVGStyledElement::SVGStyledElement(const QualifiedName& tagName, Document* doc)
    4849    : SVGElement(tagName, doc)
     50    , m_className(this, HTMLNames::classAttr)
    4951{
    5052}
     
    5456    SVGResource::removeClient(this);
    5557}
    56 
    57 ANIMATED_PROPERTY_DEFINITIONS(SVGStyledElement, String, ClassName, className, HTMLNames::classAttr)
    5858
    5959bool SVGStyledElement::rendererIsNeeded(RenderStyle* style)
  • trunk/WebCore/svg/SVGStyledElement.h

    r35035 r35248  
    2525
    2626#if ENABLE(SVG)
    27 #include "AffineTransform.h"
    28 #include "Path.h"
     27#include "HTMLNames.h"
    2928#include "SVGElement.h"
    30 #include "SVGLength.h"
    31 #include "SVGResource.h"
    3229#include "SVGStylable.h"
    3330
    3431namespace WebCore {
     32
     33    extern char SVGStyledElementIdentifier[];
     34    class SVGResource;
    3535
    3636    class SVGStyledElement : public SVGElement,
     
    7272
    7373    private:
    74         ANIMATED_PROPERTY_START_DECLARATIONS
    75         ANIMATED_PROPERTY_DECLARATIONS(SVGStyledElement, String, ClassName, className)
     74        ANIMATED_PROPERTY_DECLARATIONS(SVGStyledElement, SVGStyledElementIdentifier, HTMLNames::classAttrString, String, ClassName, className)
    7675
    7776        void updateElementInstance(SVGDocumentExtensions*) const;
  • trunk/WebCore/svg/SVGStyledTransformableElement.cpp

    r35035 r35248  
    3636namespace WebCore {
    3737
     38char SVGStyledTransformableElementIdentifier[] = "SVGStyledTransformableElement";
     39
    3840SVGStyledTransformableElement::SVGStyledTransformableElement(const QualifiedName& tagName, Document* doc)
    3941    : SVGStyledLocatableElement(tagName, doc)
    4042    , SVGTransformable()
    41     , m_transform(SVGTransformList::create(SVGNames::transformAttr))
     43    , m_transform(this, SVGNames::transformAttr, SVGTransformList::create(SVGNames::transformAttr))
    4244{
    4345}
     
    4648{
    4749}
    48 
    49 ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGStyledTransformableElement, SVGTransformList, Transform, transform, SVGNames::transformAttr)
    5050
    5151AffineTransform SVGStyledTransformableElement::getCTM() const
  • trunk/WebCore/svg/SVGStyledTransformableElement.h

    r35035 r35248  
    2525
    2626#if ENABLE(SVG)
     27#include "Path.h"
    2728#include "SVGStyledLocatableElement.h"
    2829#include "SVGTransformable.h"
     
    3031namespace WebCore {
    3132
     33    extern char SVGStyledTransformableElementIdentifier[];
     34
    3235    class AffineTransform;
    33     class SVGTransformList;
    3436
    3537    class SVGStyledTransformableElement : public SVGStyledLocatableElement,
     
    6062
    6163    protected:
    62         ANIMATED_PROPERTY_DECLARATIONS_REFCOUNTED(SVGStyledTransformableElement, SVGTransformList, Transform, transform)
     64        ANIMATED_PROPERTY_DECLARATIONS(SVGStyledTransformableElement, SVGStyledTransformableElementIdentifier,
     65                                       SVGNames::transformAttrString, SVGTransformList, Transform, transform)
    6366
    6467    private:
  • trunk/WebCore/svg/SVGSwitchElement.h

    r34925 r35248  
    5252    private:
    5353        mutable bool m_insideRenderSection;
    54 
    55         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    5654    };
    5755
  • trunk/WebCore/svg/SVGSymbolElement.h

    r35035 r35248  
    3030#include "SVGStyledElement.h"
    3131
    32 namespace WebCore
    33 {
     32namespace WebCore {
     33
    3434    class SVGSymbolElement : public SVGStyledElement,
    3535                             public SVGLangSpace,
    3636                             public SVGExternalResourcesRequired,
    37                              public SVGFitToViewBox
    38     {
     37                             public SVGFitToViewBox {
    3938    public:
    4039        SVGSymbolElement(const QualifiedName&, Document*);
     
    4847    protected:
    4948        virtual const SVGElement* contextElement() const { return this; }
    50  
    51         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)       
    52         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGFitToViewBox, FloatRect, ViewBox, viewBox)
    53         ANIMATED_PROPERTY_FORWARD_DECLARATIONS_REFCOUNTED(SVGFitToViewBox, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
    5449    };
    5550
     
    5853#endif // ENABLE(SVG)
    5954#endif
    60 
    61 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGTRefElement.h

    r34925 r35248  
    11/*
    2     Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
     2    Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
    33                  2004, 2005, 2006 Rob Buis <buis@kde.org>
    44
     
    2323#ifndef SVGTRefElement_h
    2424#define SVGTRefElement_h
     25
    2526#if ENABLE(SVG)
    26 
    2727#include "SVGTextPositioningElement.h"
    2828#include "SVGURIReference.h"
    2929
    30 namespace WebCore
    31 {
    32     class SVGTRefElement : public SVGTextPositioningElement, public SVGURIReference
    33     {
     30namespace WebCore {
     31
     32    class SVGTRefElement : public SVGTextPositioningElement,
     33                           public SVGURIReference {
    3434    public:
    3535        SVGTRefElement(const QualifiedName&, Document*);
     
    4545
    4646    private:
    47         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
    48 
    4947        void updateReferencedText();
    5048    };
     
    5452#endif // ENABLE(SVG)
    5553#endif
    56 
    57 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGTSpanElement.h

    r34925 r35248  
    11/*
    2     Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
     2    Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
    33                  2004, 2005, 2006 Rob Buis <buis@kde.org>
    44
     
    2323#ifndef SVGTSpanElement_h
    2424#define SVGTSpanElement_h
     25
    2526#if ENABLE(SVG)
    26 
    2727#include "SVGTextPositioningElement.h"
    2828
    29 namespace WebCore
    30 {
    31     class SVGTSpanElement : public SVGTextPositioningElement
    32     {
     29namespace WebCore {
     30
     31    class SVGTSpanElement : public SVGTextPositioningElement {
    3332    public:
    3433        SVGTSpanElement(const QualifiedName&, Document*);
     
    3736        virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
    3837        bool childShouldCreateRenderer(Node*) const;
    39    
    40     protected:
    41         virtual const SVGElement* contextElement() const { return this; }
    4238    };
    4339
     
    4642#endif // ENABLE(SVG)
    4743#endif
    48 
    49 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGTextContentElement.cpp

    r35204 r35248  
    4242namespace WebCore {
    4343
     44char SVGTextContentElementIdentifier[] = "SVGTextContentElement";
     45
    4446SVGTextContentElement::SVGTextContentElement(const QualifiedName& tagName, Document* doc)
    4547    : SVGStyledElement(tagName, doc)
     
    4749    , SVGLangSpace()
    4850    , SVGExternalResourcesRequired()
    49     , m_textLength(LengthModeOther)
    50     , m_lengthAdjust(LENGTHADJUST_SPACING)
     51    , m_textLength(this, SVGNames::textLengthAttr, LengthModeOther)
     52    , m_lengthAdjust(this, SVGNames::lengthAdjustAttr, LENGTHADJUST_SPACING)
    5153{
    5254}
     
    5557{
    5658}
    57 
    58 ANIMATED_PROPERTY_DEFINITIONS(SVGTextContentElement, SVGLength, TextLength, textLength, SVGNames::textLengthAttr)
    59 ANIMATED_PROPERTY_DEFINITIONS(SVGTextContentElement, int, LengthAdjust, lengthAdjust, SVGNames::lengthAdjustAttr)
    6059
    6160static inline float cumulativeCharacterRangeLength(const Vector<SVGChar>::iterator& start, const Vector<SVGChar>::iterator& end, SVGInlineTextBox* textBox,
  • trunk/WebCore/svg/SVGTextContentElement.h

    r35035 r35248  
    3131
    3232namespace WebCore {
     33
     34    extern char SVGTextContentElementIdentifier[];
     35
    3336    class SVGLength;
    3437
     
    6467        bool isKnownAttribute(const QualifiedName&);
    6568
     69    protected:
     70        virtual const SVGElement* contextElement() const { return this; }
     71
    6672    private:
    67         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    68 
    69         ANIMATED_PROPERTY_DECLARATIONS(SVGTextContentElement, SVGLength, TextLength, textLength)
    70         ANIMATED_PROPERTY_DECLARATIONS(SVGTextContentElement, int, LengthAdjust, lengthAdjust)
     73        ANIMATED_PROPERTY_DECLARATIONS(SVGTextContentElement, SVGTextContentElementIdentifier, SVGNames::textLengthAttrString, SVGLength, TextLength, textLength)
     74        ANIMATED_PROPERTY_DECLARATIONS(SVGTextContentElement, SVGTextContentElementIdentifier, SVGNames::lengthAdjustAttrString, int, LengthAdjust, lengthAdjust)
    7175    };
    7276
  • trunk/WebCore/svg/SVGTextElement.cpp

    r35035 r35248  
    3939    : SVGTextPositioningElement(tagName, doc)
    4040    , SVGTransformable()
    41     , m_transform(SVGTransformList::create(SVGNames::transformAttr))
     41    , m_transform(this, SVGNames::transformAttr, SVGTransformList::create(SVGNames::transformAttr))
    4242{
    4343}
     
    4646{
    4747}
    48 
    49 ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGTextElement, SVGTransformList, Transform, transform, SVGNames::transformAttr)
    5048
    5149void SVGTextElement::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGTextElement.h

    r35035 r35248  
    5252        virtual void svgAttributeChanged(const QualifiedName&);
    5353
    54     protected:
    55         virtual const SVGElement* contextElement() const { return this; }
    56 
    5754    private:
    58         ANIMATED_PROPERTY_DECLARATIONS_REFCOUNTED(SVGTextElement, SVGTransformList, Transform, transform)
     55        ANIMATED_PROPERTY_DECLARATIONS(SVGTextElement, SVGNames::textTagString, SVGNames::transformAttrString, SVGTransformList, Transform, transform)
    5956       
    6057       // Used by <animateMotion>
  • trunk/WebCore/svg/SVGTextPathElement.cpp

    r35204 r35248  
    3939    : SVGTextContentElement(tagName, doc)
    4040    , SVGURIReference()
    41     , m_startOffset(LengthModeOther)
    42     , m_method(SVG_TEXTPATH_METHODTYPE_ALIGN)
    43     , m_spacing(SVG_TEXTPATH_SPACINGTYPE_EXACT)
     41    , m_startOffset(this, SVGNames::startOffsetAttr, LengthModeOther)
     42    , m_method(this, SVGNames::methodAttr, SVG_TEXTPATH_METHODTYPE_ALIGN)
     43    , m_spacing(this, SVGNames::spacingAttr, SVG_TEXTPATH_SPACINGTYPE_EXACT)
    4444{
    4545}
     
    4848{
    4949}
    50 
    51 ANIMATED_PROPERTY_DEFINITIONS(SVGTextPathElement, SVGLength, StartOffset, startOffset, SVGNames::startOffsetAttr)
    52 ANIMATED_PROPERTY_DEFINITIONS(SVGTextPathElement, int, Method, method, SVGNames::methodAttr)
    53 ANIMATED_PROPERTY_DEFINITIONS(SVGTextPathElement, int, Spacing, spacing, SVGNames::spacingAttr)
    5450
    5551void SVGTextPathElement::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGTextPathElement.h

    r35035 r35248  
    6666
    6767        bool childShouldCreateRenderer(Node*) const;
    68    
     68
    6969    protected:
    7070        virtual const SVGElement* contextElement() const { return this; }
    7171
    7272    private:
    73         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
    74 
    75         ANIMATED_PROPERTY_DECLARATIONS(SVGTextPathElement, SVGLength, StartOffset, startOffset)
    76         ANIMATED_PROPERTY_DECLARATIONS(SVGTextPathElement, int, Method, method)
    77         ANIMATED_PROPERTY_DECLARATIONS(SVGTextPathElement, int, Spacing, spacing)
     73        ANIMATED_PROPERTY_DECLARATIONS(SVGTextPathElement, SVGNames::textPathTagString, SVGNames::startOffsetAttrString, SVGLength, StartOffset, startOffset)
     74        ANIMATED_PROPERTY_DECLARATIONS(SVGTextPathElement, SVGNames::textPathTagString, SVGNames::methodAttrString, int, Method, method)
     75        ANIMATED_PROPERTY_DECLARATIONS(SVGTextPathElement, SVGNames::textPathTagString, SVGNames::spacingAttrString, int, Spacing, spacing)
    7876    };
    7977
     
    8280#endif // ENABLE(SVG)
    8381#endif
    84 
    85 // vim:ts=4:noet
  • trunk/WebCore/svg/SVGTextPositioningElement.cpp

    r35204 r35248  
    3232namespace WebCore {
    3333
     34char SVGTextPositioningElementIdentifier[] = "SVGTextPositioningElement";
     35
    3436SVGTextPositioningElement::SVGTextPositioningElement(const QualifiedName& tagName, Document* doc)
    3537    : SVGTextContentElement(tagName, doc)
    36     , m_x(SVGLengthList::create(SVGNames::xAttr))
    37     , m_y(SVGLengthList::create(SVGNames::yAttr))
    38     , m_dx(SVGLengthList::create(SVGNames::dxAttr))
    39     , m_dy(SVGLengthList::create(SVGNames::dyAttr))
    40     , m_rotate(SVGNumberList::create(SVGNames::rotateAttr))
     38    , m_x(this, SVGNames::xAttr, SVGLengthList::create(SVGNames::xAttr))
     39    , m_y(this, SVGNames::yAttr, SVGLengthList::create(SVGNames::yAttr))
     40    , m_dx(this, SVGNames::dxAttr, SVGLengthList::create(SVGNames::dxAttr))
     41    , m_dy(this, SVGNames::dyAttr, SVGLengthList::create(SVGNames::dyAttr))
     42    , m_rotate(this, SVGNames::rotateAttr, SVGNumberList::create(SVGNames::rotateAttr))
    4143{
    4244}
     
    4547{
    4648}
    47 
    48 ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGTextPositioningElement, SVGLengthList, X, x, SVGNames::xAttr)
    49 ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGTextPositioningElement, SVGLengthList, Y, y, SVGNames::yAttr)
    50 ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGTextPositioningElement, SVGLengthList, Dx, dx, SVGNames::dxAttr)
    51 ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGTextPositioningElement, SVGLengthList, Dy, dy, SVGNames::dyAttr)
    52 ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED(SVGTextPositioningElement, SVGNumberList, Rotate, rotate, SVGNames::rotateAttr)
    5349
    5450void SVGTextPositioningElement::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGTextPositioningElement.h

    r35035 r35248  
    2626#if ENABLE(SVG)
    2727#include "SVGTextContentElement.h"
     28#include "SVGLengthList.h"
     29#include "SVGNumberList.h"
    2830
    2931namespace WebCore {
    3032
    31     class SVGLengthList;
    32     class SVGNumberList;
     33    extern char SVGTextPositioningElementIdentifier[];
    3334
    3435    class SVGTextPositioningElement : public SVGTextContentElement {
     
    4243
    4344    private:
    44         ANIMATED_PROPERTY_DECLARATIONS_REFCOUNTED(SVGTextPositioningElement, SVGLengthList, X, x)
    45         ANIMATED_PROPERTY_DECLARATIONS_REFCOUNTED(SVGTextPositioningElement, SVGLengthList, Y, y)
    46         ANIMATED_PROPERTY_DECLARATIONS_REFCOUNTED(SVGTextPositioningElement, SVGLengthList, Dx, dx)
    47         ANIMATED_PROPERTY_DECLARATIONS_REFCOUNTED(SVGTextPositioningElement, SVGLengthList, Dy, dy)
    48         ANIMATED_PROPERTY_DECLARATIONS_REFCOUNTED(SVGTextPositioningElement, SVGNumberList, Rotate, rotate)
     45        ANIMATED_PROPERTY_DECLARATIONS(SVGTextPositioningElement, SVGTextPositioningElementIdentifier, SVGNames::xAttrString, SVGLengthList, X, x)
     46        ANIMATED_PROPERTY_DECLARATIONS(SVGTextPositioningElement, SVGTextPositioningElementIdentifier, SVGNames::yAttrString, SVGLengthList, Y, y)
     47        ANIMATED_PROPERTY_DECLARATIONS(SVGTextPositioningElement, SVGTextPositioningElementIdentifier, SVGNames::dxAttrString, SVGLengthList, Dx, dx)
     48        ANIMATED_PROPERTY_DECLARATIONS(SVGTextPositioningElement, SVGTextPositioningElementIdentifier, SVGNames::dyAttrString, SVGLengthList, Dy, dy)
     49        ANIMATED_PROPERTY_DECLARATIONS(SVGTextPositioningElement, SVGTextPositioningElementIdentifier, SVGNames::rotateAttrString, SVGNumberList, Rotate, rotate)
    4950    };
    5051
  • trunk/WebCore/svg/SVGTransform.cpp

    r25754 r35248  
    8484}
    8585
    86 void SVGTransform::setMatrix(const AffineTransform& matrix)
     86void SVGTransform::setMatrix(AffineTransform matrix) //const AffineTransform& matrix)
    8787{
    8888    m_type = SVG_TRANSFORM_MATRIX;
  • trunk/WebCore/svg/SVGTransform.h

    r27776 r35248  
    11/*
    2     Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
     2    Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
    33                  2004, 2005 Rob Buis <buis@kde.org>
    44
     
    2323#ifndef SVGTransform_h
    2424#define SVGTransform_h
     25
    2526#if ENABLE(SVG)
    26 
    2727#include "AffineTransform.h"
    2828#include "FloatPoint.h"
    29 #include <wtf/RefCounted.h>
    30 #include <wtf/RefPtr.h>
     29#include "SVGNames.h"
    3130
    3231namespace WebCore {
     
    5857        FloatPoint rotationCenter() const;
    5958
    60         void setMatrix(const AffineTransform&);
     59//        void setMatrix(const AffineTransform&);
     60        void setMatrix(AffineTransform);
     61
    6162        void setTranslate(float tx, float ty);
    6263        void setScale(float sx, float sy);
     
    7071       
    7172        bool isValid();
     73
     74        // Throughout SVG 1.1 'SVGTransform' is only used for the 'transform' attribute
     75        const QualifiedName& associatedAttributeName() const { return SVGNames::transformAttr; }
    7276
    7377    private:
  • trunk/WebCore/svg/SVGTransformable.h

    r29951 r35248  
    2727#include "PlatformString.h"
    2828#include "SVGLocatable.h"
     29#include "SVGTransformList.h"
    2930
    3031namespace WebCore {
     
    3334    class AtomicString;
    3435    class SVGTransform;
    35     class SVGTransformList;
    3636    class QualifiedName;
    3737
  • trunk/WebCore/svg/SVGURIReference.cpp

    r35035 r35248  
    2424#include "SVGURIReference.h"
    2525
    26 #include "SVGNames.h"
    27 #include "SVGStyledElement.h"
    28 #include "XLinkNames.h"
    29 
    3026namespace WebCore {
    3127
     28char SVGURIReferenceIdentifier[] = "SVGURIReference";
     29
    3230SVGURIReference::SVGURIReference()
     31    : m_href(this, XLinkNames::hrefAttr)
    3332{
    3433}
     
    3736{
    3837}
    39 
    40 ANIMATED_PROPERTY_DEFINITIONS_WITH_CONTEXT(SVGURIReference, String, Href, href, XLinkNames::hrefAttr)
    4138
    4239bool SVGURIReference::parseMappedAttribute(MappedAttribute* attr)
  • trunk/WebCore/svg/SVGURIReference.h

    r35035 r35248  
    2626#if ENABLE(SVG)
    2727#include "SVGElement.h"
     28#include "XLinkNames.h"
    2829
    2930namespace WebCore {
    3031
     32    extern char SVGURIReferenceIdentifier[];
    3133    class MappedAttribute;
    3234
     
    4143        static String getTarget(const String& url);
    4244
    43     protected:
    4445        virtual const SVGElement* contextElement() const = 0;
    4546
    4647    private:
    47         ANIMATED_PROPERTY_DECLARATIONS_WITH_CONTEXT(SVGURIReference, String, Href, href)
     48        ANIMATED_PROPERTY_DECLARATIONS(SVGURIReference, SVGURIReferenceIdentifier, XLinkNames::hrefAttrString, String, Href, href)
    4849    };
    4950
  • trunk/WebCore/svg/SVGUseElement.cpp

    r35204 r35248  
    5858    , SVGExternalResourcesRequired()
    5959    , SVGURIReference()
    60     , m_x(LengthModeWidth)
    61     , m_y(LengthModeHeight)
    62     , m_width(LengthModeWidth)
    63     , m_height(LengthModeHeight)
     60    , m_x(this, SVGNames::xAttr, LengthModeWidth)
     61    , m_y(this, SVGNames::yAttr, LengthModeHeight)
     62    , m_width(this, SVGNames::widthAttr, LengthModeWidth)
     63    , m_height(this, SVGNames::heightAttr, LengthModeHeight)
    6464{
    6565}
     
    6868{
    6969}
    70 
    71 ANIMATED_PROPERTY_DEFINITIONS(SVGUseElement, SVGLength, X, x, SVGNames::xAttr)
    72 ANIMATED_PROPERTY_DEFINITIONS(SVGUseElement, SVGLength, Y, y, SVGNames::yAttr)
    73 ANIMATED_PROPERTY_DEFINITIONS(SVGUseElement, SVGLength, Width, width, SVGNames::widthAttr)
    74 ANIMATED_PROPERTY_DEFINITIONS(SVGUseElement, SVGLength, Height, height, SVGNames::heightAttr)
    7570
    7671SVGElementInstance* SVGUseElement::instanceRoot() const
  • trunk/WebCore/svg/SVGUseElement.h

    r35204 r35248  
    7272
    7373    private:
    74         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    75         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href)
    76 
    77         ANIMATED_PROPERTY_DECLARATIONS(SVGUseElement, SVGLength, X, x)
    78         ANIMATED_PROPERTY_DECLARATIONS(SVGUseElement, SVGLength, Y, y)
    79         ANIMATED_PROPERTY_DECLARATIONS(SVGUseElement, SVGLength, Width, width)
    80         ANIMATED_PROPERTY_DECLARATIONS(SVGUseElement, SVGLength, Height, height)
     74        ANIMATED_PROPERTY_DECLARATIONS(SVGUseElement, SVGNames::useTagString, SVGNames::xAttrString, SVGLength, X, x)
     75        ANIMATED_PROPERTY_DECLARATIONS(SVGUseElement, SVGNames::useTagString, SVGNames::yAttrString, SVGLength, Y, y)
     76        ANIMATED_PROPERTY_DECLARATIONS(SVGUseElement, SVGNames::useTagString, SVGNames::widthAttrString, SVGLength, Width, width)
     77        ANIMATED_PROPERTY_DECLARATIONS(SVGUseElement, SVGNames::useTagString, SVGNames::heightAttrString, SVGLength, Height, height)
    8178
    8279    private:
     
    8481        SVGElementInstance* instanceForShadowTreeElement(Node* element) const;
    8582
    86     private:
    8783        // Instance tree handling
    8884        void buildInstanceTree(SVGElement* target, SVGElementInstance* targetInstance, bool& foundCycle);
  • trunk/WebCore/svg/SVGViewElement.h

    r35035 r35248  
    5252    private:
    5353        mutable RefPtr<SVGStringList> m_viewTarget;
    54 
    55         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGExternalResourcesRequired, bool, ExternalResourcesRequired, externalResourcesRequired)
    56         ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGFitToViewBox, FloatRect, ViewBox, viewBox)
    57         ANIMATED_PROPERTY_FORWARD_DECLARATIONS_REFCOUNTED(SVGFitToViewBox, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
    5854    };
    5955
  • trunk/WebCore/svg/SVGViewSpec.h

    r34925 r35248  
    5454        SVGElement* viewTarget() const;
    5555
    56     protected:
    5756        virtual const SVGElement* contextElement() const;
    5857
Note: See TracChangeset for help on using the changeset viewer.