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#ifndef AnimationNodeTiming_h
6#define AnimationNodeTiming_h
7
8#include "bindings/core/v8/Nullable.h"
9#include "bindings/core/v8/ScriptWrappable.h"
10#include "core/animation/AnimationNode.h"
11#include "wtf/RefCounted.h"
12#include "wtf/text/WTFString.h"
13
14namespace blink {
15
16class AnimationNodeTiming : public RefCountedWillBeGarbageCollectedFinalized<AnimationNodeTiming>, public ScriptWrappable {
17    DEFINE_WRAPPERTYPEINFO();
18public:
19    static PassRefPtrWillBeRawPtr<AnimationNodeTiming> create(AnimationNode* parent);
20    double delay();
21    double endDelay();
22    String fill();
23    double iterationStart();
24    double iterations();
25    void getDuration(String propertyName, Nullable<double>& element0, String& element1);
26    double playbackRate();
27    String direction();
28    String easing();
29
30    void setDelay(double);
31    void setEndDelay(double);
32    void setFill(String);
33    void setIterationStart(double);
34    void setIterations(double);
35    bool setDuration(String name, double duration);
36    void setPlaybackRate(double);
37    void setDirection(String);
38    void setEasing(String);
39
40    void trace(Visitor*);
41
42private:
43    RefPtrWillBeMember<AnimationNode> m_parent;
44    explicit AnimationNodeTiming(AnimationNode*);
45};
46
47} // namespace blink
48
49#endif
50