109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)// found in the LICENSE file.
409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)
5d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#ifndef AnimationNodeTiming_h
6d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#define AnimationNodeTiming_h
709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)
8e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)#include "bindings/core/v8/Nullable.h"
9c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#include "bindings/core/v8/ScriptWrappable.h"
10d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#include "core/animation/AnimationNode.h"
1109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#include "wtf/RefCounted.h"
1209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#include "wtf/text/WTFString.h"
1309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)
14c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink {
1509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)
16c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)class AnimationNodeTiming : public RefCountedWillBeGarbageCollectedFinalized<AnimationNodeTiming>, public ScriptWrappable {
177242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    DEFINE_WRAPPERTYPEINFO();
1809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)public:
19d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    static PassRefPtrWillBeRawPtr<AnimationNodeTiming> create(AnimationNode* parent);
2009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    double delay();
2109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    double endDelay();
2209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    String fill();
2309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    double iterationStart();
2409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    double iterations();
25e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)    void getDuration(String propertyName, Nullable<double>& element0, String& element1);
2609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    double playbackRate();
2709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    String direction();
2809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    String easing();
2909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)
3009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    void setDelay(double);
3109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    void setEndDelay(double);
3209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    void setFill(String);
3309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    void setIterationStart(double);
3409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    void setIterations(double);
3509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    bool setDuration(String name, double duration);
3609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    void setPlaybackRate(double);
3709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    void setDirection(String);
3809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    void setEasing(String);
39d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)
40d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    void trace(Visitor*);
41d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)
4209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)private:
43d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    RefPtrWillBeMember<AnimationNode> m_parent;
44d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    explicit AnimationNodeTiming(AnimationNode*);
4509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)};
4609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)
47c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink
4809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)
4909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#endif
50