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

0001 /*
0002     Copyright (C) 2004, 2005, 2006, 2008 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 SVGRadialGradientElement_h
0024 #define SVGRadialGradientElement_h
0025 
0026 #if ENABLE(SVG)
0027 #include "SVGGradientElement.h"
0028 
0029 namespace WebCore
0030 {
0031 
0032 struct RadialGradientAttributes;
0033 class SVGLength;
0034 
0035 class SVGRadialGradientElement : public SVGGradientElement
0036 {
0037 public:
0038     SVGRadialGradientElement(const QualifiedName &, Document *);
0039     virtual ~SVGRadialGradientElement();
0040 
0041     void parseMappedAttribute(MappedAttribute *) override;
0042     void svgAttributeChanged(const QualifiedName &) override;
0043 
0044     // KHTML ElementImpl pure virtual method
0045     quint32 id() const override;
0046 protected:
0047     void buildGradient() const override;
0048     SVGPaintServerType gradientType() const override
0049     {
0050         return RadialGradientPaintServer;
0051     }
0052 
0053     RadialGradientAttributes collectGradientProperties() const;
0054 
0055 protected:
0056     const SVGElement *contextElement() const override
0057     {
0058         return this;
0059     }
0060 
0061 private:
0062     ANIMATED_PROPERTY_DECLARATIONS(SVGRadialGradientElement, SVGLength, SVGLength, Cx, cx)
0063     ANIMATED_PROPERTY_DECLARATIONS(SVGRadialGradientElement, SVGLength, SVGLength, Cy, cy)
0064     ANIMATED_PROPERTY_DECLARATIONS(SVGRadialGradientElement, SVGLength, SVGLength, R, r)
0065     ANIMATED_PROPERTY_DECLARATIONS(SVGRadialGradientElement, SVGLength, SVGLength, Fx, fx)
0066     ANIMATED_PROPERTY_DECLARATIONS(SVGRadialGradientElement, SVGLength, SVGLength, Fy, fy)
0067 };
0068 
0069 } // namespace WebCore
0070 
0071 #endif // ENABLE(SVG)
0072 #endif