| OLD | NEW |
| (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/AnimationNodeTiming.h" | |
| 7 | |
| 8 #include "bindings/core/v8/UnionTypesCore.h" | |
| 9 #include "core/animation/Animation.h" | |
| 10 #include "core/animation/AnimationNode.h" | |
| 11 #include "platform/animation/TimingFunction.h" | |
| 12 | |
| 13 namespace blink { | |
| 14 | |
| 15 PassRefPtrWillBeRawPtr<AnimationNodeTiming> AnimationNodeTiming::create(Animatio
nNode* parent) | |
| 16 { | |
| 17 return adoptRefWillBeNoop(new AnimationNodeTiming(parent)); | |
| 18 } | |
| 19 | |
| 20 AnimationNodeTiming::AnimationNodeTiming(AnimationNode* parent) | |
| 21 : m_parent(parent) | |
| 22 { | |
| 23 } | |
| 24 | |
| 25 double AnimationNodeTiming::delay() | |
| 26 { | |
| 27 return m_parent->specifiedTiming().startDelay * 1000; | |
| 28 } | |
| 29 | |
| 30 double AnimationNodeTiming::endDelay() | |
| 31 { | |
| 32 return m_parent->specifiedTiming().endDelay * 1000; | |
| 33 } | |
| 34 | |
| 35 String AnimationNodeTiming::fill() | |
| 36 { | |
| 37 return Timing::fillModeString(m_parent->specifiedTiming().fillMode); | |
| 38 } | |
| 39 | |
| 40 double AnimationNodeTiming::iterationStart() | |
| 41 { | |
| 42 return m_parent->specifiedTiming().iterationStart; | |
| 43 } | |
| 44 | |
| 45 double AnimationNodeTiming::iterations() | |
| 46 { | |
| 47 return m_parent->specifiedTiming().iterationCount; | |
| 48 } | |
| 49 | |
| 50 void AnimationNodeTiming::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 AnimationNodeTiming::playbackRate() | |
| 59 { | |
| 60 return m_parent->specifiedTiming().playbackRate; | |
| 61 } | |
| 62 | |
| 63 String AnimationNodeTiming::direction() | |
| 64 { | |
| 65 return Timing::playbackDirectionString(m_parent->specifiedTiming().direction
); | |
| 66 } | |
| 67 | |
| 68 String AnimationNodeTiming::easing() | |
| 69 { | |
| 70 return m_parent->specifiedTiming().timingFunction->toString(); | |
| 71 } | |
| 72 | |
| 73 void AnimationNodeTiming::setDelay(double delay) | |
| 74 { | |
| 75 Timing timing = m_parent->specifiedTiming(); | |
| 76 TimingInput::setStartDelay(timing, delay); | |
| 77 m_parent->updateSpecifiedTiming(timing); | |
| 78 } | |
| 79 | |
| 80 void AnimationNodeTiming::setEndDelay(double endDelay) | |
| 81 { | |
| 82 Timing timing = m_parent->specifiedTiming(); | |
| 83 TimingInput::setEndDelay(timing, endDelay); | |
| 84 m_parent->updateSpecifiedTiming(timing); | |
| 85 } | |
| 86 | |
| 87 void AnimationNodeTiming::setFill(String fill) | |
| 88 { | |
| 89 Timing timing = m_parent->specifiedTiming(); | |
| 90 TimingInput::setFillMode(timing, fill); | |
| 91 m_parent->updateSpecifiedTiming(timing); | |
| 92 } | |
| 93 | |
| 94 void AnimationNodeTiming::setIterationStart(double iterationStart) | |
| 95 { | |
| 96 Timing timing = m_parent->specifiedTiming(); | |
| 97 TimingInput::setIterationStart(timing, iterationStart); | |
| 98 m_parent->updateSpecifiedTiming(timing); | |
| 99 } | |
| 100 | |
| 101 void AnimationNodeTiming::setIterations(double iterations) | |
| 102 { | |
| 103 Timing timing = m_parent->specifiedTiming(); | |
| 104 TimingInput::setIterationCount(timing, iterations); | |
| 105 m_parent->updateSpecifiedTiming(timing); | |
| 106 } | |
| 107 | |
| 108 void AnimationNodeTiming::setDuration(const UnrestrictedDoubleOrString& duration
OrAuto) | |
| 109 { | |
| 110 // Any strings other than "auto" are coerced to "auto". | |
| 111 double duration = durationOrAuto.isString() ? std::numeric_limits<double>::q
uiet_NaN() : durationOrAuto.getAsUnrestrictedDouble(); | |
| 112 Timing timing = m_parent->specifiedTiming(); | |
| 113 TimingInput::setIterationDuration(timing, duration); | |
| 114 m_parent->updateSpecifiedTiming(timing); | |
| 115 } | |
| 116 | |
| 117 void AnimationNodeTiming::setPlaybackRate(double playbackRate) | |
| 118 { | |
| 119 Timing timing = m_parent->specifiedTiming(); | |
| 120 TimingInput::setPlaybackRate(timing, playbackRate); | |
| 121 m_parent->updateSpecifiedTiming(timing); | |
| 122 } | |
| 123 | |
| 124 void AnimationNodeTiming::setDirection(String direction) | |
| 125 { | |
| 126 Timing timing = m_parent->specifiedTiming(); | |
| 127 TimingInput::setPlaybackDirection(timing, direction); | |
| 128 m_parent->updateSpecifiedTiming(timing); | |
| 129 } | |
| 130 | |
| 131 void AnimationNodeTiming::setEasing(String easing) | |
| 132 { | |
| 133 Timing timing = m_parent->specifiedTiming(); | |
| 134 TimingInput::setTimingFunction(timing, easing); | |
| 135 m_parent->updateSpecifiedTiming(timing); | |
| 136 } | |
| 137 | |
| 138 DEFINE_TRACE(AnimationNodeTiming) | |
| 139 { | |
| 140 visitor->trace(m_parent); | |
| 141 } | |
| 142 | |
| 143 } // namespace blink | |
| OLD | NEW |