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)); |