| 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 |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 } | 111 } |
| 112 | 112 |
| 113 protected: | 113 protected: |
| 114 SVGAnimationElement(const QualifiedName&, Document&); | 114 SVGAnimationElement(const QualifiedName&, Document&); |
| 115 | 115 |
| 116 void parseAttribute(const QualifiedName&, | 116 void parseAttribute(const QualifiedName&, |
| 117 const AtomicString&, | 117 const AtomicString&, |
| 118 const AtomicString&) override; | 118 const AtomicString&) override; |
| 119 void svgAttributeChanged(const QualifiedName&) override; | 119 void svgAttributeChanged(const QualifiedName&) override; |
| 120 | 120 |
| 121 enum AttributeType { AttributeTypeCSS, AttributeTypeXML, AttributeTypeAuto }; | |
| 122 AttributeType getAttributeType() const { return m_attributeType; } | |
| 123 | |
| 124 String toValue() const; | 121 String toValue() const; |
| 125 String byValue() const; | 122 String byValue() const; |
| 126 String fromValue() const; | 123 String fromValue() const; |
| 127 | 124 |
| 128 // from SVGSMILElement | 125 // from SVGSMILElement |
| 129 void startedActiveInterval() override; | 126 void startedActiveInterval() override; |
| 130 void updateAnimation(float percent, | 127 void updateAnimation(float percent, |
| 131 unsigned repeat, | 128 unsigned repeat, |
| 132 SVGSMILElement* resultElement) override; | 129 SVGSMILElement* resultElement) override; |
| 133 | 130 |
| 134 void setTargetElement(SVGElement*) override; | |
| 135 void setAttributeName(const QualifiedName&) override; | |
| 136 | |
| 137 bool hasInvalidCSSAttributeType() const { | |
| 138 return m_hasInvalidCSSAttributeType; | |
| 139 } | |
| 140 | |
| 141 virtual void updateAnimationMode(); | 131 virtual void updateAnimationMode(); |
| 142 void setAnimationMode(AnimationMode animationMode) { | 132 void setAnimationMode(AnimationMode animationMode) { |
| 143 m_animationMode = animationMode; | 133 m_animationMode = animationMode; |
| 144 } | 134 } |
| 145 void setCalcMode(CalcMode calcMode) { m_calcMode = calcMode; } | 135 void setCalcMode(CalcMode calcMode) { m_calcMode = calcMode; } |
| 146 | 136 |
| 147 // Parses a list of values as specified by SVG, stripping leading | 137 // Parses a list of values as specified by SVG, stripping leading |
| 148 // and trailing whitespace, and places them in result. If the | 138 // and trailing whitespace, and places them in result. If the |
| 149 // format of the string is not valid, parseValues empties result | 139 // format of the string is not valid, parseValues empties result |
| 150 // and returns false. See | 140 // and returns false. See |
| 151 // http://www.w3.org/TR/SVG/animate.html#ValuesAttribute . | 141 // http://www.w3.org/TR/SVG/animate.html#ValuesAttribute . |
| 152 static bool parseValues(const String&, Vector<String>& result); | 142 static bool parseValues(const String&, Vector<String>& result); |
| 153 | 143 |
| 144 void animationAttributeChanged() override; |
| 145 |
| 154 private: | 146 private: |
| 155 bool isValid() const final { return SVGTests::isValid(); } | 147 bool isValid() const final { return SVGTests::isValid(); } |
| 156 | 148 |
| 157 void animationAttributeChanged() override; | |
| 158 void setAttributeType(const AtomicString&); | |
| 159 | |
| 160 void checkInvalidCSSAttributeType(); | |
| 161 | |
| 162 virtual bool calculateToAtEndOfDurationValue( | 149 virtual bool calculateToAtEndOfDurationValue( |
| 163 const String& toAtEndOfDurationString) = 0; | 150 const String& toAtEndOfDurationString) = 0; |
| 164 virtual bool calculateFromAndToValues(const String& fromString, | 151 virtual bool calculateFromAndToValues(const String& fromString, |
| 165 const String& toString) = 0; | 152 const String& toString) = 0; |
| 166 virtual bool calculateFromAndByValues(const String& fromString, | 153 virtual bool calculateFromAndByValues(const String& fromString, |
| 167 const String& byString) = 0; | 154 const String& byString) = 0; |
| 168 virtual void calculateAnimatedValue(float percent, | 155 virtual void calculateAnimatedValue(float percent, |
| 169 unsigned repeatCount, | 156 unsigned repeatCount, |
| 170 SVGSMILElement* resultElement) = 0; | 157 SVGSMILElement* resultElement) = 0; |
| 171 virtual float calculateDistance(const String& /*fromString*/, | 158 virtual float calculateDistance(const String& /*fromString*/, |
| (...skipping 12 matching lines...) Expand all Loading... |
| 184 String& from, | 171 String& from, |
| 185 String& to) const; | 172 String& to) const; |
| 186 float calculatePercentForSpline(float percent, unsigned splineIndex) const; | 173 float calculatePercentForSpline(float percent, unsigned splineIndex) const; |
| 187 float calculatePercentForFromTo(float percent) const; | 174 float calculatePercentForFromTo(float percent) const; |
| 188 unsigned calculateKeyTimesIndex(float percent) const; | 175 unsigned calculateKeyTimesIndex(float percent) const; |
| 189 | 176 |
| 190 void setCalcMode(const AtomicString&); | 177 void setCalcMode(const AtomicString&); |
| 191 | 178 |
| 192 bool m_animationValid; | 179 bool m_animationValid; |
| 193 | 180 |
| 194 AttributeType m_attributeType; | |
| 195 Vector<String> m_values; | 181 Vector<String> m_values; |
| 196 // FIXME: We should probably use doubles for this, but there's no point | 182 // FIXME: We should probably use doubles for this, but there's no point |
| 197 // making such a change unless all SVG logic for sampling animations is | 183 // making such a change unless all SVG logic for sampling animations is |
| 198 // changed to use doubles. | 184 // changed to use doubles. |
| 199 Vector<float> m_keyTimes; | 185 Vector<float> m_keyTimes; |
| 200 Vector<float> m_keyPoints; | 186 Vector<float> m_keyPoints; |
| 201 Vector<gfx::CubicBezier> m_keySplines; | 187 Vector<gfx::CubicBezier> m_keySplines; |
| 202 String m_lastValuesAnimationFrom; | 188 String m_lastValuesAnimationFrom; |
| 203 String m_lastValuesAnimationTo; | 189 String m_lastValuesAnimationTo; |
| 204 bool m_hasInvalidCSSAttributeType; | |
| 205 CalcMode m_calcMode; | 190 CalcMode m_calcMode; |
| 206 AnimationMode m_animationMode; | 191 AnimationMode m_animationMode; |
| 207 }; | 192 }; |
| 208 | 193 |
| 209 } // namespace blink | 194 } // namespace blink |
| 210 | 195 |
| 211 #endif // SVGAnimationElement_h | 196 #endif // SVGAnimationElement_h |
| OLD | NEW |