18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 2dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org> 3dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org> 4dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * Copyright (C) 2007 Eric Seidel <eric@webkit.org> 5dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * Copyright (C) 2008 Apple Inc. All rights reserved. 6dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * 7dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * This library is free software; you can redistribute it and/or 8dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * modify it under the terms of the GNU Library General Public 9dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * License as published by the Free Software Foundation; either 10dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * version 2 of the License, or (at your option) any later version. 11dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * 12dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * This library is distributed in the hope that it will be useful, 13dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * but WITHOUT ANY WARRANTY; without even the implied warranty of 14dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * Library General Public License for more details. 16dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * 17dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * You should have received a copy of the GNU Library General Public License 18dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * along with this library; see the file COPYING.LIB. If not, write to 19dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 20dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * Boston, MA 02110-1301, USA. 21dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch */ 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef SVGAnimateTransformElement_h 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define SVGAnimateTransformElement_h 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE(SVG) && ENABLE(SVG_ANIMATION) 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "SVGAnimationElement.h" 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "SVGTransform.h" 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "SVGTransformDistance.h" 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 338a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Blockclass AffineTransform; 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 358a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Blockclass SVGAnimateTransformElement : public SVGAnimationElement { 368a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Blockpublic: 375ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen static PassRefPtr<SVGAnimateTransformElement> create(const QualifiedName&, Document*); 385ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 395ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsenprivate: 408a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block SVGAnimateTransformElement(const QualifiedName&, Document*); 418a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block 4281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch virtual bool hasValidAttributeType() const; 4381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch AnimatedAttributeType determineAnimatedAttributeType(SVGElement*) const; 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 45e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block virtual void parseMappedAttribute(Attribute*); 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 478a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block virtual void resetToBaseValue(const String&); 488a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block virtual bool calculateFromAndToValues(const String& fromString, const String& toString); 498a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block virtual bool calculateFromAndByValues(const String& fromString, const String& byString); 508a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block virtual void calculateAnimatedValue(float percentage, unsigned repeat, SVGSMILElement* resultElement); 518a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block virtual void applyResultsToTarget(); 528a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block virtual float calculateDistance(const String& fromString, const String& toString); 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 548a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block SVGTransform parseTransformValue(const String&) const; 558a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block 568a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block SVGTransform::SVGTransformType m_type; 578a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block 588a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block unsigned m_baseIndexInTransformList; 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 608a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block SVGTransform m_toTransform; 618a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block SVGTransform m_fromTransform; 628a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block}; 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // ENABLE(SVG) 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // SVGAnimateTransformElement_h 68