#ifndef SVGIntegerOptionalInteger_h
#define SVGIntegerOptionalInteger_h
#include "core/svg/SVGAnimatedInteger.h"
namespace WebCore {
class SVGIntegerOptionalInteger : public SVGPropertyBase {
public:
typedef void TearOffType;
typedef void PrimitiveType;
static PassRefPtr<SVGIntegerOptionalInteger> create(PassRefPtr<SVGInteger> firstInteger, PassRefPtr<SVGInteger> secondInteger)
{
return adoptRef(new SVGIntegerOptionalInteger(firstInteger, secondInteger));
}
PassRefPtr<SVGIntegerOptionalInteger> clone() const;
virtual PassRefPtr<SVGPropertyBase> cloneForAnimation(const String&) const OVERRIDE;
virtual String valueAsString() const OVERRIDE;
void setValueAsString(const String&, ExceptionState&);
virtual void add(PassRefPtr<SVGPropertyBase>, SVGElement*) OVERRIDE;
virtual void calculateAnimatedValue(SVGAnimationElement*, float percentage, unsigned repeatCount, PassRefPtr<SVGPropertyBase> from, PassRefPtr<SVGPropertyBase> to, PassRefPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement* contextElement) OVERRIDE;
virtual float calculateDistance(PassRefPtr<SVGPropertyBase> to, SVGElement* contextElement) OVERRIDE;
static AnimatedPropertyType classType() { return AnimatedIntegerOptionalInteger; }
PassRefPtr<SVGInteger> firstInteger() { return m_firstInteger; }
PassRefPtr<SVGInteger> secondInteger() { return m_secondInteger; }
protected:
SVGIntegerOptionalInteger(PassRefPtr<SVGInteger> firstInteger, PassRefPtr<SVGInteger> secondInteger);
RefPtr<SVGInteger> m_firstInteger;
RefPtr<SVGInteger> m_secondInteger;
};
inline PassRefPtr<SVGIntegerOptionalInteger> toSVGIntegerOptionalInteger(PassRefPtr<SVGPropertyBase> passBase)
{
RefPtr<SVGPropertyBase> base = passBase;
ASSERT(base->type() == SVGIntegerOptionalInteger::classType());
return static_pointer_cast<SVGIntegerOptionalInteger>(base.release());
}
}
#endif