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 |