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