| 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 30 matching lines...) Expand all Loading... |
| 41 class SVGSMILElement; | 41 class SVGSMILElement; |
| 42 | 42 |
| 43 template<typename T> class EventSender; | 43 template<typename T> class EventSender; |
| 44 typedef EventSender<SVGSMILElement> SMILEventSender; | 44 typedef EventSender<SVGSMILElement> SMILEventSender; |
| 45 | 45 |
| 46 // This class implements SMIL interval timing model as needed for SVG animation. | 46 // This class implements SMIL interval timing model as needed for SVG animation. |
| 47 class CORE_EXPORT SVGSMILElement : public SVGElement, public SVGTests { | 47 class CORE_EXPORT SVGSMILElement : public SVGElement, public SVGTests { |
| 48 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGSMILElement); | 48 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGSMILElement); |
| 49 public: | 49 public: |
| 50 SVGSMILElement(const QualifiedName&, Document&); | 50 SVGSMILElement(const QualifiedName&, Document&); |
| 51 virtual ~SVGSMILElement(); | 51 ~SVGSMILElement() override; |
| 52 | 52 |
| 53 virtual void parseAttribute(const QualifiedName&, const AtomicString&) overr
ide; | 53 void parseAttribute(const QualifiedName&, const AtomicString&) override; |
| 54 virtual void svgAttributeChanged(const QualifiedName&) override; | 54 void svgAttributeChanged(const QualifiedName&) override; |
| 55 virtual InsertionNotificationRequest insertedInto(ContainerNode*) override; | 55 InsertionNotificationRequest insertedInto(ContainerNode*) override; |
| 56 virtual void removedFrom(ContainerNode*) override; | 56 void removedFrom(ContainerNode*) override; |
| 57 | 57 |
| 58 virtual bool hasValidAttributeType() = 0; | 58 virtual bool hasValidAttributeType() = 0; |
| 59 virtual bool hasValidAttributeName(); | 59 virtual bool hasValidAttributeName(); |
| 60 virtual void animationAttributeChanged() = 0; | 60 virtual void animationAttributeChanged() = 0; |
| 61 | 61 |
| 62 SMILTimeContainer* timeContainer() const { return m_timeContainer.get(); } | 62 SMILTimeContainer* timeContainer() const { return m_timeContainer.get(); } |
| 63 | 63 |
| 64 SVGElement* targetElement() const { return m_targetElement; } | 64 SVGElement* targetElement() const { return m_targetElement; } |
| 65 const QualifiedName& attributeName() const { return m_attributeName; } | 65 const QualifiedName& attributeName() const { return m_attributeName; } |
| 66 | 66 |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 129 void setInactive() { m_activeState = Inactive; } | 129 void setInactive() { m_activeState = Inactive; } |
| 130 | 130 |
| 131 // Sub-classes may need to take action when the target is changed. | 131 // Sub-classes may need to take action when the target is changed. |
| 132 virtual void setTargetElement(SVGElement*); | 132 virtual void setTargetElement(SVGElement*); |
| 133 virtual void setAttributeName(const QualifiedName&); | 133 virtual void setAttributeName(const QualifiedName&); |
| 134 | 134 |
| 135 void schedule(); | 135 void schedule(); |
| 136 void unscheduleIfScheduled(); | 136 void unscheduleIfScheduled(); |
| 137 | 137 |
| 138 private: | 138 private: |
| 139 virtual void buildPendingResource() override; | 139 void buildPendingResource() override; |
| 140 void clearResourceAndEventBaseReferences(); | 140 void clearResourceAndEventBaseReferences(); |
| 141 void clearConditions(); | 141 void clearConditions(); |
| 142 | 142 |
| 143 virtual void startedActiveInterval() = 0; | 143 virtual void startedActiveInterval() = 0; |
| 144 void endedActiveInterval(); | 144 void endedActiveInterval(); |
| 145 virtual void updateAnimation(float percent, unsigned repeat, SVGSMILElement*
resultElement) = 0; | 145 virtual void updateAnimation(float percent, unsigned repeat, SVGSMILElement*
resultElement) = 0; |
| 146 | 146 |
| 147 virtual bool layoutObjectIsNeeded(const ComputedStyle&) override { return fa
lse; } | 147 bool layoutObjectIsNeeded(const ComputedStyle&) override { return false; } |
| 148 | 148 |
| 149 enum BeginOrEnd { | 149 enum BeginOrEnd { |
| 150 Begin, | 150 Begin, |
| 151 End | 151 End |
| 152 }; | 152 }; |
| 153 | 153 |
| 154 SMILTime findInstanceTime(BeginOrEnd, SMILTime minimumTime, bool equalsMinim
umOK) const; | 154 SMILTime findInstanceTime(BeginOrEnd, SMILTime minimumTime, bool equalsMinim
umOK) const; |
| 155 | 155 |
| 156 enum ResolveInterval { | 156 enum ResolveInterval { |
| 157 FirstInterval, | 157 FirstInterval, |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 { | 284 { |
| 285 return element.hasTagName(SVGNames::setTag) || element.hasTagName(SVGNames::
animateTag) || element.hasTagName(SVGNames::animateMotionTag) | 285 return element.hasTagName(SVGNames::setTag) || element.hasTagName(SVGNames::
animateTag) || element.hasTagName(SVGNames::animateMotionTag) |
| 286 || element.hasTagName(SVGNames::animateTransformTag) || element.hasTagNa
me((SVGNames::discardTag)); | 286 || element.hasTagName(SVGNames::animateTransformTag) || element.hasTagNa
me((SVGNames::discardTag)); |
| 287 } | 287 } |
| 288 | 288 |
| 289 DEFINE_SVGELEMENT_TYPE_CASTS_WITH_FUNCTION(SVGSMILElement); | 289 DEFINE_SVGELEMENT_TYPE_CASTS_WITH_FUNCTION(SVGSMILElement); |
| 290 | 290 |
| 291 } | 291 } |
| 292 | 292 |
| 293 #endif // SVGSMILElement_h | 293 #endif // SVGSMILElement_h |
| OLD | NEW |