1 /* This file is part of the KDE project
2  * Copyright (C) 2010 Benjamin Port <port.benjamin@gmail.com>
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Library General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (  at your option ) any later version.
8  *
9  * This library 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 GNU
12  * Library General Public License for more details.
13  *
14  * You should have received a copy of the GNU Library General Public License
15  * along with this library; see the file COPYING.LIB.  If not, write to
16  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17  * Boston, MA 02110-1301, USA.
18  */
19 
20 #ifndef KPRANIMATIONVALUE_H
21 #define KPRANIMATIONVALUE_H
22 
23 #include <QtGlobal>
24 #include "KoPASavingContext.h"
25 class KoShape;
26 class KPrAnimationCache;
27 class KPrShapeAnimation;
28 class QTextBlockUserData;
29 
30 class KPrAnimationValue
31 {
32 public:
33     explicit KPrAnimationValue(KPrShapeAnimation * shapeAnimation);
34     virtual ~KPrAnimationValue();
35     virtual qreal value(qreal time) const = 0;
36     virtual qreal startValue() const = 0;
37     virtual qreal endValue() const = 0;
38     virtual void setCache(KPrAnimationCache * cache);
39     virtual bool saveOdf(KoPASavingContext &paContext) const = 0;
40     enum SmilCalcMode{
41         discrete,
42         linear,
43         paced,
44         spline
45     };
46 protected:
47     SmilCalcMode m_calcMode;
48     KPrAnimationCache *m_cache;
49     KoShape *m_shape;
50     QTextBlockUserData *m_textBlockData;
51 };
52 
53 #endif // KPRANIMATIONVALUE_H
54