Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(114)

Side by Side Diff: Source/WebCore/svg/animation/SVGSMILElement.h

Issue 11229037: Merge 129670 - Refactor SMILTimeContainer to maintain animation information instead of recalculatin… (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1271/
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 14 matching lines...) Expand all
25 25
26 #ifndef SVGSMILElement_h 26 #ifndef SVGSMILElement_h
27 #define SVGSMILElement_h 27 #define SVGSMILElement_h
28 #if ENABLE(SVG) 28 #if ENABLE(SVG)
29 #include "SMILTime.h" 29 #include "SMILTime.h"
30 #include "SVGElement.h" 30 #include "SVGElement.h"
31 31
32 #include <wtf/HashMap.h> 32 #include <wtf/HashMap.h>
33 33
34 namespace WebCore { 34 namespace WebCore {
35 35
36 enum ResolveTarget { DoNotResolveNewTarget, ResolveNewTarget };
37
36 class ConditionEventListener; 38 class ConditionEventListener;
37 class SMILTimeContainer; 39 class SMILTimeContainer;
38 40
39 // This class implements SMIL interval timing model as needed for SVG animation. 41 // This class implements SMIL interval timing model as needed for SVG animation.
40 class SVGSMILElement : public SVGElement { 42 class SVGSMILElement : public SVGElement {
41 public: 43 public:
42 SVGSMILElement(const QualifiedName&, Document*); 44 SVGSMILElement(const QualifiedName&, Document*);
43 virtual ~SVGSMILElement(); 45 virtual ~SVGSMILElement();
44 46
45 static bool isSMILElement(Node*); 47 static bool isSMILElement(Node*);
46 48
47 bool isSupportedAttribute(const QualifiedName&); 49 bool isSupportedAttribute(const QualifiedName&);
48 virtual void parseAttribute(const Attribute&) OVERRIDE; 50 virtual void parseAttribute(const Attribute&) OVERRIDE;
49 virtual void svgAttributeChanged(const QualifiedName&) OVERRIDE; 51 virtual void svgAttributeChanged(const QualifiedName&) OVERRIDE;
50 virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE; 52 virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE;
51 virtual void removedFrom(ContainerNode*) OVERRIDE; 53 virtual void removedFrom(ContainerNode*) OVERRIDE;
52 54
53 virtual bool hasValidAttributeType() = 0; 55 virtual bool hasValidAttributeType() = 0;
56 virtual bool hasValidAttributeName();
54 virtual void animationAttributeChanged() = 0; 57 virtual void animationAttributeChanged() = 0;
55 58
56 SMILTimeContainer* timeContainer() const { return m_timeContainer.get(); } 59 SMILTimeContainer* timeContainer() const { return m_timeContainer.get(); }
57 60
58 SVGElement* targetElement(); 61 SVGElement* targetElement();
59 void resetTargetElement(); 62 void resetTargetElement(ResolveTarget = ResolveNewTarget);
60 const QualifiedName& attributeName() const { return m_attributeName; } 63 const QualifiedName& attributeName() const { return m_attributeName; }
61 64
62 void beginByLinkActivation(); 65 void beginByLinkActivation();
63 66
64 enum Restart { 67 enum Restart {
65 RestartAlways, 68 RestartAlways,
66 RestartWhenNotActive, 69 RestartWhenNotActive,
67 RestartNever 70 RestartNever
68 }; 71 };
69 72
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 134
132 SMILTime findInstanceTime(BeginOrEnd, SMILTime minimumTime, bool equalsMinim umOK) const; 135 SMILTime findInstanceTime(BeginOrEnd, SMILTime minimumTime, bool equalsMinim umOK) const;
133 void resolveFirstInterval(); 136 void resolveFirstInterval();
134 void resolveNextInterval(bool notifyDependents); 137 void resolveNextInterval(bool notifyDependents);
135 void resolveInterval(bool first, SMILTime& beginResult, SMILTime& endResult) const; 138 void resolveInterval(bool first, SMILTime& beginResult, SMILTime& endResult) const;
136 SMILTime resolveActiveEnd(SMILTime resolvedBegin, SMILTime resolvedEnd) cons t; 139 SMILTime resolveActiveEnd(SMILTime resolvedBegin, SMILTime resolvedEnd) cons t;
137 SMILTime repeatingDuration() const; 140 SMILTime repeatingDuration() const;
138 void checkRestart(SMILTime elapsed); 141 void checkRestart(SMILTime elapsed);
139 void beginListChanged(SMILTime eventTime); 142 void beginListChanged(SMILTime eventTime);
140 void endListChanged(SMILTime eventTime); 143 void endListChanged(SMILTime eventTime);
141 void reschedule(); 144
145 void setAttributeName(const QualifiedName&);
142 146
143 // This represents conditions on elements begin or end list that need to be resolved on runtime 147 // This represents conditions on elements begin or end list that need to be resolved on runtime
144 // for example <animate begin="otherElement.begin + 8s; button.click" ... /> 148 // for example <animate begin="otherElement.begin + 8s; button.click" ... />
145 struct Condition { 149 struct Condition {
146 enum Type { 150 enum Type {
147 EventBase, 151 EventBase,
148 Syncbase, 152 Syncbase,
149 AccessKey 153 AccessKey
150 }; 154 };
151 155
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 mutable SMILTime m_cachedMin; 232 mutable SMILTime m_cachedMin;
229 mutable SMILTime m_cachedMax; 233 mutable SMILTime m_cachedMax;
230 234
231 friend class ConditionEventListener; 235 friend class ConditionEventListener;
232 }; 236 };
233 237
234 } 238 }
235 239
236 #endif // ENABLE(SVG) 240 #endif // ENABLE(SVG)
237 #endif // SVGSMILElement_h 241 #endif // SVGSMILElement_h
OLDNEW
« no previous file with comments | « Source/WebCore/svg/animation/SMILTimeContainer.cpp ('k') | Source/WebCore/svg/animation/SVGSMILElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698