Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9306)

Unified Diff: Source/core/svg/SVGRadialGradientElement.cpp

Issue 112003003: [SVG] SVGLength{,List} migration to new SVG property impl. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: revert aggressive svgAttributeChanged, add NeedsRebaseline Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/svg/SVGRadialGradientElement.h ('k') | Source/core/svg/SVGRectElement.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/svg/SVGRadialGradientElement.cpp
diff --git a/Source/core/svg/SVGRadialGradientElement.cpp b/Source/core/svg/SVGRadialGradientElement.cpp
index af45582ec5881590f2b1b336562f419d46814df1..d8fe2a87533664771aa6a0172e1ccf679ad55592 100644
--- a/Source/core/svg/SVGRadialGradientElement.cpp
+++ b/Source/core/svg/SVGRadialGradientElement.cpp
@@ -33,34 +33,36 @@
namespace WebCore {
// Animated property definitions
-DEFINE_ANIMATED_LENGTH(SVGRadialGradientElement, SVGNames::cxAttr, Cx, cx)
-DEFINE_ANIMATED_LENGTH(SVGRadialGradientElement, SVGNames::cyAttr, Cy, cy)
-DEFINE_ANIMATED_LENGTH(SVGRadialGradientElement, SVGNames::rAttr, R, r)
-DEFINE_ANIMATED_LENGTH(SVGRadialGradientElement, SVGNames::fxAttr, Fx, fx)
-DEFINE_ANIMATED_LENGTH(SVGRadialGradientElement, SVGNames::fyAttr, Fy, fy)
-DEFINE_ANIMATED_LENGTH(SVGRadialGradientElement, SVGNames::frAttr, Fr, fr)
BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGRadialGradientElement)
- REGISTER_LOCAL_ANIMATED_PROPERTY(cx)
- REGISTER_LOCAL_ANIMATED_PROPERTY(cy)
- REGISTER_LOCAL_ANIMATED_PROPERTY(r)
- REGISTER_LOCAL_ANIMATED_PROPERTY(fx)
- REGISTER_LOCAL_ANIMATED_PROPERTY(fy)
- REGISTER_LOCAL_ANIMATED_PROPERTY(fr)
REGISTER_PARENT_ANIMATED_PROPERTIES(SVGGradientElement)
END_REGISTER_ANIMATED_PROPERTIES
inline SVGRadialGradientElement::SVGRadialGradientElement(Document& document)
: SVGGradientElement(SVGNames::radialGradientTag, document)
- , m_cx(LengthModeWidth, "50%")
- , m_cy(LengthModeHeight, "50%")
- , m_r(LengthModeOther, "50%")
- , m_fx(LengthModeWidth)
- , m_fy(LengthModeHeight)
- , m_fr(LengthModeOther, "0%")
+ , m_cx(SVGAnimatedLength::create(this, SVGNames::cxAttr, SVGLength::create(LengthModeWidth)))
+ , m_cy(SVGAnimatedLength::create(this, SVGNames::cyAttr, SVGLength::create(LengthModeHeight)))
+ , m_r(SVGAnimatedLength::create(this, SVGNames::rAttr, SVGLength::create(LengthModeOther)))
+ , m_fx(SVGAnimatedLength::create(this, SVGNames::fxAttr, SVGLength::create(LengthModeWidth)))
+ , m_fy(SVGAnimatedLength::create(this, SVGNames::fyAttr, SVGLength::create(LengthModeHeight)))
+ , m_fr(SVGAnimatedLength::create(this, SVGNames::frAttr, SVGLength::create(LengthModeOther)))
{
- // Spec: If the cx/cy/r/fr attribute is not specified, the effect is as if a value of "50%" were specified.
ScriptWrappable::init(this);
+
+ // Spec: If the cx/cy/r attribute is not specified, the effect is as if a value of "50%" were specified.
+ m_cx->setDefaultValueAsString("50%");
+ m_cy->setDefaultValueAsString("50%");
+ m_r->setDefaultValueAsString("50%");
+
+ // SVG2-Draft Spec: If the fr attributed is not specified, the effect is as if a value of "0%" were specified.
+ m_fr->setDefaultValueAsString("0%");
+
+ addToPropertyMap(m_cx);
+ addToPropertyMap(m_cy);
+ addToPropertyMap(m_r);
+ addToPropertyMap(m_fx);
+ addToPropertyMap(m_fy);
+ addToPropertyMap(m_fr);
registerAnimatedPropertiesForSVGRadialGradientElement();
}
@@ -90,17 +92,17 @@ void SVGRadialGradientElement::parseAttribute(const QualifiedName& name, const A
if (!isSupportedAttribute(name))
SVGGradientElement::parseAttribute(name, value);
else if (name == SVGNames::cxAttr)
- setCxBaseValue(SVGLength::construct(LengthModeWidth, value, parseError));
+ m_cx->setBaseValueAsString(value, AllowNegativeLengths, parseError);
else if (name == SVGNames::cyAttr)
- setCyBaseValue(SVGLength::construct(LengthModeHeight, value, parseError));
+ m_cy->setBaseValueAsString(value, AllowNegativeLengths, parseError);
else if (name == SVGNames::rAttr)
- setRBaseValue(SVGLength::construct(LengthModeOther, value, parseError, ForbidNegativeLengths));
+ m_r->setBaseValueAsString(value, ForbidNegativeLengths, parseError);
else if (name == SVGNames::fxAttr)
- setFxBaseValue(SVGLength::construct(LengthModeWidth, value, parseError));
+ m_fx->setBaseValueAsString(value, AllowNegativeLengths, parseError);
else if (name == SVGNames::fyAttr)
- setFyBaseValue(SVGLength::construct(LengthModeHeight, value, parseError));
+ m_fy->setBaseValueAsString(value, AllowNegativeLengths, parseError);
else if (name == SVGNames::frAttr)
- setFrBaseValue(SVGLength::construct(LengthModeOther, value, parseError, ForbidNegativeLengths));
+ m_fr->setBaseValueAsString(value, ForbidNegativeLengths, parseError);
else
ASSERT_NOT_REACHED();
@@ -161,22 +163,22 @@ bool SVGRadialGradientElement::collectGradientAttributes(RadialGradientAttribute
SVGRadialGradientElement* radial = toSVGRadialGradientElement(current);
if (!attributes.hasCx() && current->hasAttribute(SVGNames::cxAttr))
- attributes.setCx(radial->cxCurrentValue());
+ attributes.setCx(radial->cx()->currentValue());
if (!attributes.hasCy() && current->hasAttribute(SVGNames::cyAttr))
- attributes.setCy(radial->cyCurrentValue());
+ attributes.setCy(radial->cy()->currentValue());
if (!attributes.hasR() && current->hasAttribute(SVGNames::rAttr))
- attributes.setR(radial->rCurrentValue());
+ attributes.setR(radial->r()->currentValue());
if (!attributes.hasFx() && current->hasAttribute(SVGNames::fxAttr))
- attributes.setFx(radial->fxCurrentValue());
+ attributes.setFx(radial->fx()->currentValue());
if (!attributes.hasFy() && current->hasAttribute(SVGNames::fyAttr))
- attributes.setFy(radial->fyCurrentValue());
+ attributes.setFy(radial->fy()->currentValue());
if (!attributes.hasFr() && current->hasAttribute(SVGNames::frAttr))
- attributes.setFr(radial->frCurrentValue());
+ attributes.setFr(radial->fr()->currentValue());
}
processedGradients.add(current);
@@ -208,12 +210,12 @@ bool SVGRadialGradientElement::collectGradientAttributes(RadialGradientAttribute
bool SVGRadialGradientElement::selfHasRelativeLengths() const
{
- return cxCurrentValue().isRelative()
- || cyCurrentValue().isRelative()
- || rCurrentValue().isRelative()
- || fxCurrentValue().isRelative()
- || fyCurrentValue().isRelative()
- || frCurrentValue().isRelative();
+ return m_cx->currentValue()->isRelative()
+ || m_cy->currentValue()->isRelative()
+ || m_r->currentValue()->isRelative()
+ || m_fx->currentValue()->isRelative()
+ || m_fy->currentValue()->isRelative()
+ || m_fr->currentValue()->isRelative();
}
}
« no previous file with comments | « Source/core/svg/SVGRadialGradientElement.h ('k') | Source/core/svg/SVGRectElement.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698