Home | History | Annotate | Download | only in css
      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 #include "config.h"
      6 #include "core/animation/css/CSSAnimationData.h"
      7 
      8 #include "core/animation/Timing.h"
      9 
     10 namespace blink {
     11 
     12 CSSAnimationData::CSSAnimationData()
     13 {
     14     m_nameList.append(initialName());
     15     m_iterationCountList.append(initialIterationCount());
     16     m_directionList.append(initialDirection());
     17     m_fillModeList.append(initialFillMode());
     18     m_playStateList.append(initialPlayState());
     19 }
     20 
     21 CSSAnimationData::CSSAnimationData(const CSSAnimationData& other)
     22     : CSSTimingData(other)
     23     , m_nameList(other.m_nameList)
     24     , m_iterationCountList(other.m_iterationCountList)
     25     , m_directionList(other.m_directionList)
     26     , m_fillModeList(other.m_fillModeList)
     27     , m_playStateList(other.m_playStateList)
     28 {
     29 }
     30 
     31 const AtomicString& CSSAnimationData::initialName()
     32 {
     33     DEFINE_STATIC_LOCAL(const AtomicString, name, ("none", AtomicString::ConstructFromLiteral));
     34     return name;
     35 }
     36 
     37 bool CSSAnimationData::animationsMatchForStyleRecalc(const CSSAnimationData& other) const
     38 {
     39     return m_nameList == other.m_nameList && m_playStateList == other.m_playStateList;
     40 }
     41 
     42 Timing CSSAnimationData::convertToTiming(size_t index) const
     43 {
     44     ASSERT(index < m_nameList.size());
     45     Timing timing = CSSTimingData::convertToTiming(index);
     46 
     47     timing.iterationCount = getRepeated(m_iterationCountList, index);
     48     timing.direction = getRepeated(m_directionList, index);
     49     timing.fillMode = getRepeated(m_fillModeList, index);
     50     timing.assertValid();
     51     return timing;
     52 }
     53 
     54 } // namespace blink
     55