diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:41 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:41 -0800 |
commit | 648161bb0edfc3d43db63caed5cc5213bc6cb78f (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /WebCore/svg/SVGPathElement.cpp | |
parent | a65af38181ac7d34544586bdb5cd004de93897ad (diff) | |
download | external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.zip external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.tar.gz external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.tar.bz2 |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'WebCore/svg/SVGPathElement.cpp')
-rw-r--r-- | WebCore/svg/SVGPathElement.cpp | 242 |
1 files changed, 0 insertions, 242 deletions
diff --git a/WebCore/svg/SVGPathElement.cpp b/WebCore/svg/SVGPathElement.cpp deleted file mode 100644 index bdd60e5..0000000 --- a/WebCore/svg/SVGPathElement.cpp +++ /dev/null @@ -1,242 +0,0 @@ -/* - Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org> - 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org> - - This file is part of the KDE project - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include "config.h" - -#if ENABLE(SVG) -#include "SVGPathElement.h" - -#include "RenderPath.h" -#include "SVGNames.h" -#include "SVGParserUtilities.h" -#include "SVGPathSegArc.h" -#include "SVGPathSegClosePath.h" -#include "SVGPathSegCurvetoCubic.h" -#include "SVGPathSegCurvetoCubicSmooth.h" -#include "SVGPathSegCurvetoQuadratic.h" -#include "SVGPathSegCurvetoQuadraticSmooth.h" -#include "SVGPathSegLineto.h" -#include "SVGPathSegLinetoHorizontal.h" -#include "SVGPathSegLinetoVertical.h" -#include "SVGPathSegList.h" -#include "SVGPathSegMoveto.h" -#include "SVGSVGElement.h" - -namespace WebCore { - -SVGPathElement::SVGPathElement(const QualifiedName& tagName, Document* doc) - : SVGStyledTransformableElement(tagName, doc) - , SVGTests() - , SVGLangSpace() - , SVGExternalResourcesRequired() - , m_pathLength(this, SVGNames::pathLengthAttr, 0.0f) -{ -} - -SVGPathElement::~SVGPathElement() -{ -} - -float SVGPathElement::getTotalLength() -{ - // FIXME: this may wish to use the pathSegList instead of the pathdata if that's cheaper to build (or cached) - return toPathData().length(); -} - -FloatPoint SVGPathElement::getPointAtLength(float length) -{ - // FIXME: this may wish to use the pathSegList instead of the pathdata if that's cheaper to build (or cached) - bool ok = false; - return toPathData().pointAtLength(length, ok); -} - -unsigned long SVGPathElement::getPathSegAtLength(float length) -{ - return pathSegList()->getPathSegAtLength(length); -} - -PassRefPtr<SVGPathSegClosePath> SVGPathElement::createSVGPathSegClosePath() -{ - return SVGPathSegClosePath::create(); -} - -PassRefPtr<SVGPathSegMovetoAbs> SVGPathElement::createSVGPathSegMovetoAbs(float x, float y) -{ - return SVGPathSegMovetoAbs::create(x, y); -} - -PassRefPtr<SVGPathSegMovetoRel> SVGPathElement::createSVGPathSegMovetoRel(float x, float y) -{ - return SVGPathSegMovetoRel::create(x, y); -} - -PassRefPtr<SVGPathSegLinetoAbs> SVGPathElement::createSVGPathSegLinetoAbs(float x, float y) -{ - return SVGPathSegLinetoAbs::create(x, y); -} - -PassRefPtr<SVGPathSegLinetoRel> SVGPathElement::createSVGPathSegLinetoRel(float x, float y) -{ - return SVGPathSegLinetoRel::create(x, y); -} - -PassRefPtr<SVGPathSegCurvetoCubicAbs> SVGPathElement::createSVGPathSegCurvetoCubicAbs(float x, float y, float x1, float y1, float x2, float y2) -{ - return SVGPathSegCurvetoCubicAbs::create(x, y, x1, y1, x2, y2); -} - -PassRefPtr<SVGPathSegCurvetoCubicRel> SVGPathElement::createSVGPathSegCurvetoCubicRel(float x, float y, float x1, float y1, float x2, float y2) -{ - return SVGPathSegCurvetoCubicRel::create(x, y, x1, y1, x2, y2); -} - -PassRefPtr<SVGPathSegCurvetoQuadraticAbs> SVGPathElement::createSVGPathSegCurvetoQuadraticAbs(float x, float y, float x1, float y1) -{ - return SVGPathSegCurvetoQuadraticAbs::create(x, y, x1, y1); -} - -PassRefPtr<SVGPathSegCurvetoQuadraticRel> SVGPathElement::createSVGPathSegCurvetoQuadraticRel(float x, float y, float x1, float y1) -{ - return SVGPathSegCurvetoQuadraticRel::create(x, y, x1, y1); -} - -PassRefPtr<SVGPathSegArcAbs> SVGPathElement::createSVGPathSegArcAbs(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag) -{ - return SVGPathSegArcAbs::create(x, y, r1, r2, angle, largeArcFlag, sweepFlag); -} - -PassRefPtr<SVGPathSegArcRel> SVGPathElement::createSVGPathSegArcRel(float x, float y, float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag) -{ - return SVGPathSegArcRel::create(x, y, r1, r2, angle, largeArcFlag, sweepFlag); -} - -PassRefPtr<SVGPathSegLinetoHorizontalAbs> SVGPathElement::createSVGPathSegLinetoHorizontalAbs(float x) -{ - return SVGPathSegLinetoHorizontalAbs::create(x); -} - -PassRefPtr<SVGPathSegLinetoHorizontalRel> SVGPathElement::createSVGPathSegLinetoHorizontalRel(float x) -{ - return SVGPathSegLinetoHorizontalRel::create(x); -} - -PassRefPtr<SVGPathSegLinetoVerticalAbs> SVGPathElement::createSVGPathSegLinetoVerticalAbs(float y) -{ - return SVGPathSegLinetoVerticalAbs::create(y); -} - -PassRefPtr<SVGPathSegLinetoVerticalRel> SVGPathElement::createSVGPathSegLinetoVerticalRel(float y) -{ - return SVGPathSegLinetoVerticalRel::create(y); -} - -PassRefPtr<SVGPathSegCurvetoCubicSmoothAbs> SVGPathElement::createSVGPathSegCurvetoCubicSmoothAbs(float x, float y, float x2, float y2) -{ - return SVGPathSegCurvetoCubicSmoothAbs::create(x, y, x2, y2); -} - -PassRefPtr<SVGPathSegCurvetoCubicSmoothRel> SVGPathElement::createSVGPathSegCurvetoCubicSmoothRel(float x, float y, float x2, float y2) -{ - return SVGPathSegCurvetoCubicSmoothRel::create(x, y, x2, y2); -} - -PassRefPtr<SVGPathSegCurvetoQuadraticSmoothAbs> SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothAbs(float x, float y) -{ - return SVGPathSegCurvetoQuadraticSmoothAbs::create(x, y); -} - -PassRefPtr<SVGPathSegCurvetoQuadraticSmoothRel> SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothRel(float x, float y) -{ - return SVGPathSegCurvetoQuadraticSmoothRel::create(x, y); -} - -void SVGPathElement::parseMappedAttribute(MappedAttribute* attr) -{ - if (attr->name() == SVGNames::dAttr) { - ExceptionCode ec; - pathSegList()->clear(ec); - if (!pathSegListFromSVGData(pathSegList(), attr->value(), true)) - document()->accessSVGExtensions()->reportError("Problem parsing d=\"" + attr->value() + "\""); - } else if (attr->name() == SVGNames::pathLengthAttr) { - setPathLengthBaseValue(attr->value().toFloat()); - if (pathLengthBaseValue() < 0.0f) - document()->accessSVGExtensions()->reportError("A negative value for path attribute <pathLength> is not allowed"); - } else { - if (SVGTests::parseMappedAttribute(attr)) - return; - if (SVGLangSpace::parseMappedAttribute(attr)) - return; - if (SVGExternalResourcesRequired::parseMappedAttribute(attr)) - return; - SVGStyledTransformableElement::parseMappedAttribute(attr); - } -} - -void SVGPathElement::svgAttributeChanged(const QualifiedName& attrName) -{ - SVGStyledTransformableElement::svgAttributeChanged(attrName); - - if (!renderer()) - return; - - if (attrName == SVGNames::dAttr || attrName == SVGNames::pathLengthAttr || - SVGTests::isKnownAttribute(attrName) || - SVGLangSpace::isKnownAttribute(attrName) || - SVGExternalResourcesRequired::isKnownAttribute(attrName) || - SVGStyledTransformableElement::isKnownAttribute(attrName)) - renderer()->setNeedsLayout(true); -} - -SVGPathSegList* SVGPathElement::pathSegList() const -{ - if (!m_pathSegList) - m_pathSegList = SVGPathSegList::create(SVGNames::dAttr); - - return m_pathSegList.get(); -} - -SVGPathSegList* SVGPathElement::normalizedPathSegList() const -{ - // TODO - return 0; -} - -SVGPathSegList* SVGPathElement::animatedPathSegList() const -{ - // TODO - return 0; -} - -SVGPathSegList* SVGPathElement::animatedNormalizedPathSegList() const -{ - // TODO - return 0; -} - -Path SVGPathElement::toPathData() const -{ - return pathSegList()->toPathData(); -} - -} - -#endif // ENABLE(SVG) |