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

0001 /*
0002  Copyright (C) 2006 Oliver Hunt <oliver@nerget.com>
0003 
0004  This library is free software; you can redistribute it and/or
0005  modify it under the terms of the GNU Library General Public
0006  License as published by the Free Software Foundation; either
0007  version 2 of the License, or (at your option) any later version.
0008 
0009  This library is distributed in the hope that it will be useful,
0010  but WITHOUT ANY WARRANTY; without even the implied warranty of
0011  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012  Library General Public License for more details.
0013 
0014  You should have received a copy of the GNU Library General Public License
0015  along with this library; see the file COPYING.LIB.  If not, write to
0016  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0017  Boston, MA 02110-1301, USA.
0018  */
0019 
0020 #ifndef SVGFEDisplacementMapElement_h
0021 #define SVGFEDisplacementMapElement_h
0022 
0023 #if ENABLE(SVG) && ENABLE(SVG_FILTERS)
0024 #include "SVGFEDisplacementMap.h"
0025 #include "SVGFilterPrimitiveStandardAttributes.h"
0026 
0027 namespace WebCore
0028 {
0029 
0030 class SVGFEDisplacementMapElement : public SVGFilterPrimitiveStandardAttributes
0031 {
0032 public:
0033     SVGFEDisplacementMapElement(const QualifiedName &tagName, Document *);
0034     virtual ~SVGFEDisplacementMapElement();
0035 
0036     static SVGChannelSelectorType stringToChannel(const String &);
0037 
0038     virtual void parseMappedAttribute(MappedAttribute *);
0039     virtual SVGFEDisplacementMap *filterEffect(SVGResourceFilter *) const;
0040 
0041 protected:
0042     virtual const SVGElement *contextElement() const
0043     {
0044         return this;
0045     }
0046 
0047 private:
0048     ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, String, String, In1, in1)
0049     ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, String, String, In2, in2)
0050     ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, int, int, XChannelSelector, xChannelSelector)
0051     ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, int, int, YChannelSelector, yChannelSelector)
0052     ANIMATED_PROPERTY_DECLARATIONS(SVGFEDisplacementMapElement, float, float, Scale, scale)
0053 
0054     mutable SVGFEDisplacementMap *m_filterEffect;
0055 };
0056 
0057 } // namespace WebCore
0058 
0059 #endif // ENABLE(SVG)
0060 #endif // SVGFEDisplacementMapElement_h