1 /* 2 Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org> 3 2004, 2005 Rob Buis <buis@kde.org> 4 Copyright (C) 2008 Apple Inc. All rights reserved. 5 6 This file is part of the KDE project 7 8 This library is free software; you can redistribute it and/or 9 modify it under the terms of the GNU Library General Public 10 License as published by the Free Software Foundation; either 11 version 2 of the License, or (at your option) any later version. 12 13 This library is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 Library General Public License for more details. 17 18 You should have received a copy of the GNU Library General Public License 19 along with this library; see the file COPYING.LIB. If not, write to 20 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 21 Boston, MA 02110-1301, USA. 22 */ 23 24 #ifndef SVGAnimateElement_h 25 #define SVGAnimateElement_h 26 27 #if ENABLE(SVG) && ENABLE(SVG_ANIMATION) 28 29 #include "Color.h" 30 #include "SVGAnimationElement.h" 31 32 namespace WebCore { 33 class SVGPathSegList; 34 35 class SVGAnimateElement : public SVGAnimationElement { 36 public: 37 SVGAnimateElement(const QualifiedName&, Document*); 38 virtual ~SVGAnimateElement(); 39 40 protected: 41 virtual void resetToBaseValue(const String&); 42 virtual bool calculateFromAndToValues(const String& fromString, const String& toString); 43 virtual bool calculateFromAndByValues(const String& fromString, const String& byString); 44 virtual void calculateAnimatedValue(float percentage, unsigned repeat, SVGSMILElement* resultElement); 45 virtual void applyResultsToTarget(); 46 virtual float calculateDistance(const String& fromString, const String& toString); 47 48 private: 49 enum PropertyType { NumberProperty, ColorProperty, StringProperty, PathProperty }; 50 PropertyType determinePropertyType(const String& attribute) const; 51 PropertyType m_propertyType; 52 53 double m_fromNumber; 54 double m_toNumber; 55 double m_animatedNumber; 56 String m_numberUnit; 57 Color m_fromColor; 58 Color m_toColor; 59 Color m_animatedColor; 60 String m_fromString; 61 String m_toString; 62 String m_animatedString; 63 RefPtr<SVGPathSegList> m_fromPath; 64 RefPtr<SVGPathSegList> m_toPath; 65 RefPtr<SVGPathSegList> m_animatedPath; 66 }; 67 68 } // namespace WebCore 69 70 #endif // ENABLE(SVG) 71 #endif // SVGAnimateElement_h 72 73 // vim:ts=4:noet 74