1d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)// found in the LICENSE file. 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 553e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#ifndef CSSAnimationData_h 653e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#define CSSAnimationData_h 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#include "core/animation/Timing.h" 9d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#include "core/animation/css/CSSTimingData.h" 1053e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/rendering/style/RenderStyleConstants.h" 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 12c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink { 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 14d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)class CSSAnimationData FINAL : public CSSTimingData { 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)public: 16d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) static PassOwnPtrWillBeRawPtr<CSSAnimationData> create() 1707a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch { 18d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) return adoptPtrWillBeNoop(new CSSAnimationData); 1907a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch } 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 21d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) static PassOwnPtrWillBeRawPtr<CSSAnimationData> create(const CSSAnimationData& animationData) 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 23d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) return adoptPtrWillBeNoop(new CSSAnimationData(animationData)); 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 26d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) bool animationsMatchForStyleRecalc(const CSSAnimationData& other) const; 275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 28d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) Timing convertToTiming(size_t index) const; 295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 30d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) const Vector<AtomicString>& nameList() const { return m_nameList; } 31d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) const Vector<double>& iterationCountList() const { return m_iterationCountList; } 32d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) const Vector<Timing::PlaybackDirection>& directionList() const { return m_directionList; } 33d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) const Vector<Timing::FillMode>& fillModeList() const { return m_fillModeList; } 34d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) const Vector<EAnimPlayState>& playStateList() const { return m_playStateList; } 355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 36d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) Vector<AtomicString>& nameList() { return m_nameList; } 37d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) Vector<double>& iterationCountList() { return m_iterationCountList; } 38d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) Vector<Timing::PlaybackDirection>& directionList() { return m_directionList; } 39d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) Vector<Timing::FillMode>& fillModeList() { return m_fillModeList; } 40d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) Vector<EAnimPlayState>& playStateList() { return m_playStateList; } 415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 42d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) static const AtomicString& initialName(); 43d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) static Timing::PlaybackDirection initialDirection() { return Timing::PlaybackDirectionNormal; } 44d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) static Timing::FillMode initialFillMode() { return Timing::FillModeNone; } 45d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) static double initialIterationCount() { return 1.0; } 46d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) static EAnimPlayState initialPlayState() { return AnimPlayStatePlaying; } 4707a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch 485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)private: 4953e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) CSSAnimationData(); 50e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) explicit CSSAnimationData(const CSSAnimationData&); 5153e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) 52d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) Vector<AtomicString> m_nameList; 53d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) Vector<double> m_iterationCountList; 54d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) Vector<Timing::PlaybackDirection> m_directionList; 55d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) Vector<Timing::FillMode> m_fillModeList; 56d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) Vector<EAnimPlayState> m_playStateList; 575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}; 585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 59c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink 605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 6153e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#endif // CSSAnimationData_h 62