| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright (C) 2008 Apple Inc. All rights reserved. | 2  * Copyright (C) 2008 Apple Inc. All rights reserved. | 
| 3  * | 3  * | 
| 4  * Redistribution and use in source and binary forms, with or without | 4  * Redistribution and use in source and binary forms, with or without | 
| 5  * modification, are permitted provided that the following conditions | 5  * modification, are permitted provided that the following conditions | 
| 6  * are met: | 6  * are met: | 
| 7  * 1. Redistributions of source code must retain the above copyright | 7  * 1. Redistributions of source code must retain the above copyright | 
| 8  *    notice, this list of conditions and the following disclaimer. | 8  *    notice, this list of conditions and the following disclaimer. | 
| 9  * 2. Redistributions in binary form must reproduce the above copyright | 9  * 2. Redistributions in binary form must reproduce the above copyright | 
| 10  *    notice, this list of conditions and the following disclaimer in the | 10  *    notice, this list of conditions and the following disclaimer in the | 
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 102     bool isContributing(SMILTime elapsed) const; | 102     bool isContributing(SMILTime elapsed) const; | 
| 103     bool isFrozen() const; | 103     bool isFrozen() const; | 
| 104 | 104 | 
| 105     unsigned documentOrderIndex() const { return m_documentOrderIndex; } | 105     unsigned documentOrderIndex() const { return m_documentOrderIndex; } | 
| 106     void setDocumentOrderIndex(unsigned index) { m_documentOrderIndex = index; } | 106     void setDocumentOrderIndex(unsigned index) { m_documentOrderIndex = index; } | 
| 107 | 107 | 
| 108     virtual void resetAnimatedType() = 0; | 108     virtual void resetAnimatedType() = 0; | 
| 109     virtual void clearAnimatedType(SVGElement* targetElement) = 0; | 109     virtual void clearAnimatedType(SVGElement* targetElement) = 0; | 
| 110     virtual void applyResultsToTarget() = 0; | 110     virtual void applyResultsToTarget() = 0; | 
| 111 | 111 | 
| 112     void connectConditions(); | 112     void connectSyncBaseConditions(); | 
|  | 113     void connectEventBaseConditions(); | 
| 113 | 114 | 
| 114     void dispatchPendingEvent(SMILEventSender*); | 115     void dispatchPendingEvent(SMILEventSender*); | 
| 115     void dispatchRepeatEvents(unsigned); | 116     void dispatchRepeatEvents(unsigned); | 
| 116 | 117 | 
| 117 protected: | 118 protected: | 
| 118     void addBeginTime(SMILTime eventTime, SMILTime endTime, SMILTimeWithOrigin::
     Origin = SMILTimeWithOrigin::ParserOrigin); | 119     void addBeginTime(SMILTime eventTime, SMILTime endTime, SMILTimeWithOrigin::
     Origin = SMILTimeWithOrigin::ParserOrigin); | 
| 119     void addEndTime(SMILTime eventTime, SMILTime endTime, SMILTimeWithOrigin::Or
     igin = SMILTimeWithOrigin::ParserOrigin); | 120     void addEndTime(SMILTime eventTime, SMILTime endTime, SMILTimeWithOrigin::Or
     igin = SMILTimeWithOrigin::ParserOrigin); | 
| 120 | 121 | 
| 121     void setInactive() { m_activeState = Inactive; } | 122     void setInactive() { m_activeState = Inactive; } | 
| 122 | 123 | 
| 123     // Sub-classes may need to take action when the target is changed. | 124     // Sub-classes may need to take action when the target is changed. | 
| 124     virtual void setTargetElement(SVGElement*); | 125     virtual void setTargetElement(SVGElement*); | 
| 125     virtual void setAttributeName(const QualifiedName&); | 126     virtual void setAttributeName(const QualifiedName&); | 
| 126 | 127 | 
| 127 private: | 128 private: | 
| 128     void buildPendingResource(); | 129     void buildPendingResource(); | 
| 129     void clearResourceReferences(); | 130     void clearResourceAndEventBaseReferences(); | 
| 130 | 131 | 
| 131     virtual void startedActiveInterval() = 0; | 132     virtual void startedActiveInterval() = 0; | 
| 132     void endedActiveInterval(); | 133     void endedActiveInterval(); | 
| 133     virtual void updateAnimation(float percent, unsigned repeat, SVGSMILElement*
      resultElement) = 0; | 134     virtual void updateAnimation(float percent, unsigned repeat, SVGSMILElement*
      resultElement) = 0; | 
| 134 | 135 | 
| 135     virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; } | 136     virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; } | 
| 136 | 137 | 
| 137     enum BeginOrEnd { | 138     enum BeginOrEnd { | 
| 138         Begin, | 139         Begin, | 
| 139         End | 140         End | 
| (...skipping 25 matching lines...) Expand all  Loading... | 
| 165         String m_name; | 166         String m_name; | 
| 166         SMILTime m_offset; | 167         SMILTime m_offset; | 
| 167         int m_repeat; | 168         int m_repeat; | 
| 168         RefPtr<Element> m_syncbase; | 169         RefPtr<Element> m_syncbase; | 
| 169         RefPtr<ConditionEventListener> m_eventListener; | 170         RefPtr<ConditionEventListener> m_eventListener; | 
| 170     }; | 171     }; | 
| 171     bool parseCondition(const String&, BeginOrEnd beginOrEnd); | 172     bool parseCondition(const String&, BeginOrEnd beginOrEnd); | 
| 172     void parseBeginOrEnd(const String&, BeginOrEnd beginOrEnd); | 173     void parseBeginOrEnd(const String&, BeginOrEnd beginOrEnd); | 
| 173     Element* eventBaseFor(const Condition&); | 174     Element* eventBaseFor(const Condition&); | 
| 174 | 175 | 
| 175     void disconnectConditions(); | 176     void disconnectSyncBaseConditions(); | 
|  | 177     void disconnectEventBaseConditions(); | 
| 176 | 178 | 
| 177     // Event base timing | 179     // Event base timing | 
| 178     void handleConditionEvent(Event*, Condition*); | 180     void handleConditionEvent(Event*, Condition*); | 
| 179 | 181 | 
| 180     void notifyDependentsIntervalChanged(); | 182     void notifyDependentsIntervalChanged(); | 
| 181     void createInstanceTimesFromSyncbase(SVGSMILElement* syncbase); | 183     void createInstanceTimesFromSyncbase(SVGSMILElement* syncbase); | 
| 182     void addTimeDependent(SVGSMILElement*); | 184     void addSyncBaseDependent(SVGSMILElement*); | 
| 183     void removeTimeDependent(SVGSMILElement*); | 185     void removeSyncBaseDependent(SVGSMILElement*); | 
| 184 | 186 | 
| 185     enum ActiveState { | 187     enum ActiveState { | 
| 186         Inactive, | 188         Inactive, | 
| 187         Active, | 189         Active, | 
| 188         Frozen | 190         Frozen | 
| 189     }; | 191     }; | 
| 190 | 192 | 
| 191     QualifiedName m_attributeName; | 193     QualifiedName m_attributeName; | 
| 192 | 194 | 
| 193     ActiveState determineActiveState(SMILTime elapsed) const; | 195     ActiveState determineActiveState(SMILTime elapsed) const; | 
| 194     float calculateAnimationPercentAndRepeat(SMILTime elapsed, unsigned& repeat)
      const; | 196     float calculateAnimationPercentAndRepeat(SMILTime elapsed, unsigned& repeat)
      const; | 
| 195     SMILTime calculateNextProgressTime(SMILTime elapsed) const; | 197     SMILTime calculateNextProgressTime(SMILTime elapsed) const; | 
| 196 | 198 | 
| 197     mutable SVGElement* m_targetElement; | 199     mutable SVGElement* m_targetElement; | 
| 198 | 200 | 
| 199     Vector<Condition> m_conditions; | 201     Vector<Condition> m_conditions; | 
| 200     bool m_conditionsConnected; | 202     bool m_syncBaseConditionsConnected; | 
| 201     bool m_hasEndEventConditions; | 203     bool m_hasEndEventConditions; | 
| 202 | 204 | 
| 203     bool m_isWaitingForFirstInterval; | 205     bool m_isWaitingForFirstInterval; | 
| 204 | 206 | 
| 205     typedef HashSet<SVGSMILElement*> TimeDependentSet; | 207     typedef HashSet<SVGSMILElement*> TimeDependentSet; | 
| 206     TimeDependentSet m_timeDependents; | 208     TimeDependentSet m_syncBaseDependents; | 
| 207 | 209 | 
| 208     // Instance time lists | 210     // Instance time lists | 
| 209     Vector<SMILTimeWithOrigin> m_beginTimes; | 211     Vector<SMILTimeWithOrigin> m_beginTimes; | 
| 210     Vector<SMILTimeWithOrigin> m_endTimes; | 212     Vector<SMILTimeWithOrigin> m_endTimes; | 
| 211 | 213 | 
| 212     // This is the upcoming or current interval | 214     // This is the upcoming or current interval | 
| 213     SMILTime m_intervalBegin; | 215     SMILTime m_intervalBegin; | 
| 214     SMILTime m_intervalEnd; | 216     SMILTime m_intervalEnd; | 
| 215 | 217 | 
| 216     SMILTime m_previousIntervalBegin; | 218     SMILTime m_previousIntervalBegin; | 
| (...skipping 22 matching lines...) Expand all  Loading... | 
| 239 { | 241 { | 
| 240     return node.hasTagName(SVGNames::setTag) || node.hasTagName(SVGNames::animat
     eTag) || node.hasTagName(SVGNames::animateMotionTag) | 242     return node.hasTagName(SVGNames::setTag) || node.hasTagName(SVGNames::animat
     eTag) || node.hasTagName(SVGNames::animateMotionTag) | 
| 241         || node.hasTagName(SVGNames::animateTransformTag) || node.hasTagName(SVG
     Names::animateColorTag); | 243         || node.hasTagName(SVGNames::animateTransformTag) || node.hasTagName(SVG
     Names::animateColorTag); | 
| 242 } | 244 } | 
| 243 | 245 | 
| 244 DEFINE_NODE_TYPE_CASTS_WITH_FUNCTION(SVGSMILElement); | 246 DEFINE_NODE_TYPE_CASTS_WITH_FUNCTION(SVGSMILElement); | 
| 245 | 247 | 
| 246 } | 248 } | 
| 247 | 249 | 
| 248 #endif // SVGSMILElement_h | 250 #endif // SVGSMILElement_h | 
| OLD | NEW | 
|---|