| 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 22 matching lines...) Expand all Loading... |
| 33 #include "core/svg/animation/SMILTime.h" | 33 #include "core/svg/animation/SMILTime.h" |
| 34 #include "platform/heap/Handle.h" | 34 #include "platform/heap/Handle.h" |
| 35 #include "wtf/HashMap.h" | 35 #include "wtf/HashMap.h" |
| 36 | 36 |
| 37 namespace blink { | 37 namespace blink { |
| 38 | 38 |
| 39 class ConditionEventListener; | 39 class ConditionEventListener; |
| 40 class SMILTimeContainer; | 40 class SMILTimeContainer; |
| 41 class SVGSMILElement; | 41 class SVGSMILElement; |
| 42 | 42 |
| 43 template<typename T> class EventSender; | |
| 44 using SMILEventSender = EventSender<SVGSMILElement>; | |
| 45 | |
| 46 // This class implements SMIL interval timing model as needed for SVG animation. | 43 // This class implements SMIL interval timing model as needed for SVG animation. |
| 47 class CORE_EXPORT SVGSMILElement : public SVGElement, public SVGTests { | 44 class CORE_EXPORT SVGSMILElement : public SVGElement, public SVGTests { |
| 48 USING_GARBAGE_COLLECTED_MIXIN(SVGSMILElement); | 45 USING_GARBAGE_COLLECTED_MIXIN(SVGSMILElement); |
| 49 public: | 46 public: |
| 50 SVGSMILElement(const QualifiedName&, Document&); | 47 SVGSMILElement(const QualifiedName&, Document&); |
| 51 ~SVGSMILElement() override; | 48 ~SVGSMILElement() override; |
| 52 | 49 |
| 53 void parseAttribute(const QualifiedName&, const AtomicString&, const AtomicS
tring&) override; | 50 void parseAttribute(const QualifiedName&, const AtomicString&, const AtomicS
tring&) override; |
| 54 void svgAttributeChanged(const QualifiedName&) override; | 51 void svgAttributeChanged(const QualifiedName&) override; |
| 55 InsertionNotificationRequest insertedInto(ContainerNode*) override; | 52 InsertionNotificationRequest insertedInto(ContainerNode*) override; |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 virtual void clearAnimatedType() = 0; | 110 virtual void clearAnimatedType() = 0; |
| 114 virtual void applyResultsToTarget() = 0; | 111 virtual void applyResultsToTarget() = 0; |
| 115 | 112 |
| 116 bool animatedTypeIsLocked() const { return m_animatedPropertyLocked; } | 113 bool animatedTypeIsLocked() const { return m_animatedPropertyLocked; } |
| 117 void lockAnimatedType() { DCHECK(!m_animatedPropertyLocked); m_animatedPrope
rtyLocked = true; } | 114 void lockAnimatedType() { DCHECK(!m_animatedPropertyLocked); m_animatedPrope
rtyLocked = true; } |
| 118 void unlockAnimatedType() { DCHECK(m_animatedPropertyLocked); m_animatedProp
ertyLocked = false; } | 115 void unlockAnimatedType() { DCHECK(m_animatedPropertyLocked); m_animatedProp
ertyLocked = false; } |
| 119 | 116 |
| 120 void connectSyncBaseConditions(); | 117 void connectSyncBaseConditions(); |
| 121 void connectEventBaseConditions(); | 118 void connectEventBaseConditions(); |
| 122 | 119 |
| 123 void dispatchPendingEvent(SMILEventSender*); | 120 void scheduleEvent(const AtomicString& eventType); |
| 124 void dispatchRepeatEvents(unsigned); | 121 void scheduleRepeatEvents(unsigned); |
| 122 void dispatchPendingEvent(const AtomicString& eventType); |
| 125 | 123 |
| 126 virtual bool isSVGDiscardElement() const { return false; } | 124 virtual bool isSVGDiscardElement() const { return false; } |
| 127 | 125 |
| 128 DECLARE_VIRTUAL_TRACE(); | 126 DECLARE_VIRTUAL_TRACE(); |
| 129 | 127 |
| 130 protected: | 128 protected: |
| 131 void addBeginTime(SMILTime eventTime, SMILTime endTime, SMILTimeWithOrigin::
Origin = SMILTimeWithOrigin::ParserOrigin); | 129 void addBeginTime(SMILTime eventTime, SMILTime endTime, SMILTimeWithOrigin::
Origin = SMILTimeWithOrigin::ParserOrigin); |
| 132 void addEndTime(SMILTime eventTime, SMILTime endTime, SMILTimeWithOrigin::Or
igin = SMILTimeWithOrigin::ParserOrigin); | 130 void addEndTime(SMILTime eventTime, SMILTime endTime, SMILTimeWithOrigin::Or
igin = SMILTimeWithOrigin::ParserOrigin); |
| 133 | 131 |
| 134 void setInactive() { m_activeState = Inactive; } | 132 void setInactive() { m_activeState = Inactive; } |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 291 { | 289 { |
| 292 return element.hasTagName(SVGNames::setTag) || element.hasTagName(SVGNames::
animateTag) || element.hasTagName(SVGNames::animateMotionTag) | 290 return element.hasTagName(SVGNames::setTag) || element.hasTagName(SVGNames::
animateTag) || element.hasTagName(SVGNames::animateMotionTag) |
| 293 || element.hasTagName(SVGNames::animateTransformTag) || element.hasTagNa
me((SVGNames::discardTag)); | 291 || element.hasTagName(SVGNames::animateTransformTag) || element.hasTagNa
me((SVGNames::discardTag)); |
| 294 } | 292 } |
| 295 | 293 |
| 296 DEFINE_SVGELEMENT_TYPE_CASTS_WITH_FUNCTION(SVGSMILElement); | 294 DEFINE_SVGELEMENT_TYPE_CASTS_WITH_FUNCTION(SVGSMILElement); |
| 297 | 295 |
| 298 } // namespace blink | 296 } // namespace blink |
| 299 | 297 |
| 300 #endif // SVGSMILElement_h | 298 #endif // SVGSMILElement_h |
| OLD | NEW |