#pragma once
#include "QualifiedName.h"
namespace WebCore {
class SVGAnimatedProperty;
class SVGElement;
enum AnimatedPropertyState {
PropertyIsReadWrite,
PropertyIsReadOnly
};
enum AnimatedPropertyType {
AnimatedAngle,
AnimatedBoolean,
AnimatedColor,
AnimatedEnumeration,
AnimatedInteger,
AnimatedIntegerOptionalInteger,
AnimatedLength,
AnimatedLengthList,
AnimatedNumber,
AnimatedNumberList,
AnimatedNumberOptionalNumber,
AnimatedPath,
AnimatedPoints,
AnimatedPreserveAspectRatio,
AnimatedRect,
AnimatedString,
AnimatedTransformList,
AnimatedUnknown
};
struct SVGPropertyInfo {
WTF_MAKE_FAST_ALLOCATED;
public:
typedef void (*SynchronizeProperty)(SVGElement*);
typedef Ref<SVGAnimatedProperty> (*LookupOrCreateWrapperForAnimatedProperty)(SVGElement*);
SVGPropertyInfo(AnimatedPropertyType newType, AnimatedPropertyState newState, const QualifiedName& newAttributeName,
const AtomicString& newPropertyIdentifier, SynchronizeProperty newSynchronizeProperty,
LookupOrCreateWrapperForAnimatedProperty newLookupOrCreateWrapperForAnimatedProperty);
AnimatedPropertyType animatedPropertyType;
AnimatedPropertyState animatedPropertyState;
const QualifiedName& attributeName;
const AtomicString& propertyIdentifier;
SynchronizeProperty synchronizeProperty;
LookupOrCreateWrapperForAnimatedProperty lookupOrCreateWrapperForAnimatedProperty;
};
}