18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 22bde8e466a4451c7319e3a072d118917957d6554Steve Block * Copyright (C) 2011 Apple Inc. All rights reserved. 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met: 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1. Redistributions of source code must retain the above copyright 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer. 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer in the 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation and/or other materials provided with the distribution. 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 262bde8e466a4451c7319e3a072d118917957d6554Steve Block#include "config.h" 272bde8e466a4451c7319e3a072d118917957d6554Steve Block#include "WebKitAnimationList.h" 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 292bde8e466a4451c7319e3a072d118917957d6554Steve Block#include "Animation.h" 302bde8e466a4451c7319e3a072d118917957d6554Steve Block#include "AnimationBase.h" 312bde8e466a4451c7319e3a072d118917957d6554Steve Block#include "RenderStyle.h" 322bde8e466a4451c7319e3a072d118917957d6554Steve Block#include "WebKitAnimation.h" 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 352bde8e466a4451c7319e3a072d118917957d6554Steve Block 362bde8e466a4451c7319e3a072d118917957d6554Steve BlockWebKitAnimationList::WebKitAnimationList() 372bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 382bde8e466a4451c7319e3a072d118917957d6554Steve Block} 392bde8e466a4451c7319e3a072d118917957d6554Steve Block 402bde8e466a4451c7319e3a072d118917957d6554Steve BlockWebKitAnimationList::~WebKitAnimationList() 412bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 422bde8e466a4451c7319e3a072d118917957d6554Steve Block} 432bde8e466a4451c7319e3a072d118917957d6554Steve Block 442bde8e466a4451c7319e3a072d118917957d6554Steve Blockunsigned WebKitAnimationList::length() const 452bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 462bde8e466a4451c7319e3a072d118917957d6554Steve Block return m_animations.size(); 472bde8e466a4451c7319e3a072d118917957d6554Steve Block} 482bde8e466a4451c7319e3a072d118917957d6554Steve Block 492bde8e466a4451c7319e3a072d118917957d6554Steve BlockWebKitAnimation* WebKitAnimationList::item(unsigned index) 502bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 512bde8e466a4451c7319e3a072d118917957d6554Steve Block if (index < m_animations.size()) 522bde8e466a4451c7319e3a072d118917957d6554Steve Block return m_animations[index].get(); 532bde8e466a4451c7319e3a072d118917957d6554Steve Block return 0; 542bde8e466a4451c7319e3a072d118917957d6554Steve Block} 552bde8e466a4451c7319e3a072d118917957d6554Steve Block 562bde8e466a4451c7319e3a072d118917957d6554Steve Blockvoid WebKitAnimationList::deleteAnimation(unsigned index) 572bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 582bde8e466a4451c7319e3a072d118917957d6554Steve Block if (index >= m_animations.size()) 592bde8e466a4451c7319e3a072d118917957d6554Steve Block return; 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 612bde8e466a4451c7319e3a072d118917957d6554Steve Block m_animations.remove(index); 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 642bde8e466a4451c7319e3a072d118917957d6554Steve Blockvoid WebKitAnimationList::append(RefPtr<WebKitAnimation> animation) 652bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 662bde8e466a4451c7319e3a072d118917957d6554Steve Block m_animations.append(animation); 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 692bde8e466a4451c7319e3a072d118917957d6554Steve Blockunsigned WebKitAnimationList::insertAnimation(RefPtr<WebKitAnimation> animation, unsigned index) 702bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 712bde8e466a4451c7319e3a072d118917957d6554Steve Block if (!animation) 722bde8e466a4451c7319e3a072d118917957d6554Steve Block return 0; 732bde8e466a4451c7319e3a072d118917957d6554Steve Block 742bde8e466a4451c7319e3a072d118917957d6554Steve Block if (index > m_animations.size()) 752bde8e466a4451c7319e3a072d118917957d6554Steve Block return 0; 762bde8e466a4451c7319e3a072d118917957d6554Steve Block 772bde8e466a4451c7319e3a072d118917957d6554Steve Block m_animations.insert(index, animation); 782bde8e466a4451c7319e3a072d118917957d6554Steve Block return index; 798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 802bde8e466a4451c7319e3a072d118917957d6554Steve Block 812bde8e466a4451c7319e3a072d118917957d6554Steve Block} // namespace WebCore 822bde8e466a4451c7319e3a072d118917957d6554Steve Block 83