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