mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 817442 Part 8: Remove nsIDOMSVGTransform r=bz
This commit is contained in:
parent
da4e0eda55
commit
10b140c0b4
@ -44,16 +44,10 @@ NS_IMPL_CYCLE_COLLECTION_TRACE_END
|
||||
NS_IMPL_CYCLE_COLLECTING_ADDREF(DOMSVGTransform)
|
||||
NS_IMPL_CYCLE_COLLECTING_RELEASE(DOMSVGTransform)
|
||||
|
||||
} // namespace mozilla
|
||||
DOMCI_DATA(SVGTransform, mozilla::DOMSVGTransform)
|
||||
namespace mozilla {
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DOMSVGTransform)
|
||||
NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
|
||||
NS_INTERFACE_MAP_ENTRY(mozilla::DOMSVGTransform)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIDOMSVGTransform)
|
||||
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIDOMSVGTransform)
|
||||
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(SVGTransform)
|
||||
NS_INTERFACE_MAP_ENTRY(nsISupports)
|
||||
NS_INTERFACE_MAP_END
|
||||
|
||||
|
||||
@ -116,23 +110,12 @@ DOMSVGTransform::DOMSVGTransform(const SVGTransform &aTransform)
|
||||
}
|
||||
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// nsIDOMSVGTransform methods:
|
||||
|
||||
/* readonly attribute unsigned short type; */
|
||||
uint16_t
|
||||
DOMSVGTransform::Type() const
|
||||
{
|
||||
return Transform().Type();
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
DOMSVGTransform::GetType(uint16_t *aType)
|
||||
{
|
||||
*aType = Type();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
already_AddRefed<DOMSVGMatrix>
|
||||
DOMSVGTransform::Matrix()
|
||||
{
|
||||
@ -143,28 +126,12 @@ DOMSVGTransform::Matrix()
|
||||
return matrix.forget();
|
||||
}
|
||||
|
||||
/* readonly attribute nsIDOMSVGMatrix matrix; */
|
||||
NS_IMETHODIMP
|
||||
DOMSVGTransform::GetMatrix(nsIDOMSVGMatrix * *aMatrix)
|
||||
{
|
||||
*aMatrix = Matrix().get();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* readonly attribute float angle; */
|
||||
float
|
||||
DOMSVGTransform::Angle() const
|
||||
{
|
||||
return Transform().Angle();
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
DOMSVGTransform::GetAngle(float *aAngle)
|
||||
{
|
||||
*aAngle = Angle();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
void
|
||||
DOMSVGTransform::SetMatrix(DOMSVGMatrix& aMatrix, ErrorResult& rv)
|
||||
{
|
||||
@ -175,19 +142,6 @@ DOMSVGTransform::SetMatrix(DOMSVGMatrix& aMatrix, ErrorResult& rv)
|
||||
SetMatrix(aMatrix.Matrix());
|
||||
}
|
||||
|
||||
/* void setMatrix (in nsIDOMSVGMatrix matrix); */
|
||||
NS_IMETHODIMP
|
||||
DOMSVGTransform::SetMatrix(nsIDOMSVGMatrix *matrix)
|
||||
{
|
||||
nsCOMPtr<DOMSVGMatrix> domMatrix = do_QueryInterface(matrix);
|
||||
if (!domMatrix)
|
||||
return NS_ERROR_DOM_SVG_WRONG_TYPE_ERR;
|
||||
|
||||
ErrorResult rv;
|
||||
SetMatrix(*domMatrix, rv);
|
||||
return rv.ErrorCode();
|
||||
}
|
||||
|
||||
void
|
||||
DOMSVGTransform::SetTranslate(float tx, float ty, ErrorResult& rv)
|
||||
{
|
||||
@ -196,7 +150,7 @@ DOMSVGTransform::SetTranslate(float tx, float ty, ErrorResult& rv)
|
||||
return;
|
||||
}
|
||||
|
||||
if (Transform().Type() == nsIDOMSVGTransform::SVG_TRANSFORM_TRANSLATE &&
|
||||
if (Transform().Type() == SVG_TRANSFORM_TRANSLATE &&
|
||||
Matrixgfx().x0 == tx && Matrixgfx().y0 == ty) {
|
||||
return;
|
||||
}
|
||||
@ -206,16 +160,6 @@ DOMSVGTransform::SetTranslate(float tx, float ty, ErrorResult& rv)
|
||||
NotifyElementDidChange(emptyOrOldValue);
|
||||
}
|
||||
|
||||
/* void setTranslate (in float tx, in float ty); */
|
||||
NS_IMETHODIMP
|
||||
DOMSVGTransform::SetTranslate(float tx, float ty)
|
||||
{
|
||||
NS_ENSURE_FINITE2(tx, ty, NS_ERROR_ILLEGAL_VALUE);
|
||||
ErrorResult rv;
|
||||
SetTranslate(tx, ty, rv);
|
||||
return rv.ErrorCode();
|
||||
}
|
||||
|
||||
void
|
||||
DOMSVGTransform::SetScale(float sx, float sy, ErrorResult& rv)
|
||||
{
|
||||
@ -224,7 +168,7 @@ DOMSVGTransform::SetScale(float sx, float sy, ErrorResult& rv)
|
||||
return;
|
||||
}
|
||||
|
||||
if (Transform().Type() == nsIDOMSVGTransform::SVG_TRANSFORM_SCALE &&
|
||||
if (Transform().Type() == SVG_TRANSFORM_SCALE &&
|
||||
Matrixgfx().xx == sx && Matrixgfx().yy == sy) {
|
||||
return;
|
||||
}
|
||||
@ -233,16 +177,6 @@ DOMSVGTransform::SetScale(float sx, float sy, ErrorResult& rv)
|
||||
NotifyElementDidChange(emptyOrOldValue);
|
||||
}
|
||||
|
||||
/* void setScale (in float sx, in float sy); */
|
||||
NS_IMETHODIMP
|
||||
DOMSVGTransform::SetScale(float sx, float sy)
|
||||
{
|
||||
NS_ENSURE_FINITE2(sx, sy, NS_ERROR_ILLEGAL_VALUE);
|
||||
ErrorResult rv;
|
||||
SetScale(sx, sy, rv);
|
||||
return rv.ErrorCode();
|
||||
}
|
||||
|
||||
void
|
||||
DOMSVGTransform::SetRotate(float angle, float cx, float cy, ErrorResult& rv)
|
||||
{
|
||||
@ -251,7 +185,7 @@ DOMSVGTransform::SetRotate(float angle, float cx, float cy, ErrorResult& rv)
|
||||
return;
|
||||
}
|
||||
|
||||
if (Transform().Type() == nsIDOMSVGTransform::SVG_TRANSFORM_ROTATE) {
|
||||
if (Transform().Type() == SVG_TRANSFORM_ROTATE) {
|
||||
float currentCx, currentCy;
|
||||
Transform().GetRotationOrigin(currentCx, currentCy);
|
||||
if (Transform().Angle() == angle && currentCx == cx && currentCy == cy) {
|
||||
@ -264,16 +198,6 @@ DOMSVGTransform::SetRotate(float angle, float cx, float cy, ErrorResult& rv)
|
||||
NotifyElementDidChange(emptyOrOldValue);
|
||||
}
|
||||
|
||||
/* void setRotate (in float angle, in float cx, in float cy); */
|
||||
NS_IMETHODIMP
|
||||
DOMSVGTransform::SetRotate(float angle, float cx, float cy)
|
||||
{
|
||||
NS_ENSURE_FINITE3(angle, cx, cy, NS_ERROR_ILLEGAL_VALUE);
|
||||
ErrorResult rv;
|
||||
SetRotate(angle, cx, cy, rv);
|
||||
return rv.ErrorCode();
|
||||
}
|
||||
|
||||
void
|
||||
DOMSVGTransform::SetSkewX(float angle, ErrorResult& rv)
|
||||
{
|
||||
@ -282,7 +206,7 @@ DOMSVGTransform::SetSkewX(float angle, ErrorResult& rv)
|
||||
return;
|
||||
}
|
||||
|
||||
if (Transform().Type() == nsIDOMSVGTransform::SVG_TRANSFORM_SKEWX &&
|
||||
if (Transform().Type() == SVG_TRANSFORM_SKEWX &&
|
||||
Transform().Angle() == angle) {
|
||||
return;
|
||||
}
|
||||
@ -296,16 +220,6 @@ DOMSVGTransform::SetSkewX(float angle, ErrorResult& rv)
|
||||
NotifyElementDidChange(emptyOrOldValue);
|
||||
}
|
||||
|
||||
/* void setSkewX (in float angle); */
|
||||
NS_IMETHODIMP
|
||||
DOMSVGTransform::SetSkewX(float angle)
|
||||
{
|
||||
NS_ENSURE_FINITE(angle, NS_ERROR_ILLEGAL_VALUE);
|
||||
ErrorResult rv;
|
||||
SetSkewX(angle, rv);
|
||||
return rv.ErrorCode();
|
||||
}
|
||||
|
||||
void
|
||||
DOMSVGTransform::SetSkewY(float angle, ErrorResult& rv)
|
||||
{
|
||||
@ -314,7 +228,7 @@ DOMSVGTransform::SetSkewY(float angle, ErrorResult& rv)
|
||||
return;
|
||||
}
|
||||
|
||||
if (Transform().Type() == nsIDOMSVGTransform::SVG_TRANSFORM_SKEWY &&
|
||||
if (Transform().Type() == SVG_TRANSFORM_SKEWY &&
|
||||
Transform().Angle() == angle) {
|
||||
return;
|
||||
}
|
||||
@ -328,17 +242,6 @@ DOMSVGTransform::SetSkewY(float angle, ErrorResult& rv)
|
||||
NotifyElementDidChange(emptyOrOldValue);
|
||||
}
|
||||
|
||||
/* void setSkewY (in float angle); */
|
||||
NS_IMETHODIMP
|
||||
DOMSVGTransform::SetSkewY(float angle)
|
||||
{
|
||||
NS_ENSURE_FINITE(angle, NS_ERROR_ILLEGAL_VALUE);
|
||||
ErrorResult rv;
|
||||
SetSkewY(angle, rv);
|
||||
return rv.ErrorCode();
|
||||
}
|
||||
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// List management methods:
|
||||
|
||||
@ -405,7 +308,7 @@ DOMSVGTransform::SetMatrix(const gfxMatrix& aMatrix)
|
||||
NS_ABORT_IF_FALSE(!mIsAnimValItem,
|
||||
"Attempting to modify read-only transform");
|
||||
|
||||
if (Transform().Type() == nsIDOMSVGTransform::SVG_TRANSFORM_MATRIX &&
|
||||
if (Transform().Type() == SVG_TRANSFORM_MATRIX &&
|
||||
SVGTransform::MatricesEqual(Matrixgfx(), aMatrix)) {
|
||||
return;
|
||||
}
|
||||
|
@ -12,7 +12,6 @@
|
||||
#include "nsCycleCollectionParticipant.h"
|
||||
#include "nsDebug.h"
|
||||
#include "nsID.h"
|
||||
#include "nsIDOMSVGTransform.h"
|
||||
#include "nsTArray.h"
|
||||
#include "SVGTransform.h"
|
||||
#include "nsWrapperCache.h"
|
||||
@ -40,14 +39,13 @@ class DOMSVGMatrix;
|
||||
/**
|
||||
* DOM wrapper for an SVG transform. See DOMSVGLength.h.
|
||||
*/
|
||||
class DOMSVGTransform MOZ_FINAL : public nsIDOMSVGTransform,
|
||||
class DOMSVGTransform MOZ_FINAL : public nsISupports,
|
||||
public nsWrapperCache
|
||||
{
|
||||
public:
|
||||
NS_DECLARE_STATIC_IID_ACCESSOR(MOZILLA_DOMSVGTRANSFORM_IID)
|
||||
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
|
||||
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(DOMSVGTransform)
|
||||
NS_DECL_NSIDOMSVGTRANSFORM
|
||||
|
||||
/**
|
||||
* Generic ctor for DOMSVGTransform objects that are created for an attribute.
|
||||
|
@ -190,7 +190,7 @@ SVGAnimatedTransformList::SMILAnimatedTransformList::ParseValue(
|
||||
// tx [ty=0]
|
||||
if (numParsed != 1 && numParsed != 2)
|
||||
return;
|
||||
transformType = nsIDOMSVGTransform::SVG_TRANSFORM_TRANSLATE;
|
||||
transformType = SVG_TRANSFORM_TRANSLATE;
|
||||
} else if (aTransformType == nsGkAtoms::scale) {
|
||||
// sx [sy=sx]
|
||||
if (numParsed != 1 && numParsed != 2)
|
||||
@ -198,22 +198,22 @@ SVGAnimatedTransformList::SMILAnimatedTransformList::ParseValue(
|
||||
if (numParsed == 1) {
|
||||
params[1] = params[0];
|
||||
}
|
||||
transformType = nsIDOMSVGTransform::SVG_TRANSFORM_SCALE;
|
||||
transformType = SVG_TRANSFORM_SCALE;
|
||||
} else if (aTransformType == nsGkAtoms::rotate) {
|
||||
// r [cx=0 cy=0]
|
||||
if (numParsed != 1 && numParsed != 3)
|
||||
return;
|
||||
transformType = nsIDOMSVGTransform::SVG_TRANSFORM_ROTATE;
|
||||
transformType = SVG_TRANSFORM_ROTATE;
|
||||
} else if (aTransformType == nsGkAtoms::skewX) {
|
||||
// x-angle
|
||||
if (numParsed != 1)
|
||||
return;
|
||||
transformType = nsIDOMSVGTransform::SVG_TRANSFORM_SKEWX;
|
||||
transformType = SVG_TRANSFORM_SKEWX;
|
||||
} else if (aTransformType == nsGkAtoms::skewY) {
|
||||
// y-angle
|
||||
if (numParsed != 1)
|
||||
return;
|
||||
transformType = nsIDOMSVGTransform::SVG_TRANSFORM_SKEWY;
|
||||
transformType = SVG_TRANSFORM_SKEWY;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ SVGTransform::GetValueAsString(nsAString& aValue) const
|
||||
PRUnichar buf[256];
|
||||
|
||||
switch (mType) {
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_TRANSLATE:
|
||||
case SVG_TRANSFORM_TRANSLATE:
|
||||
// The spec say that if Y is not provided, it is assumed to be zero.
|
||||
if (mMatrix.y0 != 0)
|
||||
nsTextFormatter::snprintf(buf, sizeof(buf)/sizeof(PRUnichar),
|
||||
@ -32,7 +32,7 @@ SVGTransform::GetValueAsString(nsAString& aValue) const
|
||||
NS_LITERAL_STRING("translate(%g)").get(),
|
||||
mMatrix.x0);
|
||||
break;
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_ROTATE:
|
||||
case SVG_TRANSFORM_ROTATE:
|
||||
if (mOriginX != 0.0f || mOriginY != 0.0f)
|
||||
nsTextFormatter::snprintf(buf, sizeof(buf)/sizeof(PRUnichar),
|
||||
NS_LITERAL_STRING("rotate(%g, %g, %g)").get(),
|
||||
@ -41,7 +41,7 @@ SVGTransform::GetValueAsString(nsAString& aValue) const
|
||||
nsTextFormatter::snprintf(buf, sizeof(buf)/sizeof(PRUnichar),
|
||||
NS_LITERAL_STRING("rotate(%g)").get(), mAngle);
|
||||
break;
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_SCALE:
|
||||
case SVG_TRANSFORM_SCALE:
|
||||
if (mMatrix.xx != mMatrix.yy)
|
||||
nsTextFormatter::snprintf(buf, sizeof(buf)/sizeof(PRUnichar),
|
||||
NS_LITERAL_STRING("scale(%g, %g)").get(), mMatrix.xx, mMatrix.yy);
|
||||
@ -49,15 +49,15 @@ SVGTransform::GetValueAsString(nsAString& aValue) const
|
||||
nsTextFormatter::snprintf(buf, sizeof(buf)/sizeof(PRUnichar),
|
||||
NS_LITERAL_STRING("scale(%g)").get(), mMatrix.xx);
|
||||
break;
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_SKEWX:
|
||||
case SVG_TRANSFORM_SKEWX:
|
||||
nsTextFormatter::snprintf(buf, sizeof(buf)/sizeof(PRUnichar),
|
||||
NS_LITERAL_STRING("skewX(%g)").get(), mAngle);
|
||||
break;
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_SKEWY:
|
||||
case SVG_TRANSFORM_SKEWY:
|
||||
nsTextFormatter::snprintf(buf, sizeof(buf)/sizeof(PRUnichar),
|
||||
NS_LITERAL_STRING("skewY(%g)").get(), mAngle);
|
||||
break;
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_MATRIX:
|
||||
case SVG_TRANSFORM_MATRIX:
|
||||
nsTextFormatter::snprintf(buf, sizeof(buf)/sizeof(PRUnichar),
|
||||
NS_LITERAL_STRING("matrix(%g, %g, %g, %g, %g, %g)").get(),
|
||||
mMatrix.xx, mMatrix.yx,
|
||||
@ -76,7 +76,7 @@ SVGTransform::GetValueAsString(nsAString& aValue) const
|
||||
void
|
||||
SVGTransform::SetMatrix(const gfxMatrix& aMatrix)
|
||||
{
|
||||
mType = nsIDOMSVGTransform::SVG_TRANSFORM_MATRIX;
|
||||
mType = SVG_TRANSFORM_MATRIX;
|
||||
mMatrix = aMatrix;
|
||||
// We set the other members here too, since operator== requires it and
|
||||
// the DOM requires it for mAngle.
|
||||
@ -88,7 +88,7 @@ SVGTransform::SetMatrix(const gfxMatrix& aMatrix)
|
||||
void
|
||||
SVGTransform::SetTranslate(float aTx, float aTy)
|
||||
{
|
||||
mType = nsIDOMSVGTransform::SVG_TRANSFORM_TRANSLATE;
|
||||
mType = SVG_TRANSFORM_TRANSLATE;
|
||||
mMatrix.Reset();
|
||||
mMatrix.x0 = aTx;
|
||||
mMatrix.y0 = aTy;
|
||||
@ -100,7 +100,7 @@ SVGTransform::SetTranslate(float aTx, float aTy)
|
||||
void
|
||||
SVGTransform::SetScale(float aSx, float aSy)
|
||||
{
|
||||
mType = nsIDOMSVGTransform::SVG_TRANSFORM_SCALE;
|
||||
mType = SVG_TRANSFORM_SCALE;
|
||||
mMatrix.Reset();
|
||||
mMatrix.xx = aSx;
|
||||
mMatrix.yy = aSy;
|
||||
@ -112,7 +112,7 @@ SVGTransform::SetScale(float aSx, float aSy)
|
||||
void
|
||||
SVGTransform::SetRotate(float aAngle, float aCx, float aCy)
|
||||
{
|
||||
mType = nsIDOMSVGTransform::SVG_TRANSFORM_ROTATE;
|
||||
mType = SVG_TRANSFORM_ROTATE;
|
||||
mMatrix.Reset();
|
||||
mMatrix.Translate(gfxPoint(aCx, aCy));
|
||||
mMatrix.Rotate(aAngle*radPerDegree);
|
||||
@ -128,7 +128,7 @@ SVGTransform::SetSkewX(float aAngle)
|
||||
double ta = tan(aAngle*radPerDegree);
|
||||
NS_ENSURE_FINITE(ta, NS_ERROR_RANGE_ERR);
|
||||
|
||||
mType = nsIDOMSVGTransform::SVG_TRANSFORM_SKEWX;
|
||||
mType = SVG_TRANSFORM_SKEWX;
|
||||
mMatrix.Reset();
|
||||
mMatrix.xy = ta;
|
||||
mAngle = aAngle;
|
||||
@ -143,7 +143,7 @@ SVGTransform::SetSkewY(float aAngle)
|
||||
double ta = tan(aAngle*radPerDegree);
|
||||
NS_ENSURE_FINITE(ta, NS_ERROR_RANGE_ERR);
|
||||
|
||||
mType = nsIDOMSVGTransform::SVG_TRANSFORM_SKEWY;
|
||||
mType = SVG_TRANSFORM_SKEWY;
|
||||
mMatrix.Reset();
|
||||
mMatrix.yx = ta;
|
||||
mAngle = aAngle;
|
||||
@ -156,8 +156,8 @@ SVGTransformSMILData::SVGTransformSMILData(const SVGTransform& aTransform)
|
||||
: mTransformType(aTransform.Type())
|
||||
{
|
||||
NS_ABORT_IF_FALSE(
|
||||
mTransformType >= nsIDOMSVGTransform::SVG_TRANSFORM_MATRIX &&
|
||||
mTransformType <= nsIDOMSVGTransform::SVG_TRANSFORM_SKEWY,
|
||||
mTransformType >= SVG_TRANSFORM_MATRIX &&
|
||||
mTransformType <= SVG_TRANSFORM_SKEWY,
|
||||
"Unexpected transform type");
|
||||
|
||||
for (uint32_t i = 0; i < NUM_STORED_PARAMS; ++i) {
|
||||
@ -165,7 +165,7 @@ SVGTransformSMILData::SVGTransformSMILData(const SVGTransform& aTransform)
|
||||
}
|
||||
|
||||
switch (mTransformType) {
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_MATRIX: {
|
||||
case SVG_TRANSFORM_MATRIX: {
|
||||
const gfxMatrix& mx = aTransform.Matrix();
|
||||
mParams[0] = static_cast<float>(mx.xx);
|
||||
mParams[1] = static_cast<float>(mx.yx);
|
||||
@ -175,25 +175,25 @@ SVGTransformSMILData::SVGTransformSMILData(const SVGTransform& aTransform)
|
||||
mParams[5] = static_cast<float>(mx.y0);
|
||||
break;
|
||||
}
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_TRANSLATE: {
|
||||
case SVG_TRANSFORM_TRANSLATE: {
|
||||
const gfxMatrix& mx = aTransform.Matrix();
|
||||
mParams[0] = static_cast<float>(mx.x0);
|
||||
mParams[1] = static_cast<float>(mx.y0);
|
||||
break;
|
||||
}
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_SCALE: {
|
||||
case SVG_TRANSFORM_SCALE: {
|
||||
const gfxMatrix& mx = aTransform.Matrix();
|
||||
mParams[0] = static_cast<float>(mx.xx);
|
||||
mParams[1] = static_cast<float>(mx.yy);
|
||||
break;
|
||||
}
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_ROTATE:
|
||||
case SVG_TRANSFORM_ROTATE:
|
||||
mParams[0] = aTransform.Angle();
|
||||
aTransform.GetRotationOrigin(mParams[1], mParams[2]);
|
||||
break;
|
||||
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_SKEWX:
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_SKEWY:
|
||||
case SVG_TRANSFORM_SKEWX:
|
||||
case SVG_TRANSFORM_SKEWY:
|
||||
mParams[0] = aTransform.Angle();
|
||||
break;
|
||||
|
||||
@ -209,29 +209,29 @@ SVGTransformSMILData::ToSVGTransform() const
|
||||
SVGTransform result;
|
||||
|
||||
switch (mTransformType) {
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_MATRIX:
|
||||
case SVG_TRANSFORM_MATRIX:
|
||||
result.SetMatrix(gfxMatrix(mParams[0], mParams[1],
|
||||
mParams[2], mParams[3],
|
||||
mParams[4], mParams[5]));
|
||||
break;
|
||||
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_TRANSLATE:
|
||||
case SVG_TRANSFORM_TRANSLATE:
|
||||
result.SetTranslate(mParams[0], mParams[1]);
|
||||
break;
|
||||
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_SCALE:
|
||||
case SVG_TRANSFORM_SCALE:
|
||||
result.SetScale(mParams[0], mParams[1]);
|
||||
break;
|
||||
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_ROTATE:
|
||||
case SVG_TRANSFORM_ROTATE:
|
||||
result.SetRotate(mParams[0], mParams[1], mParams[2]);
|
||||
break;
|
||||
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_SKEWX:
|
||||
case SVG_TRANSFORM_SKEWX:
|
||||
result.SetSkewX(mParams[0]);
|
||||
break;
|
||||
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_SKEWY:
|
||||
case SVG_TRANSFORM_SKEWY:
|
||||
result.SetSkewY(mParams[0]);
|
||||
break;
|
||||
|
||||
|
@ -9,10 +9,18 @@
|
||||
|
||||
#include "gfxMatrix.h"
|
||||
#include "nsDebug.h"
|
||||
#include "nsIDOMSVGTransform.h"
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
// Transform Types
|
||||
static const unsigned short SVG_TRANSFORM_UNKNOWN = 0;
|
||||
static const unsigned short SVG_TRANSFORM_MATRIX = 1;
|
||||
static const unsigned short SVG_TRANSFORM_TRANSLATE = 2;
|
||||
static const unsigned short SVG_TRANSFORM_SCALE = 3;
|
||||
static const unsigned short SVG_TRANSFORM_ROTATE = 4;
|
||||
static const unsigned short SVG_TRANSFORM_SKEWX = 5;
|
||||
static const unsigned short SVG_TRANSFORM_SKEWY = 6;
|
||||
|
||||
/*
|
||||
* The DOM wrapper class for this class is DOMSVGTransformMatrix.
|
||||
*/
|
||||
@ -25,7 +33,7 @@ public:
|
||||
, mAngle(0.f)
|
||||
, mOriginX(0.f)
|
||||
, mOriginY(0.f)
|
||||
, mType(nsIDOMSVGTransform::SVG_TRANSFORM_MATRIX)
|
||||
, mType(SVG_TRANSFORM_MATRIX)
|
||||
{ }
|
||||
|
||||
SVGTransform(const gfxMatrix& aMatrix)
|
||||
@ -33,7 +41,7 @@ public:
|
||||
, mAngle(0.f)
|
||||
, mOriginX(0.f)
|
||||
, mOriginY(0.f)
|
||||
, mType(nsIDOMSVGTransform::SVG_TRANSFORM_MATRIX)
|
||||
, mType(SVG_TRANSFORM_MATRIX)
|
||||
{ }
|
||||
|
||||
bool operator==(const SVGTransform& rhs) const {
|
||||
@ -118,8 +126,8 @@ public:
|
||||
explicit SVGTransformSMILData(uint16_t aType)
|
||||
: mTransformType(aType)
|
||||
{
|
||||
NS_ABORT_IF_FALSE(aType >= nsIDOMSVGTransform::SVG_TRANSFORM_MATRIX &&
|
||||
aType <= nsIDOMSVGTransform::SVG_TRANSFORM_SKEWY,
|
||||
NS_ABORT_IF_FALSE(aType >= SVG_TRANSFORM_MATRIX &&
|
||||
aType <= SVG_TRANSFORM_SKEWY,
|
||||
"Unexpected transform type");
|
||||
for (uint32_t i = 0; i < NUM_STORED_PARAMS; ++i) {
|
||||
mParams[i] = 0.f;
|
||||
@ -129,8 +137,8 @@ public:
|
||||
SVGTransformSMILData(uint16_t aType, float (&aParams)[NUM_SIMPLE_PARAMS])
|
||||
: mTransformType(aType)
|
||||
{
|
||||
NS_ABORT_IF_FALSE(aType >= nsIDOMSVGTransform::SVG_TRANSFORM_TRANSLATE &&
|
||||
aType <= nsIDOMSVGTransform::SVG_TRANSFORM_SKEWY,
|
||||
NS_ABORT_IF_FALSE(aType >= SVG_TRANSFORM_TRANSLATE &&
|
||||
aType <= SVG_TRANSFORM_SKEWY,
|
||||
"Expected 'simple' transform type");
|
||||
for (uint32_t i = 0; i < NUM_SIMPLE_PARAMS; ++i) {
|
||||
mParams[i] = aParams[i];
|
||||
|
@ -130,7 +130,7 @@ SVGTransformListSMILType::Add(nsSMILValue& aDest,
|
||||
|
||||
// And it should be impossible that one of them is of matrix type
|
||||
NS_ASSERTION(
|
||||
srcTransform.mTransformType != nsIDOMSVGTransform::SVG_TRANSFORM_MATRIX,
|
||||
srcTransform.mTransformType != SVG_TRANSFORM_MATRIX,
|
||||
"Trying to perform simple add with matrix transform");
|
||||
|
||||
// Add the parameters
|
||||
@ -211,8 +211,8 @@ SVGTransformListSMILType::ComputeDistance(const nsSMILValue& aFrom,
|
||||
// We adopt the SVGT1.2 notions of distance here
|
||||
// See: http://www.w3.org/TR/SVGTiny12/animate.html#complexDistances
|
||||
// (As discussed in bug #469040)
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_TRANSLATE:
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_SCALE:
|
||||
case SVG_TRANSFORM_TRANSLATE:
|
||||
case SVG_TRANSFORM_SCALE:
|
||||
{
|
||||
const float& a_tx = fromTransform.mParams[0];
|
||||
const float& a_ty = fromTransform.mParams[1];
|
||||
@ -222,9 +222,9 @@ SVGTransformListSMILType::ComputeDistance(const nsSMILValue& aFrom,
|
||||
}
|
||||
break;
|
||||
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_ROTATE:
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_SKEWX:
|
||||
case nsIDOMSVGTransform::SVG_TRANSFORM_SKEWY:
|
||||
case SVG_TRANSFORM_ROTATE:
|
||||
case SVG_TRANSFORM_SKEWX:
|
||||
case SVG_TRANSFORM_SKEWY:
|
||||
{
|
||||
const float& a = fromTransform.mParams[0];
|
||||
const float& b = toTransform.mParams[0];
|
||||
@ -266,7 +266,7 @@ SVGTransformListSMILType::Interpolate(const nsSMILValue& aStartVal,
|
||||
// The end point should never be a matrix transform
|
||||
const SVGTransformSMILData& endTransform = endTransforms[0];
|
||||
NS_ASSERTION(
|
||||
endTransform.mTransformType != nsIDOMSVGTransform::SVG_TRANSFORM_MATRIX,
|
||||
endTransform.mTransformType != SVG_TRANSFORM_MATRIX,
|
||||
"End point for interpolation should not be a matrix transform");
|
||||
|
||||
// If we have 0 or more than 1 transform in the start transform array then we
|
||||
|
@ -6,7 +6,6 @@
|
||||
#include "nsSVGAnimationElement.h"
|
||||
#include "nsIDOMSVGAnimateTransformElement.h"
|
||||
#include "nsSVGEnum.h"
|
||||
#include "nsIDOMSVGTransform.h"
|
||||
#include "nsIDOMSVGTransformable.h"
|
||||
#include "nsSMILAnimationFunction.h"
|
||||
|
||||
|
@ -595,18 +595,18 @@ nsSVGSVGElement::CreateSVGRect(nsIDOMSVGRect **_retval)
|
||||
return NS_NewSVGRect(_retval);
|
||||
}
|
||||
|
||||
/* nsIDOMSVGTransform createSVGTransform (); */
|
||||
/* DOMSVGTransform createSVGTransform (); */
|
||||
NS_IMETHODIMP
|
||||
nsSVGSVGElement::CreateSVGTransform(nsIDOMSVGTransform **_retval)
|
||||
nsSVGSVGElement::CreateSVGTransform(nsISupports **_retval)
|
||||
{
|
||||
NS_ADDREF(*_retval = new DOMSVGTransform());
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* nsIDOMSVGTransform createSVGTransformFromMatrix (in nsIDOMSVGMatrix matrix); */
|
||||
/* DOMSVGTransform createSVGTransformFromMatrix (in nsIDOMSVGMatrix matrix); */
|
||||
NS_IMETHODIMP
|
||||
nsSVGSVGElement::CreateSVGTransformFromMatrix(nsIDOMSVGMatrix *matrix,
|
||||
nsIDOMSVGTransform **_retval)
|
||||
nsISupports **_retval)
|
||||
{
|
||||
nsCOMPtr<DOMSVGMatrix> domItem = do_QueryInterface(matrix);
|
||||
if (!domItem) {
|
||||
|
@ -373,7 +373,6 @@
|
||||
#include "nsIDOMSVGTextElement.h"
|
||||
#include "nsIDOMSVGTextPathElement.h"
|
||||
#include "nsIDOMSVGTitleElement.h"
|
||||
#include "nsIDOMSVGTransform.h"
|
||||
#include "nsIDOMSVGTransformable.h"
|
||||
#include "nsIDOMSVGTSpanElement.h"
|
||||
#include "nsIDOMSVGUnitTypes.h"
|
||||
@ -1252,8 +1251,6 @@ static nsDOMClassInfoData sClassInfoData[] = {
|
||||
DOM_DEFAULT_SCRIPTABLE_FLAGS)
|
||||
NS_DEFINE_CLASSINFO_DATA(SVGStringList, nsSVGStringListSH,
|
||||
ARRAY_SCRIPTABLE_FLAGS)
|
||||
NS_DEFINE_CLASSINFO_DATA(SVGTransform, nsDOMGenericSH,
|
||||
DOM_DEFAULT_SCRIPTABLE_FLAGS)
|
||||
NS_DEFINE_CLASSINFO_DATA(SVGZoomEvent, nsDOMGenericSH,
|
||||
DOM_DEFAULT_SCRIPTABLE_FLAGS)
|
||||
|
||||
@ -3552,10 +3549,6 @@ nsDOMClassInfo::Init()
|
||||
DOM_CLASSINFO_MAP_ENTRY(nsIDOMSVGStringList)
|
||||
DOM_CLASSINFO_MAP_END
|
||||
|
||||
DOM_CLASSINFO_MAP_BEGIN(SVGTransform, nsIDOMSVGTransform)
|
||||
DOM_CLASSINFO_MAP_ENTRY(nsIDOMSVGTransform)
|
||||
DOM_CLASSINFO_MAP_END
|
||||
|
||||
DOM_CLASSINFO_MAP_BEGIN(SVGZoomEvent, nsIDOMSVGZoomEvent)
|
||||
DOM_CLASSINFO_MAP_ENTRY(nsIDOMSVGZoomEvent)
|
||||
DOM_CLASSINFO_UI_EVENT_MAP_ENTRIES
|
||||
|
@ -40,7 +40,6 @@ class nsIDOMSVGNumberList;
|
||||
class nsIDOMSVGPoint;
|
||||
class nsIDOMSVGStringList;
|
||||
class nsIDOMSVGTests;
|
||||
class nsIDOMSVGTransform;
|
||||
class nsIDOMWindow;
|
||||
class nsIForm;
|
||||
class nsIHTMLDocument;
|
||||
|
@ -272,7 +272,6 @@ DOMCI_CLASS(SVGNumberList)
|
||||
DOMCI_CLASS(SVGPoint)
|
||||
DOMCI_CLASS(SVGRect)
|
||||
DOMCI_CLASS(SVGStringList)
|
||||
DOMCI_CLASS(SVGTransform)
|
||||
DOMCI_CLASS(SVGZoomEvent)
|
||||
|
||||
// Canvas
|
||||
|
@ -81,7 +81,6 @@ XPIDLSRCS = \
|
||||
nsIDOMSVGTextPathElement.idl \
|
||||
nsIDOMSVGTextPositionElem.idl \
|
||||
nsIDOMSVGTitleElement.idl \
|
||||
nsIDOMSVGTransform.idl \
|
||||
nsIDOMSVGTransformable.idl \
|
||||
nsIDOMSVGTSpanElement.idl \
|
||||
nsIDOMSVGURIReference.idl \
|
||||
|
@ -12,7 +12,6 @@ interface nsIDOMSVGPoint;
|
||||
interface nsIDOMSVGNumber;
|
||||
interface nsIDOMSVGLength;
|
||||
interface nsIDOMSVGMatrix;
|
||||
interface nsIDOMSVGTransform;
|
||||
|
||||
// undef the GetCurrentTime macro defined in WinBase.h from the MS Platform SDK
|
||||
%{C++
|
||||
@ -80,7 +79,9 @@ interface nsIDOMSVGSVGElement
|
||||
nsIDOMSVGPoint createSVGPoint();
|
||||
nsIDOMSVGMatrix createSVGMatrix();
|
||||
nsIDOMSVGRect createSVGRect();
|
||||
nsIDOMSVGTransform createSVGTransform();
|
||||
nsIDOMSVGTransform createSVGTransformFromMatrix(in nsIDOMSVGMatrix matrix);
|
||||
// SVGTransform
|
||||
nsISupports createSVGTransform();
|
||||
// SVGTransform
|
||||
nsISupports createSVGTransformFromMatrix(in nsIDOMSVGMatrix matrix);
|
||||
nsIDOMElement getElementById(in DOMString elementId);
|
||||
};
|
||||
|
@ -1,32 +0,0 @@
|
||||
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "domstubs.idl"
|
||||
|
||||
interface nsIDOMSVGMatrix;
|
||||
|
||||
[scriptable, uuid(29cc2e14-6d18-4710-bda9-a88d9d3bc8dc)]
|
||||
interface nsIDOMSVGTransform : nsISupports
|
||||
{
|
||||
// Transform Types
|
||||
const unsigned short SVG_TRANSFORM_UNKNOWN = 0;
|
||||
const unsigned short SVG_TRANSFORM_MATRIX = 1;
|
||||
const unsigned short SVG_TRANSFORM_TRANSLATE = 2;
|
||||
const unsigned short SVG_TRANSFORM_SCALE = 3;
|
||||
const unsigned short SVG_TRANSFORM_ROTATE = 4;
|
||||
const unsigned short SVG_TRANSFORM_SKEWX = 5;
|
||||
const unsigned short SVG_TRANSFORM_SKEWY = 6;
|
||||
|
||||
readonly attribute unsigned short type;
|
||||
readonly attribute nsIDOMSVGMatrix matrix;
|
||||
readonly attribute float angle;
|
||||
|
||||
void setMatrix(in nsIDOMSVGMatrix matrix);
|
||||
void setTranslate(in float tx, in float ty);
|
||||
void setScale(in float sx, in float sy);
|
||||
void setRotate(in float angle, in float cx, in float cy);
|
||||
void setSkewX(in float angle);
|
||||
void setSkewY(in float angle);
|
||||
};
|
Loading…
Reference in New Issue
Block a user