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

Side by Side Diff: sky/engine/core/animation/AnimationNodeTiming.cpp

Issue 1229273004: Remove Animations and Transitions. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 5 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
(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 "sky/engine/core/animation/AnimationNodeTiming.h"
6
7 #include "sky/engine/core/animation/Animation.h"
8 #include "sky/engine/core/animation/AnimationNode.h"
9 #include "sky/engine/platform/animation/TimingFunction.h"
10
11 namespace blink {
12
13 PassRefPtr<AnimationNodeTiming> AnimationNodeTiming::create(AnimationNode* paren t)
14 {
15 return adoptRef(new AnimationNodeTiming(parent));
16 }
17
18 AnimationNodeTiming::AnimationNodeTiming(AnimationNode* parent)
19 : m_parent(parent)
20 {
21 }
22
23 double AnimationNodeTiming::delay()
24 {
25 return m_parent->specifiedTiming().startDelay * 1000;
26 }
27
28 double AnimationNodeTiming::endDelay()
29 {
30 return m_parent->specifiedTiming().endDelay * 1000;
31 }
32
33 String AnimationNodeTiming::fill()
34 {
35 Timing::FillMode fillMode = m_parent->specifiedTiming().fillMode;
36 switch (fillMode) {
37 case Timing::FillModeNone:
38 return "none";
39 case Timing::FillModeForwards:
40 return "forwards";
41 case Timing::FillModeBackwards:
42 return "backwards";
43 case Timing::FillModeBoth:
44 return "both";
45 case Timing::FillModeAuto:
46 return "auto";
47 }
48 ASSERT_NOT_REACHED();
49 return "auto";
50 }
51
52 double AnimationNodeTiming::iterationStart()
53 {
54 return m_parent->specifiedTiming().iterationStart;
55 }
56
57 double AnimationNodeTiming::iterations()
58 {
59 return m_parent->specifiedTiming().iterationCount;
60 }
61
62 String AnimationNodeTiming::getDuration(String propertyName)
63 {
64 if (propertyName != "duration")
65 return String();
66
67 if (std::isnan(m_parent->specifiedTiming().iterationDuration))
68 return "auto";
69
70 return String::number(m_parent->specifiedTiming().iterationDuration * 1000);
71 }
72
73 double AnimationNodeTiming::playbackRate()
74 {
75 return m_parent->specifiedTiming().playbackRate;
76 }
77
78 String AnimationNodeTiming::direction()
79 {
80 Timing::PlaybackDirection direction = m_parent->specifiedTiming().direction;
81 switch (direction) {
82 case Timing::PlaybackDirectionNormal:
83 return "normal";
84 case Timing::PlaybackDirectionReverse:
85 return "reverse";
86 case Timing::PlaybackDirectionAlternate:
87 return "alternate";
88 case Timing::PlaybackDirectionAlternateReverse:
89 return "alternate-reverse";
90 }
91 ASSERT_NOT_REACHED();
92 return "normal";
93 }
94
95 String AnimationNodeTiming::easing()
96 {
97 return m_parent->specifiedTiming().timingFunction->toString();
98 }
99
100 void AnimationNodeTiming::setDelay(double delay)
101 {
102 Timing timing = m_parent->specifiedTiming();
103 TimingInput::setStartDelay(timing, delay);
104 m_parent->updateSpecifiedTiming(timing);
105 }
106
107 void AnimationNodeTiming::setEndDelay(double endDelay)
108 {
109 Timing timing = m_parent->specifiedTiming();
110 TimingInput::setEndDelay(timing, endDelay);
111 m_parent->updateSpecifiedTiming(timing);
112 }
113
114 void AnimationNodeTiming::setFill(String fill)
115 {
116 Timing timing = m_parent->specifiedTiming();
117 TimingInput::setFillMode(timing, fill);
118 m_parent->updateSpecifiedTiming(timing);
119 }
120
121 void AnimationNodeTiming::setIterationStart(double iterationStart)
122 {
123 Timing timing = m_parent->specifiedTiming();
124 TimingInput::setIterationStart(timing, iterationStart);
125 m_parent->updateSpecifiedTiming(timing);
126 }
127
128 void AnimationNodeTiming::setIterations(double iterations)
129 {
130 Timing timing = m_parent->specifiedTiming();
131 TimingInput::setIterationCount(timing, iterations);
132 m_parent->updateSpecifiedTiming(timing);
133 }
134
135 bool AnimationNodeTiming::setDuration(String name, double duration)
136 {
137 if (name != "duration")
138 return false;
139 Timing timing = m_parent->specifiedTiming();
140 TimingInput::setIterationDuration(timing, duration);
141 m_parent->updateSpecifiedTiming(timing);
142 return true;
143 }
144
145 void AnimationNodeTiming::setPlaybackRate(double playbackRate)
146 {
147 Timing timing = m_parent->specifiedTiming();
148 TimingInput::setPlaybackRate(timing, playbackRate);
149 m_parent->updateSpecifiedTiming(timing);
150 }
151
152 void AnimationNodeTiming::setDirection(String direction)
153 {
154 Timing timing = m_parent->specifiedTiming();
155 TimingInput::setPlaybackDirection(timing, direction);
156 m_parent->updateSpecifiedTiming(timing);
157 }
158
159 void AnimationNodeTiming::setEasing(String easing)
160 {
161 Timing timing = m_parent->specifiedTiming();
162 TimingInput::setTimingFunction(timing, easing);
163 m_parent->updateSpecifiedTiming(timing);
164 }
165
166 } // namespace blink
OLDNEW
« no previous file with comments | « sky/engine/core/animation/AnimationNodeTiming.h ('k') | sky/engine/core/animation/AnimationPlayer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698