File indexing completed on 2024-04-28 15:24:39

0001 /*
0002     Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
0003                   2004, 2005, 2006 Rob Buis <buis@kde.org>
0004 
0005     This file is part of the KDE project
0006 
0007     This library is free software; you can redistribute it and/or
0008     modify it under the terms of the GNU Library General Public
0009     License as published by the Free Software Foundation; either
0010     version 2 of the License, or (at your option) any later version.
0011 
0012     This library is distributed in the hope that it will be useful,
0013     but WITHOUT ANY WARRANTY; without even the implied warranty of
0014     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0015     Library General Public License for more details.
0016 
0017     You should have received a copy of the GNU Library General Public License
0018     along with this library; see the file COPYING.LIB.  If not, write to
0019     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0020     Boston, MA 02110-1301, USA.
0021 */
0022 
0023 #ifndef SVGPathSegLinetoHorizontal_h
0024 #define SVGPathSegLinetoHorizontal_h
0025 
0026 #if ENABLE(SVG)
0027 
0028 #include "SVGPathSeg.h"
0029 
0030 namespace WebCore
0031 {
0032 
0033 class SVGPathSegLinetoHorizontalAbs : public SVGPathSeg
0034 {
0035 public:
0036     static PassRefPtr<SVGPathSegLinetoHorizontalAbs> create(float x)
0037     {
0038         return adoptRef(new SVGPathSegLinetoHorizontalAbs(x));
0039     }
0040     virtual ~SVGPathSegLinetoHorizontalAbs();
0041 
0042     unsigned short pathSegType() const override
0043     {
0044         return PATHSEG_LINETO_HORIZONTAL_ABS;
0045     }
0046     String pathSegTypeAsLetter() const override
0047     {
0048         return "H";
0049     }
0050     String toString() const override
0051     {
0052         return String::format("H %.6lg", m_x);
0053     }
0054 
0055     void setX(float);
0056     float x() const;
0057 
0058 private:
0059     SVGPathSegLinetoHorizontalAbs(float x);
0060     float m_x;
0061 };
0062 
0063 class SVGPathSegLinetoHorizontalRel : public SVGPathSeg
0064 {
0065 public:
0066     static PassRefPtr<SVGPathSegLinetoHorizontalRel> create(float x)
0067     {
0068         return adoptRef(new SVGPathSegLinetoHorizontalRel(x));
0069     }
0070     virtual ~SVGPathSegLinetoHorizontalRel();
0071 
0072     unsigned short pathSegType() const override
0073     {
0074         return PATHSEG_LINETO_HORIZONTAL_REL;
0075     }
0076     String pathSegTypeAsLetter() const override
0077     {
0078         return "h";
0079     }
0080     String toString() const override
0081     {
0082         return String::format("h %.6lg", m_x);
0083     }
0084 
0085     void setX(float);
0086     float x() const;
0087 
0088 private:
0089     SVGPathSegLinetoHorizontalRel(float x);
0090 
0091     float m_x;
0092 };
0093 
0094 } // namespace WebCore
0095 
0096 #endif // ENABLE(SVG)
0097 #endif
0098