SVGAnimateElement.h revision f486d19d62f1bc33246748b14b14a9dfa617b57f
18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 2dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org> 3dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org> 4dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * Copyright (C) 2008 Apple Inc. All rights reserved. 5dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * 6dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * This library is free software; you can redistribute it and/or 7dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * modify it under the terms of the GNU Library General Public 8dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * License as published by the Free Software Foundation; either 9dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * version 2 of the License, or (at your option) any later version. 10dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * 11dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * This library is distributed in the hope that it will be useful, 12dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * but WITHOUT ANY WARRANTY; without even the implied warranty of 13dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * Library General Public License for more details. 15dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * 16dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * You should have received a copy of the GNU Library General Public License 17dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * along with this library; see the file COPYING.LIB. If not, write to 18dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 19dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * Boston, MA 02110-1301, USA. 20dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch */ 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef SVGAnimateElement_h 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define SVGAnimateElement_h 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE(SVG) && ENABLE(SVG_ANIMATION) 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "Color.h" 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "SVGAnimationElement.h" 29f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick#include "SVGPathByteStream.h" 30f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick#include <wtf/OwnPtr.h> 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class SVGPathSegList; 34dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block class SVGPointList; 358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project class SVGAnimateElement : public SVGAnimationElement { 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project public: 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project SVGAnimateElement(const QualifiedName&, Document*); 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual ~SVGAnimateElement(); 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project protected: 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void resetToBaseValue(const String&); 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool calculateFromAndToValues(const String& fromString, const String& toString); 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool calculateFromAndByValues(const String& fromString, const String& byString); 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void calculateAnimatedValue(float percentage, unsigned repeat, SVGSMILElement* resultElement); 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void applyResultsToTarget(); 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual float calculateDistance(const String& fromString, const String& toString); 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project private: 50dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block enum PropertyType { NumberProperty, ColorProperty, StringProperty, PathProperty, PointsProperty }; 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PropertyType determinePropertyType(const String& attribute) const; 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PropertyType m_propertyType; 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project double m_fromNumber; 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project double m_toNumber; 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project double m_animatedNumber; 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String m_numberUnit; 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Color m_fromColor; 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Color m_toColor; 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Color m_animatedColor; 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String m_fromString; 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String m_toString; 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String m_animatedString; 64f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick OwnPtr<SVGPathByteStream> m_fromPath; 65f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick OwnPtr<SVGPathByteStream> m_toPath; 66f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick OwnPtr<SVGPathByteStream> m_animatedPath; 67f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick SVGPathByteStream* m_animatedPathPointer; 68dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block RefPtr<SVGPointList> m_fromPoints; 69dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block RefPtr<SVGPointList> m_toPoints; 70dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block RefPtr<SVGPointList> m_animatedPoints; 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }; 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // ENABLE(SVG) 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // SVGAnimateElement_h 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// vim:ts=4:noet 79