| 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 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 | 120 |
| 121 void scheduleEvent(const AtomicString& eventType); | 121 void scheduleEvent(const AtomicString& eventType); |
| 122 void scheduleRepeatEvents(unsigned); | 122 void scheduleRepeatEvents(unsigned); |
| 123 void dispatchPendingEvent(const AtomicString& eventType); | 123 void dispatchPendingEvent(const AtomicString& eventType); |
| 124 | 124 |
| 125 virtual bool isSVGDiscardElement() const { return false; } | 125 virtual bool isSVGDiscardElement() const { return false; } |
| 126 | 126 |
| 127 DECLARE_VIRTUAL_TRACE(); | 127 DECLARE_VIRTUAL_TRACE(); |
| 128 | 128 |
| 129 protected: | 129 protected: |
| 130 void addBeginTime( | 130 enum BeginOrEnd { Begin, End }; |
| 131 SMILTime eventTime, | 131 |
| 132 SMILTime endTime, | 132 void addInstanceTime( |
| 133 SMILTimeWithOrigin::Origin = SMILTimeWithOrigin::ParserOrigin); | 133 BeginOrEnd, |
| 134 void addEndTime( | 134 SMILTime, |
| 135 SMILTime eventTime, | |
| 136 SMILTime endTime, | |
| 137 SMILTimeWithOrigin::Origin = SMILTimeWithOrigin::ParserOrigin); | 135 SMILTimeWithOrigin::Origin = SMILTimeWithOrigin::ParserOrigin); |
| 138 | 136 |
| 139 void setInactive() { m_activeState = Inactive; } | 137 void setInactive() { m_activeState = Inactive; } |
| 140 | 138 |
| 141 // Sub-classes may need to take action when the target is changed. | 139 // Sub-classes may need to take action when the target is changed. |
| 142 virtual void setTargetElement(SVGElement*); | 140 virtual void setTargetElement(SVGElement*); |
| 143 | 141 |
| 144 void schedule(); | 142 void schedule(); |
| 145 void unscheduleIfScheduled(); | 143 void unscheduleIfScheduled(); |
| 146 | 144 |
| 147 QualifiedName m_attributeName; | 145 QualifiedName m_attributeName; |
| 148 | 146 |
| 149 private: | 147 private: |
| 150 void buildPendingResource() override; | 148 void buildPendingResource() override; |
| 151 void clearResourceAndEventBaseReferences(); | 149 void clearResourceAndEventBaseReferences(); |
| 152 void clearConditions(); | 150 void clearConditions(); |
| 153 | 151 |
| 154 virtual void startedActiveInterval() = 0; | 152 virtual void startedActiveInterval() = 0; |
| 155 void endedActiveInterval(); | 153 void endedActiveInterval(); |
| 156 virtual void updateAnimation(float percent, | 154 virtual void updateAnimation(float percent, |
| 157 unsigned repeat, | 155 unsigned repeat, |
| 158 SVGSMILElement* resultElement) = 0; | 156 SVGSMILElement* resultElement) = 0; |
| 159 | 157 |
| 160 bool layoutObjectIsNeeded(const ComputedStyle&) override { return false; } | 158 bool layoutObjectIsNeeded(const ComputedStyle&) override { return false; } |
| 161 | 159 |
| 162 enum BeginOrEnd { Begin, End }; | |
| 163 | |
| 164 SMILTime findInstanceTime(BeginOrEnd, | 160 SMILTime findInstanceTime(BeginOrEnd, |
| 165 SMILTime minimumTime, | 161 SMILTime minimumTime, |
| 166 bool equalsMinimumOK) const; | 162 bool equalsMinimumOK) const; |
| 167 | 163 |
| 168 enum IntervalSelector { FirstInterval, NextInterval }; | 164 enum IntervalSelector { FirstInterval, NextInterval }; |
| 169 | 165 |
| 170 SMILInterval resolveInterval(IntervalSelector) const; | 166 SMILInterval resolveInterval(IntervalSelector) const; |
| 171 void resolveFirstInterval(); | 167 void resolveFirstInterval(); |
| 172 bool resolveNextInterval(); | 168 bool resolveNextInterval(); |
| 173 SMILTime resolveActiveEnd(SMILTime resolvedBegin, SMILTime resolvedEnd) const; | 169 SMILTime resolveActiveEnd(SMILTime resolvedBegin, SMILTime resolvedEnd) const; |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 230 int m_repeat; | 226 int m_repeat; |
| 231 Member<SVGSMILElement> m_syncBase; | 227 Member<SVGSMILElement> m_syncBase; |
| 232 Member<ConditionEventListener> m_eventListener; | 228 Member<ConditionEventListener> m_eventListener; |
| 233 }; | 229 }; |
| 234 bool parseCondition(const String&, BeginOrEnd beginOrEnd); | 230 bool parseCondition(const String&, BeginOrEnd beginOrEnd); |
| 235 void parseBeginOrEnd(const String&, BeginOrEnd beginOrEnd); | 231 void parseBeginOrEnd(const String&, BeginOrEnd beginOrEnd); |
| 236 | 232 |
| 237 void disconnectSyncBaseConditions(); | 233 void disconnectSyncBaseConditions(); |
| 238 void disconnectEventBaseConditions(); | 234 void disconnectEventBaseConditions(); |
| 239 | 235 |
| 240 // Event base timing | |
| 241 void handleConditionEvent(Event*, Condition*); | |
| 242 | |
| 243 void notifyDependentsIntervalChanged(); | 236 void notifyDependentsIntervalChanged(); |
| 244 void createInstanceTimesFromSyncbase(SVGSMILElement& syncbase); | 237 void createInstanceTimesFromSyncbase(SVGSMILElement& syncbase); |
| 245 void addSyncBaseDependent(SVGSMILElement&); | 238 void addSyncBaseDependent(SVGSMILElement&); |
| 246 void removeSyncBaseDependent(SVGSMILElement&); | 239 void removeSyncBaseDependent(SVGSMILElement&); |
| 247 | 240 |
| 248 enum ActiveState { Inactive, Active, Frozen }; | 241 enum ActiveState { Inactive, Active, Frozen }; |
| 249 | 242 |
| 250 ActiveState determineActiveState(SMILTime elapsed) const; | 243 ActiveState determineActiveState(SMILTime elapsed) const; |
| 251 float calculateAnimationPercentAndRepeat(double elapsed, | 244 float calculateAnimationPercentAndRepeat(double elapsed, |
| 252 unsigned& repeat) const; | 245 unsigned& repeat) const; |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 301 element.hasTagName(SVGNames::animateMotionTag) || | 294 element.hasTagName(SVGNames::animateMotionTag) || |
| 302 element.hasTagName(SVGNames::animateTransformTag) || | 295 element.hasTagName(SVGNames::animateTransformTag) || |
| 303 element.hasTagName((SVGNames::discardTag)); | 296 element.hasTagName((SVGNames::discardTag)); |
| 304 } | 297 } |
| 305 | 298 |
| 306 DEFINE_SVGELEMENT_TYPE_CASTS_WITH_FUNCTION(SVGSMILElement); | 299 DEFINE_SVGELEMENT_TYPE_CASTS_WITH_FUNCTION(SVGSMILElement); |
| 307 | 300 |
| 308 } // namespace blink | 301 } // namespace blink |
| 309 | 302 |
| 310 #endif // SVGSMILElement_h | 303 #endif // SVGSMILElement_h |
| OLD | NEW |