Index: Source/core/svg/SVGTransformTearOff.cpp |
diff --git a/Source/core/svg/SVGRectTearOff.cpp b/Source/core/svg/SVGTransformTearOff.cpp |
similarity index 59% |
copy from Source/core/svg/SVGRectTearOff.cpp |
copy to Source/core/svg/SVGTransformTearOff.cpp |
index 64a2538c50c2656117137d6d704a5122264ff0b2..c13631a788515a44b0d283fa9b1dcdfc8088b7f3 100644 |
--- a/Source/core/svg/SVGRectTearOff.cpp |
+++ b/Source/core/svg/SVGTransformTearOff.cpp |
@@ -29,61 +29,95 @@ |
*/ |
#include "config.h" |
- |
-#include "core/svg/SVGRectTearOff.h" |
+#include "core/svg/SVGTransformTearOff.h" |
#include "bindings/v8/ExceptionState.h" |
#include "core/dom/ExceptionCode.h" |
namespace WebCore { |
-SVGRectTearOff::SVGRectTearOff(PassRefPtr<SVGRect> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName) |
- : NewSVGPropertyTearOff<SVGRect>(target, contextElement, propertyIsAnimVal, attributeName) |
+SVGTransformTearOff::SVGTransformTearOff(PassRefPtr<SVGTransform> target, SVGElement* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedName& attributeName) |
+ : NewSVGPropertyTearOff<SVGTransform>(target, contextElement, propertyIsAnimVal, attributeName) |
{ |
ScriptWrappable::init(this); |
} |
-void SVGRectTearOff::setX(float f, ExceptionState& exceptionState) |
+SVGTransformTearOff::~SVGTransformTearOff() |
+{ |
+} |
+ |
+SVGMatrixTearOff* SVGTransformTearOff::matrix() |
+{ |
+ if (!m_matrixTearoff) { |
+ m_matrixTearoff = SVGMatrixTearOff::create(this); |
+ } |
+ |
+ return m_matrixTearoff.get(); |
+} |
+ |
+void SVGTransformTearOff::setMatrix(PassRefPtr<SVGMatrixTearOff> matrix, ExceptionState& exceptionState) |
+{ |
+ if (isImmutable()) { |
+ exceptionState.throwDOMException(NoModificationAllowedError, "The attribute is read-only."); |
+ return; |
+ } |
+ |
+ target()->setMatrix(matrix->value()); |
+ commitChange(); |
+} |
+ |
+void SVGTransformTearOff::setTranslate(float tx, float ty, ExceptionState& exceptionState) |
+{ |
+ if (isImmutable()) { |
+ exceptionState.throwDOMException(NoModificationAllowedError, "The attribute is read-only."); |
+ return; |
+ } |
+ |
+ target()->setTranslate(tx, ty); |
+ commitChange(); |
+} |
+ |
+void SVGTransformTearOff::setScale(float sx, float sy, ExceptionState& exceptionState) |
{ |
if (isImmutable()) { |
exceptionState.throwDOMException(NoModificationAllowedError, "The attribute is read-only."); |
return; |
} |
- target()->setX(f); |
+ target()->setScale(sx, sy); |
commitChange(); |
} |
-void SVGRectTearOff::setY(float f, ExceptionState& exceptionState) |
+void SVGTransformTearOff::setRotate(float angle, float cx, float cy, ExceptionState& exceptionState) |
{ |
if (isImmutable()) { |
exceptionState.throwDOMException(NoModificationAllowedError, "The attribute is read-only."); |
return; |
} |
- target()->setY(f); |
+ target()->setRotate(angle, cx, cy); |
commitChange(); |
} |
-void SVGRectTearOff::setWidth(float f, ExceptionState& exceptionState) |
+void SVGTransformTearOff::setSkewX(float x, ExceptionState& exceptionState) |
{ |
if (isImmutable()) { |
exceptionState.throwDOMException(NoModificationAllowedError, "The attribute is read-only."); |
return; |
} |
- target()->setWidth(f); |
+ target()->setSkewX(x); |
commitChange(); |
} |
-void SVGRectTearOff::setHeight(float f, ExceptionState& exceptionState) |
+void SVGTransformTearOff::setSkewY(float y, ExceptionState& exceptionState) |
{ |
if (isImmutable()) { |
exceptionState.throwDOMException(NoModificationAllowedError, "The attribute is read-only."); |
return; |
} |
- target()->setHeight(f); |
+ target()->setSkewY(y); |
commitChange(); |
} |