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 "core/animation/AnimationEffectTiming.h" | 5 #include "core/animation/AnimationEffectTiming.h" |
6 | 6 |
7 #include "bindings/core/v8/ExceptionState.h" | 7 #include "bindings/core/v8/ExceptionState.h" |
8 #include "bindings/core/v8/UnrestrictedDoubleOrString.h" | 8 #include "bindings/core/v8/UnrestrictedDoubleOrString.h" |
9 #include "core/animation/AnimationEffectReadOnly.h" | 9 #include "core/animation/AnimationEffectReadOnly.h" |
| 10 #include "core/animation/AnimationEffectTimingReadOnly.h" |
10 #include "core/animation/KeyframeEffect.h" | 11 #include "core/animation/KeyframeEffect.h" |
11 #include "platform/animation/TimingFunction.h" | 12 #include "platform/animation/TimingFunction.h" |
12 | 13 |
13 namespace blink { | 14 namespace blink { |
14 | 15 |
15 AnimationEffectTiming* AnimationEffectTiming::create(AnimationEffectReadOnly* pa
rent) | 16 AnimationEffectTiming* AnimationEffectTiming::create(AnimationEffectReadOnly* pa
rent) |
16 { | 17 { |
17 return new AnimationEffectTiming(parent); | 18 return new AnimationEffectTiming(parent); |
18 } | 19 } |
19 | 20 |
20 AnimationEffectTiming::AnimationEffectTiming(AnimationEffectReadOnly* parent) | 21 AnimationEffectTiming::AnimationEffectTiming(AnimationEffectReadOnly* parent) |
21 : m_parent(parent) | 22 : AnimationEffectTimingReadOnly(parent) |
22 { | 23 { |
23 } | 24 } |
24 | 25 |
25 double AnimationEffectTiming::delay() | |
26 { | |
27 return m_parent->specifiedTiming().startDelay * 1000; | |
28 } | |
29 | |
30 double AnimationEffectTiming::endDelay() | |
31 { | |
32 return m_parent->specifiedTiming().endDelay * 1000; | |
33 } | |
34 | |
35 String AnimationEffectTiming::fill() | |
36 { | |
37 return Timing::fillModeString(m_parent->specifiedTiming().fillMode); | |
38 } | |
39 | |
40 double AnimationEffectTiming::iterationStart() | |
41 { | |
42 return m_parent->specifiedTiming().iterationStart; | |
43 } | |
44 | |
45 double AnimationEffectTiming::iterations() | |
46 { | |
47 return m_parent->specifiedTiming().iterationCount; | |
48 } | |
49 | |
50 void AnimationEffectTiming::duration(UnrestrictedDoubleOrString& returnValue) | |
51 { | |
52 if (std::isnan(m_parent->specifiedTiming().iterationDuration)) | |
53 returnValue.setString("auto"); | |
54 else | |
55 returnValue.setUnrestrictedDouble(m_parent->specifiedTiming().iterationD
uration * 1000); | |
56 } | |
57 | |
58 double AnimationEffectTiming::playbackRate() | |
59 { | |
60 return m_parent->specifiedTiming().playbackRate; | |
61 } | |
62 | |
63 String AnimationEffectTiming::direction() | |
64 { | |
65 return Timing::playbackDirectionString(m_parent->specifiedTiming().direction
); | |
66 } | |
67 | |
68 String AnimationEffectTiming::easing() | |
69 { | |
70 return m_parent->specifiedTiming().timingFunction->toString(); | |
71 } | |
72 | |
73 void AnimationEffectTiming::setDelay(double delay) | 26 void AnimationEffectTiming::setDelay(double delay) |
74 { | 27 { |
75 Timing timing = m_parent->specifiedTiming(); | 28 Timing timing = m_parent->specifiedTiming(); |
76 TimingInput::setStartDelay(timing, delay); | 29 TimingInput::setStartDelay(timing, delay); |
77 m_parent->updateSpecifiedTiming(timing); | 30 m_parent->updateSpecifiedTiming(timing); |
78 } | 31 } |
79 | 32 |
80 void AnimationEffectTiming::setEndDelay(double endDelay) | 33 void AnimationEffectTiming::setEndDelay(double endDelay) |
81 { | 34 { |
82 Timing timing = m_parent->specifiedTiming(); | 35 Timing timing = m_parent->specifiedTiming(); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 // point, so we pass nullptr in to setTimingFunction. This means that these | 86 // point, so we pass nullptr in to setTimingFunction. This means that these |
134 // calls are not considered in the WebAnimationsEasingAsFunction* | 87 // calls are not considered in the WebAnimationsEasingAsFunction* |
135 // UseCounters, but the bug we are tracking there does not come through | 88 // UseCounters, but the bug we are tracking there does not come through |
136 // this interface. | 89 // this interface. |
137 if (TimingInput::setTimingFunction(timing, easing, nullptr, exceptionState)) | 90 if (TimingInput::setTimingFunction(timing, easing, nullptr, exceptionState)) |
138 m_parent->updateSpecifiedTiming(timing); | 91 m_parent->updateSpecifiedTiming(timing); |
139 } | 92 } |
140 | 93 |
141 DEFINE_TRACE(AnimationEffectTiming) | 94 DEFINE_TRACE(AnimationEffectTiming) |
142 { | 95 { |
143 visitor->trace(m_parent); | 96 AnimationEffectTimingReadOnly::trace(visitor); |
144 } | 97 } |
145 | 98 |
146 } // namespace blink | 99 } // namespace blink |
OLD | NEW |