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

Side by Side Diff: Source/core/animation/TimedItemTiming.cpp

Issue 293893003: Web Animations: Rename TimedItem to AnimationSource (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Update expectations. Created 6 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/animation/TimedItemTiming.h ('k') | Source/core/animation/Timing.idl » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "config.h"
6 #include "core/animation/TimedItemTiming.h"
7
8 #include "core/animation/Animation.h"
9 #include "core/animation/TimedItem.h"
10 #include "platform/animation/TimingFunction.h"
11
12 namespace WebCore {
13
14 PassRefPtrWillBeRawPtr<TimedItemTiming> TimedItemTiming::create(TimedItem* paren t)
15 {
16 return adoptRefWillBeNoop(new TimedItemTiming(parent));
17 }
18
19 TimedItemTiming::TimedItemTiming(TimedItem* parent)
20 : m_parent(parent)
21 {
22 }
23
24 double TimedItemTiming::delay()
25 {
26 return m_parent->specifiedTiming().startDelay * 1000;
27 }
28
29 double TimedItemTiming::endDelay()
30 {
31 return m_parent->specifiedTiming().endDelay * 1000;
32 }
33
34 String TimedItemTiming::fill()
35 {
36 Timing::FillMode fillMode = m_parent->specifiedTiming().fillMode;
37 switch (fillMode) {
38 case Timing::FillModeNone:
39 return "none";
40 case Timing::FillModeForwards:
41 return "forwards";
42 case Timing::FillModeBackwards:
43 return "backwards";
44 case Timing::FillModeBoth:
45 return "both";
46 case Timing::FillModeAuto:
47 return "auto";
48 }
49 ASSERT_NOT_REACHED();
50 return "auto";
51 }
52
53 double TimedItemTiming::iterationStart()
54 {
55 return m_parent->specifiedTiming().iterationStart;
56 }
57
58 double TimedItemTiming::iterations()
59 {
60 return m_parent->specifiedTiming().iterationCount;
61 }
62
63 // This logic was copied from the example in bindings/tests/idls/TestInterface.i dl
64 // and bindings/tests/results/V8TestInterface.cpp.
65 // FIXME: It might be possible to have 'duration' defined as an attribute in the idl.
66 // If possible, fix will be in a follow-up patch.
67 void TimedItemTiming::getDuration(String propertyName, bool& element0Enabled, do uble& element0, bool& element1Enabled, String& element1)
68 {
69 if (propertyName != "duration")
70 return;
71
72 if (std::isnan(m_parent->specifiedTiming().iterationDuration)) {
73 element1Enabled = true;
74 element1 = "auto";
75 return;
76 }
77 element0Enabled = true;
78 element0 = m_parent->specifiedTiming().iterationDuration * 1000;
79 return;
80 }
81
82 double TimedItemTiming::playbackRate()
83 {
84 return m_parent->specifiedTiming().playbackRate;
85 }
86
87 String TimedItemTiming::direction()
88 {
89 Timing::PlaybackDirection direction = m_parent->specifiedTiming().direction;
90 switch (direction) {
91 case Timing::PlaybackDirectionNormal:
92 return "normal";
93 case Timing::PlaybackDirectionReverse:
94 return "reverse";
95 case Timing::PlaybackDirectionAlternate:
96 return "alternate";
97 case Timing::PlaybackDirectionAlternateReverse:
98 return "alternate-reverse";
99 }
100 ASSERT_NOT_REACHED();
101 return "normal";
102 }
103
104 String TimedItemTiming::easing()
105 {
106 return m_parent->specifiedTiming().timingFunction->toString();
107 }
108
109 void TimedItemTiming::setDelay(double delay)
110 {
111 Timing timing = m_parent->specifiedTiming();
112 TimingInput::setStartDelay(timing, delay);
113 m_parent->updateSpecifiedTiming(timing);
114 }
115
116 void TimedItemTiming::setEndDelay(double endDelay)
117 {
118 Timing timing = m_parent->specifiedTiming();
119 TimingInput::setEndDelay(timing, endDelay);
120 m_parent->updateSpecifiedTiming(timing);
121 }
122
123 void TimedItemTiming::setFill(String fill)
124 {
125 Timing timing = m_parent->specifiedTiming();
126 TimingInput::setFillMode(timing, fill);
127 m_parent->updateSpecifiedTiming(timing);
128 }
129
130 void TimedItemTiming::setIterationStart(double iterationStart)
131 {
132 Timing timing = m_parent->specifiedTiming();
133 TimingInput::setIterationStart(timing, iterationStart);
134 m_parent->updateSpecifiedTiming(timing);
135 }
136
137 void TimedItemTiming::setIterations(double iterations)
138 {
139 Timing timing = m_parent->specifiedTiming();
140 TimingInput::setIterationCount(timing, iterations);
141 m_parent->updateSpecifiedTiming(timing);
142 }
143
144 bool TimedItemTiming::setDuration(String name, double duration)
145 {
146 if (name != "duration")
147 return false;
148 Timing timing = m_parent->specifiedTiming();
149 TimingInput::setIterationDuration(timing, duration);
150 m_parent->updateSpecifiedTiming(timing);
151 return true;
152 }
153
154 void TimedItemTiming::setPlaybackRate(double playbackRate)
155 {
156 Timing timing = m_parent->specifiedTiming();
157 TimingInput::setPlaybackRate(timing, playbackRate);
158 m_parent->updateSpecifiedTiming(timing);
159 }
160
161 void TimedItemTiming::setDirection(String direction)
162 {
163 Timing timing = m_parent->specifiedTiming();
164 TimingInput::setPlaybackDirection(timing, direction);
165 m_parent->updateSpecifiedTiming(timing);
166 }
167
168 void TimedItemTiming::setEasing(String easing)
169 {
170 Timing timing = m_parent->specifiedTiming();
171 TimingInput::setTimingFunction(timing, easing);
172 m_parent->updateSpecifiedTiming(timing);
173 }
174
175 void TimedItemTiming::trace(Visitor* visitor)
176 {
177 visitor->trace(m_parent);
178 }
179
180 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/animation/TimedItemTiming.h ('k') | Source/core/animation/Timing.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698