Go to the
documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #ifndef QTIMELINE_H
00043 #define QTIMELINE_H
00044
00045 #include <QtCore/qeasingcurve.h>
00046 #include <QtCore/qobject.h>
00047
00048 QT_BEGIN_HEADER
00049
00050 QT_BEGIN_NAMESPACE
00051
00052 QT_MODULE(Core)
00053
00054 class QTimeLinePrivate;
00055 class Q_CORE_EXPORT QTimeLine : public QObject
00056 {
00057 Q_OBJECT
00058 Q_PROPERTY(int duration READ duration WRITE setDuration)
00059 Q_PROPERTY(int updateInterval READ updateInterval WRITE setUpdateInterval)
00060 Q_PROPERTY(int currentTime READ currentTime WRITE setCurrentTime)
00061 Q_PROPERTY(Direction direction READ direction WRITE setDirection)
00062 Q_PROPERTY(int loopCount READ loopCount WRITE setLoopCount)
00063 Q_PROPERTY(CurveShape curveShape READ curveShape WRITE setCurveShape)
00064 Q_PROPERTY(QEasingCurve easingCurve READ easingCurve WRITE setEasingCurve)
00065 public:
00066 enum State {
00067 NotRunning,
00068 Paused,
00069 Running
00070 };
00071 enum Direction {
00072 Forward,
00073 Backward
00074 };
00075 enum CurveShape {
00076 EaseInCurve,
00077 EaseOutCurve,
00078 EaseInOutCurve,
00079 LinearCurve,
00080 SineCurve,
00081 CosineCurve
00082 };
00083
00084 explicit QTimeLine(int duration = 1000, QObject *parent = 0);
00085 virtual ~QTimeLine();
00086
00087 State state() const;
00088
00089 int loopCount() const;
00090 void setLoopCount(int count);
00091
00092 Direction direction() const;
00093 void setDirection(Direction direction);
00094
00095 int duration() const;
00096 void setDuration(int duration);
00097
00098 int startFrame() const;
00099 void setStartFrame(int frame);
00100 int endFrame() const;
00101 void setEndFrame(int frame);
00102 void setFrameRange(int startFrame, int endFrame);
00103
00104 int updateInterval() const;
00105 void setUpdateInterval(int interval);
00106
00107 CurveShape curveShape() const;
00108 void setCurveShape(CurveShape shape);
00109
00110 QEasingCurve easingCurve() const;
00111 void setEasingCurve(const QEasingCurve &curve);
00112
00113 int currentTime() const;
00114 int currentFrame() const;
00115 qreal currentValue() const;
00116
00117 int frameForTime(int msec) const;
00118 virtual qreal valueForTime(int msec) const;
00119
00120 public Q_SLOTS:
00121 void start();
00122 void resume();
00123 void stop();
00124 void setPaused(bool paused);
00125 void setCurrentTime(int msec);
00126 void toggleDirection();
00127
00128 Q_SIGNALS:
00129 void valueChanged(qreal x);
00130 void frameChanged(int);
00131 void stateChanged(QTimeLine::State newState);
00132 void finished();
00133
00134 protected:
00135 void timerEvent(QTimerEvent *event);
00136
00137 private:
00138 Q_DISABLE_COPY(QTimeLine)
00139 Q_DECLARE_PRIVATE(QTimeLine)
00140 };
00141
00142 QT_END_NAMESPACE
00143
00144 QT_END_HEADER
00145
00146 #endif
00147