1/*
2 * Copyright 2009 Mehmet Ali Akmanalp <makmanalp@wpi.edu>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Library General Public License as
6 * published by the Free Software Foundation; either version 2, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details
13 *
14 * You should have received a copy of the GNU Library General Public
15 * License along with this program; if not, write to the
16 * Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 */
19
20#include "animation.h"
21#include "private/animationprivate_p.h"
22
23#include <QMapIterator>
24#include <QObject>
25#include <QParallelAnimationGroup>
26#include <QSequentialAnimationGroup>
27#include <QDebug>
28#include <kdebug.h>
29#include <kglobalsettings.h>
30
31namespace Plasma
32{
33
34
35AnimationPrivate::AnimationPrivate()
36 : easingCurve(QEasingCurve::Linear),
37 duration(250)
38{
39}
40
41Animation::Animation(QObject* parent)
42 : QAbstractAnimation(parent),
43 d(new AnimationPrivate)
44{
45}
46
47Animation::~Animation()
48{
49 delete d;
50}
51
52int Animation::duration() const
53{
54 return d->duration;
55}
56
57void Animation::setDuration(int duration)
58{
59 d->duration = qMax(0, duration);
60}
61
62void Animation::setTargetWidget(QGraphicsWidget* widget)
63{
64 d->animObject = widget;
65 if (parent() == 0) {
66 setParent(widget);
67 }
68}
69
70QGraphicsWidget* Animation::targetWidget() const
71{
72 return d->animObject.data();
73}
74
75void Animation::setEasingCurve(const QEasingCurve &curve)
76{
77 d->easingCurve = curve;
78}
79
80QEasingCurve Animation::easingCurve() const
81{
82 return d->easingCurve;
83}
84
85void Animation::updateCurrentTime(int currentTime)
86{
87 Q_UNUSED(currentTime)
88}
89
90} //namespace Plasma
91
92#include "animation.moc"
93