| 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 "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 | |
| OLD | NEW |