#ifndef SVGLengthTearOff_h
#define SVGLengthTearOff_h
#include "bindings/v8/ScriptWrappable.h"
#include "core/svg/SVGLength.h"
#include "core/svg/properties/SVGPropertyTearOff.h"
namespace WebCore {
class SVGLengthTearOff FINAL : public SVGPropertyTearOff<SVGLength>, public ScriptWrappable {
public:
enum {
SVG_LENGTHTYPE_UNKNOWN = LengthTypeUnknown,
SVG_LENGTHTYPE_NUMBER = LengthTypeNumber,
SVG_LENGTHTYPE_PERCENTAGE = LengthTypePercentage,
SVG_LENGTHTYPE_EMS = LengthTypeEMS,
SVG_LENGTHTYPE_EXS = LengthTypeEXS,
SVG_LENGTHTYPE_PX = LengthTypePX,
SVG_LENGTHTYPE_CM = LengthTypeCM,
SVG_LENGTHTYPE_MM = LengthTypeMM,
SVG_LENGTHTYPE_IN = LengthTypeIN,
SVG_LENGTHTYPE_PT = LengthTypePT,
SVG_LENGTHTYPE_PC = LengthTypePC
};
static PassRefPtr<SVGLengthTearOff> create(PassRefPtr<SVGLength> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName = nullQName())
{
return adoptRef(new SVGLengthTearOff(target, contextElement, propertyIsAnimVal, attributeName));
}
SVGLengthType unitType();
SVGLengthMode unitMode();
float value(ExceptionState&);
void setValue(float value, ExceptionState&);
float valueInSpecifiedUnits();
void setValueInSpecifiedUnits(float value, ExceptionState&);
String valueAsString();
void setValueAsString(const String&, ExceptionState&);
void newValueSpecifiedUnits(unsigned short unitType, float valueInSpecifiedUnits, ExceptionState&);
void convertToSpecifiedUnits(unsigned short unitType, ExceptionState&);
private:
SVGLengthTearOff(PassRefPtr<SVGLength>, SVGElement* contextElement, PropertyIsAnimValType, const QualifiedName& attributeName = nullQName());
};
}
#endif