OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org> | 2 * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org> |
3 * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org> | 3 * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org> |
4 * Copyright (C) 2007 Eric Seidel <eric@webkit.org> | 4 * Copyright (C) 2007 Eric Seidel <eric@webkit.org> |
5 * Copyright (C) 2008 Apple Inc. All rights reserved. | 5 * Copyright (C) 2008 Apple Inc. All rights reserved. |
6 * Copyright (C) 2008 Cameron McCormack <cam@mcc.id.au> | 6 * Copyright (C) 2008 Cameron McCormack <cam@mcc.id.au> |
7 * Copyright (C) Research In Motion Limited 2011. All rights reserved. | 7 * Copyright (C) Research In Motion Limited 2011. All rights reserved. |
8 * | 8 * |
9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
11 * License as published by the Free Software Foundation; either | 11 * License as published by the Free Software Foundation; either |
12 * version 2 of the License, or (at your option) any later version. | 12 * version 2 of the License, or (at your option) any later version. |
13 * | 13 * |
14 * This library is distributed in the hope that it will be useful, | 14 * This library is distributed in the hope that it will be useful, |
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
17 * Library General Public License for more details. | 17 * Library General Public License for more details. |
18 * | 18 * |
19 * You should have received a copy of the GNU Library General Public License | 19 * You should have received a copy of the GNU Library General Public License |
20 * along with this library; see the file COPYING.LIB. If not, write to | 20 * along with this library; see the file COPYING.LIB. If not, write to |
21 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 21 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
22 * Boston, MA 02110-1301, USA. | 22 * Boston, MA 02110-1301, USA. |
23 */ | 23 */ |
24 | 24 |
25 #ifndef SVGAnimationElement_h | 25 #ifndef SVGAnimationElement_h |
26 #define SVGAnimationElement_h | 26 #define SVGAnimationElement_h |
27 | 27 |
28 #include "core/svg/SVGAnimatedBoolean.h" | 28 #include "core/svg/SVGAnimatedBoolean.h" |
29 #include "core/svg/SVGExternalResourcesRequired.h" | |
30 #include "core/svg/SVGTests.h" | 29 #include "core/svg/SVGTests.h" |
31 #include "core/svg/animation/SVGSMILElement.h" | 30 #include "core/svg/animation/SVGSMILElement.h" |
32 #include "platform/animation/UnitBezier.h" | 31 #include "platform/animation/UnitBezier.h" |
33 #include "wtf/Functional.h" | 32 #include "wtf/Functional.h" |
34 | 33 |
35 namespace WebCore { | 34 namespace WebCore { |
36 | 35 |
37 enum AnimationMode { | 36 enum AnimationMode { |
38 NoAnimation, | 37 NoAnimation, |
39 FromToAnimation, | 38 FromToAnimation, |
(...skipping 17 matching lines...) Expand all Loading... |
57 CalcModeLinear, | 56 CalcModeLinear, |
58 CalcModePaced, | 57 CalcModePaced, |
59 CalcModeSpline | 58 CalcModeSpline |
60 }; | 59 }; |
61 | 60 |
62 class ConditionEventListener; | 61 class ConditionEventListener; |
63 class TimeContainer; | 62 class TimeContainer; |
64 class SVGAnimatedType; | 63 class SVGAnimatedType; |
65 | 64 |
66 class SVGAnimationElement : public SVGSMILElement, | 65 class SVGAnimationElement : public SVGSMILElement, |
67 public SVGTests, | 66 public SVGTests { |
68 public SVGExternalResourcesRequired { | |
69 public: | 67 public: |
70 // SVGAnimationElement | 68 // SVGAnimationElement |
71 float getStartTime() const; | 69 float getStartTime() const; |
72 float getCurrentTime() const; | 70 float getCurrentTime() const; |
73 float getSimpleDuration() const; | 71 float getSimpleDuration() const; |
74 | 72 |
75 void beginElement(); | 73 void beginElement(); |
76 void beginElementAt(float offset); | 74 void beginElementAt(float offset); |
77 void endElement(); | 75 void endElement(); |
78 void endElementAt(float offset); | 76 void endElementAt(float offset); |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
221 void calculateKeyTimesForCalcModePaced(); | 219 void calculateKeyTimesForCalcModePaced(); |
222 float calculatePercentFromKeyPoints(float percent) const; | 220 float calculatePercentFromKeyPoints(float percent) const; |
223 void currentValuesFromKeyPoints(float percent, float& effectivePercent, Stri
ng& from, String& to) const; | 221 void currentValuesFromKeyPoints(float percent, float& effectivePercent, Stri
ng& from, String& to) const; |
224 float calculatePercentForSpline(float percent, unsigned splineIndex) const; | 222 float calculatePercentForSpline(float percent, unsigned splineIndex) const; |
225 float calculatePercentForFromTo(float percent) const; | 223 float calculatePercentForFromTo(float percent) const; |
226 unsigned calculateKeyTimesIndex(float percent) const; | 224 unsigned calculateKeyTimesIndex(float percent) const; |
227 | 225 |
228 void adjustForInheritance(SVGElement* targetElement, const QualifiedName& at
tributeName, String&); | 226 void adjustForInheritance(SVGElement* targetElement, const QualifiedName& at
tributeName, String&); |
229 | 227 |
230 BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGAnimationElement) | 228 BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGAnimationElement) |
231 DECLARE_ANIMATED_BOOLEAN(ExternalResourcesRequired, externalResourcesReq
uired) | |
232 END_DECLARE_ANIMATED_PROPERTIES | 229 END_DECLARE_ANIMATED_PROPERTIES |
233 | 230 |
234 // SVGTests | 231 // SVGTests |
235 virtual void synchronizeRequiredFeatures() { SVGTests::synchronizeRequiredFe
atures(this); } | 232 virtual void synchronizeRequiredFeatures() { SVGTests::synchronizeRequiredFe
atures(this); } |
236 virtual void synchronizeRequiredExtensions() { SVGTests::synchronizeRequired
Extensions(this); } | 233 virtual void synchronizeRequiredExtensions() { SVGTests::synchronizeRequired
Extensions(this); } |
237 virtual void synchronizeSystemLanguage() { SVGTests::synchronizeSystemLangua
ge(this); } | 234 virtual void synchronizeSystemLanguage() { SVGTests::synchronizeSystemLangua
ge(this); } |
238 | 235 |
239 void setCalcMode(const AtomicString&); | 236 void setCalcMode(const AtomicString&); |
240 | 237 |
241 bool m_animationValid; | 238 bool m_animationValid; |
242 | 239 |
243 AttributeType m_attributeType; | 240 AttributeType m_attributeType; |
244 Vector<String> m_values; | 241 Vector<String> m_values; |
245 // FIXME: We should probably use doubles for this, but there's no point | 242 // FIXME: We should probably use doubles for this, but there's no point |
246 // making such a change unless all SVG logic for sampling animations is | 243 // making such a change unless all SVG logic for sampling animations is |
247 // changed to use doubles. | 244 // changed to use doubles. |
248 Vector<float> m_keyTimes; | 245 Vector<float> m_keyTimes; |
249 Vector<float> m_keyPoints; | 246 Vector<float> m_keyPoints; |
250 Vector<UnitBezier> m_keySplines; | 247 Vector<UnitBezier> m_keySplines; |
251 String m_lastValuesAnimationFrom; | 248 String m_lastValuesAnimationFrom; |
252 String m_lastValuesAnimationTo; | 249 String m_lastValuesAnimationTo; |
253 bool m_hasInvalidCSSAttributeType; | 250 bool m_hasInvalidCSSAttributeType; |
254 CalcMode m_calcMode; | 251 CalcMode m_calcMode; |
255 AnimationMode m_animationMode; | 252 AnimationMode m_animationMode; |
256 }; | 253 }; |
257 | 254 |
258 } // namespace WebCore | 255 } // namespace WebCore |
259 | 256 |
260 #endif // SVGAnimationElement_h | 257 #endif // SVGAnimationElement_h |
OLD | NEW |