Chromium Code Reviews| Index: Source/core/animation/Timing.h |
| diff --git a/Source/core/animation/Timing.h b/Source/core/animation/Timing.h |
| index fb2ef0921f2734ae3e161425a2b8be825c6db7e0..d7a318368b8bdea7557774559ff47411804b28a5 100644 |
| --- a/Source/core/animation/Timing.h |
| +++ b/Source/core/animation/Timing.h |
| @@ -37,6 +37,8 @@ |
| namespace WebCore { |
| +class Dictionary; |
| + |
| struct Timing { |
| enum FillMode { |
| FillModeAuto, |
| @@ -54,18 +56,55 @@ struct Timing { |
| }; |
| Timing() |
| - : startDelay(0) |
| - , endDelay(0) |
| - , fillMode(FillModeAuto) |
| - , iterationStart(0) |
| - , iterationCount(1) |
| - , iterationDuration(std::numeric_limits<double>::quiet_NaN()) |
| - , playbackRate(1) |
| - , direction(PlaybackDirectionNormal) |
| - , timingFunction(LinearTimingFunction::create()) |
| + : startDelay(initialStartDelay()) |
| + , endDelay(initialEndDelay()) |
| + , fillMode(initialFillMode()) |
| + , iterationStart(initialIterationStart()) |
| + , iterationCount(initialIterationCount()) |
| + , iterationDuration(initialIterationDuration()) |
| + , playbackRate(initialPlaybackRate()) |
| + , direction(initialDirection()) |
| + , timingFunction(initialTimingFunction()) |
| + { |
| + } |
| + |
| + Timing(double duration) |
|
Timothy Loh
2014/02/28 00:55:24
I wouldn't add an extra ctor here, just call the r
esprehn
2014/02/28 00:57:16
explicit
alancutter (OOO until 2018)
2014/03/03 05:09:45
Done.
|
| + : startDelay(initialStartDelay()) |
| + , endDelay(initialEndDelay()) |
| + , fillMode(initialFillMode()) |
| + , iterationStart(initialIterationStart()) |
| + , iterationCount(initialIterationCount()) |
| + , iterationDuration(duration) |
| + , playbackRate(initialPlaybackRate()) |
| + , direction(initialDirection()) |
| + , timingFunction(initialTimingFunction()) |
| { |
| } |
| + static double initialStartDelay() { return 0; } |
|
Timothy Loh
2014/02/28 00:55:24
Check with dstockwell here since he does a similar
dstockwell
2014/02/28 00:56:37
I'd rather keep these in the constructor and expos
alancutter (OOO until 2018)
2014/03/03 05:09:45
Done.
|
| + static double initialEndDelay() { return 0; } |
| + static FillMode initialFillMode() { return FillModeAuto; } |
| + static double initialIterationStart() { return 0; } |
| + static double initialIterationCount() { return 1; } |
| + static double initialIterationDuration() { return std::numeric_limits<double>::quiet_NaN(); } |
| + static double initialPlaybackRate() { return 1; } |
| + static PlaybackDirection initialDirection() { return PlaybackDirectionNormal; } |
| + static PassRefPtr<TimingFunction> initialTimingFunction() { return LinearTimingFunction::create(); } |
| + |
| + static Timing convertInput(const Dictionary& timingInputDictionary); |
|
dstockwell
2014/02/28 00:56:37
Timing doesn't need to know anything about input.
alancutter (OOO until 2018)
2014/03/03 05:09:45
Done.
|
| + static Timing convertInput(double duration) { return Timing(std::max<double>(duration, 0)); } |
| + static Timing convertInput(Timing timing) { return timing; } |
| + |
| + void setStartDelay(double); |
|
dstockwell
2014/02/28 00:56:37
These also belong in TimingInput, it's never valid
alancutter (OOO until 2018)
2014/03/03 05:09:45
Done.
|
| + void setEndDelay(double); |
| + void setFillMode(const String&); |
| + void setIterationStart(double); |
| + void setIterationCount(double); |
| + void setIterationDuration(double); |
| + void setPlaybackRate(double); |
| + void setPlaybackDirection(const String&); |
| + void setTimingFunction(const String&); |
| + |
| void assertValid() const |
| { |
| ASSERT(std::isfinite(startDelay)); |