diff options
Diffstat (limited to 'WebCore/svg/SVGPathSeg.h')
-rw-r--r-- | WebCore/svg/SVGPathSeg.h | 168 |
1 files changed, 96 insertions, 72 deletions
diff --git a/WebCore/svg/SVGPathSeg.h b/WebCore/svg/SVGPathSeg.h index b88806c..6c4db89 100644 --- a/WebCore/svg/SVGPathSeg.h +++ b/WebCore/svg/SVGPathSeg.h @@ -1,91 +1,115 @@ /* - Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org> - 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org> - - 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. -*/ + * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org> + * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org> + * + * 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. + */ #ifndef SVGPathSeg_h #define SVGPathSeg_h #if ENABLE(SVG) -#include "PlatformString.h" -#include "SVGNames.h" - +#include <wtf/Forward.h> #include <wtf/RefCounted.h> namespace WebCore { - class SVGPathElement; - class SVGStyledElement; - - class SVGPathSeg : public RefCounted<SVGPathSeg> { - public: - virtual ~SVGPathSeg() { } - - enum SVGPathSegType { - PATHSEG_UNKNOWN = 0, - PATHSEG_CLOSEPATH = 1, - PATHSEG_MOVETO_ABS = 2, - PATHSEG_MOVETO_REL = 3, - PATHSEG_LINETO_ABS = 4, - PATHSEG_LINETO_REL = 5, - PATHSEG_CURVETO_CUBIC_ABS = 6, - PATHSEG_CURVETO_CUBIC_REL = 7, - PATHSEG_CURVETO_QUADRATIC_ABS = 8, - PATHSEG_CURVETO_QUADRATIC_REL = 9, - PATHSEG_ARC_ABS = 10, - PATHSEG_ARC_REL = 11, - PATHSEG_LINETO_HORIZONTAL_ABS = 12, - PATHSEG_LINETO_HORIZONTAL_REL = 13, - PATHSEG_LINETO_VERTICAL_ABS = 14, - PATHSEG_LINETO_VERTICAL_REL = 15, - PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16, - PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17, - PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18, - PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19 - }; - - virtual unsigned short pathSegType() const { return PATHSEG_UNKNOWN; } - virtual String pathSegTypeAsLetter() const { return ""; } - virtual String toString() const { return ""; } - - const QualifiedName& associatedAttributeName() const { return SVGNames::dAttr; } - - protected: - SVGPathSeg() { } + +enum SVGPathSegType { + PathSegUnknown = 0, + PathSegClosePath = 1, + PathSegMoveToAbs = 2, + PathSegMoveToRel = 3, + PathSegLineToAbs = 4, + PathSegLineToRel = 5, + PathSegCurveToCubicAbs = 6, + PathSegCurveToCubicRel = 7, + PathSegCurveToQuadraticAbs = 8, + PathSegCurveToQuadraticRel = 9, + PathSegArcAbs = 10, + PathSegArcRel = 11, + PathSegLineToHorizontalAbs = 12, + PathSegLineToHorizontalRel = 13, + PathSegLineToVerticalAbs = 14, + PathSegLineToVerticalRel = 15, + PathSegCurveToCubicSmoothAbs = 16, + PathSegCurveToCubicSmoothRel = 17, + PathSegCurveToQuadraticSmoothAbs = 18, + PathSegCurveToQuadraticSmoothRel = 19 +}; + +class SVGPathElement; +class SVGStyledElement; +class QualifiedName; + +class SVGPathSeg : public RefCounted<SVGPathSeg> { +public: + virtual ~SVGPathSeg(); + + // Forward declare these enums in the w3c naming scheme, for IDL generation + enum { + PATHSEG_UNKNOWN = PathSegUnknown, + PATHSEG_CLOSEPATH = PathSegClosePath, + PATHSEG_MOVETO_ABS = PathSegMoveToAbs, + PATHSEG_MOVETO_REL = PathSegMoveToRel, + PATHSEG_LINETO_ABS = PathSegLineToAbs, + PATHSEG_LINETO_REL = PathSegLineToRel, + PATHSEG_CURVETO_CUBIC_ABS = PathSegCurveToCubicAbs, + PATHSEG_CURVETO_CUBIC_REL = PathSegCurveToCubicRel, + PATHSEG_CURVETO_QUADRATIC_ABS = PathSegCurveToQuadraticAbs, + PATHSEG_CURVETO_QUADRATIC_REL = PathSegCurveToQuadraticRel, + PATHSEG_ARC_ABS = PathSegArcAbs, + PATHSEG_ARC_REL = PathSegArcRel, + PATHSEG_LINETO_HORIZONTAL_ABS = PathSegLineToHorizontalAbs, + PATHSEG_LINETO_HORIZONTAL_REL = PathSegLineToHorizontalRel, + PATHSEG_LINETO_VERTICAL_ABS = PathSegLineToVerticalAbs, + PATHSEG_LINETO_VERTICAL_REL = PathSegLineToVerticalRel, + PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = PathSegCurveToCubicSmoothAbs, + PATHSEG_CURVETO_CUBIC_SMOOTH_REL = PathSegCurveToCubicSmoothRel, + PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = PathSegCurveToQuadraticSmoothAbs, + PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = PathSegCurveToQuadraticSmoothRel }; - class SVGPathSegSingleCoord : public SVGPathSeg { - public: - SVGPathSegSingleCoord(float x, float y) - : SVGPathSeg() , m_x(x) , m_y(y) {} - void setX(float x) { m_x = x; } - float x() const { return m_x; } + virtual unsigned short pathSegType() const; + virtual String pathSegTypeAsLetter() const; - void setY(float y) { m_y = y; } - float y() const { return m_y; } + const QualifiedName& associatedAttributeName() const; + +protected: + SVGPathSeg() { } +}; - virtual String toString() const { return pathSegTypeAsLetter() + String::format(" %.6lg %.6lg", m_x, m_y); } +class SVGPathSegSingleCoord : public SVGPathSeg { +public: + SVGPathSegSingleCoord(float x, float y) + : m_x(x) + , m_y(y) + { + } - private: - float m_x; - float m_y; - }; + void setX(float x) { m_x = x; } + float x() const { return m_x; } + + void setY(float y) { m_y = y; } + float y() const { return m_y; } +private: + float m_x; + float m_y; +}; } // namespace WebCore |