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 QEASINGCURVE_H
00043 #define QEASINGCURVE_H
00044
00045 #include <QtCore/qglobal.h>
00046 #include <QtCore/qobjectdefs.h>
00047
00048 QT_BEGIN_HEADER
00049
00050 QT_BEGIN_NAMESPACE
00051
00052 QT_MODULE(Core)
00053
00054 class QEasingCurvePrivate;
00055 class Q_CORE_EXPORT QEasingCurve
00056 {
00057 Q_GADGET
00058 Q_ENUMS(Type)
00059 public:
00060 enum Type {
00061 Linear,
00062 InQuad, OutQuad, InOutQuad, OutInQuad,
00063 InCubic, OutCubic, InOutCubic, OutInCubic,
00064 InQuart, OutQuart, InOutQuart, OutInQuart,
00065 InQuint, OutQuint, InOutQuint, OutInQuint,
00066 InSine, OutSine, InOutSine, OutInSine,
00067 InExpo, OutExpo, InOutExpo, OutInExpo,
00068 InCirc, OutCirc, InOutCirc, OutInCirc,
00069 InElastic, OutElastic, InOutElastic, OutInElastic,
00070 InBack, OutBack, InOutBack, OutInBack,
00071 InBounce, OutBounce, InOutBounce, OutInBounce,
00072 InCurve, OutCurve, SineCurve, CosineCurve,
00073 Custom, NCurveTypes
00074 };
00075
00076 QEasingCurve(Type type = Linear);
00077 QEasingCurve(const QEasingCurve &other);
00078 ~QEasingCurve();
00079
00080 QEasingCurve &operator=(const QEasingCurve &other);
00081 bool operator==(const QEasingCurve &other) const;
00082 inline bool operator!=(const QEasingCurve &other) const
00083 { return !(this->operator==(other)); }
00084
00085 qreal amplitude() const;
00086 void setAmplitude(qreal amplitude);
00087
00088 qreal period() const;
00089 void setPeriod(qreal period);
00090
00091 qreal overshoot() const;
00092 void setOvershoot(qreal overshoot);
00093
00094 Type type() const;
00095 void setType(Type type);
00096 typedef qreal (*EasingFunction)(qreal progress);
00097 void setCustomType(EasingFunction func);
00098 EasingFunction customType() const;
00099
00100 qreal valueForProgress(qreal progress) const;
00101 private:
00102 QEasingCurvePrivate *d_ptr;
00103 #ifndef QT_NO_DEBUG_STREAM
00104 friend Q_CORE_EXPORT QDebug operator<<(QDebug debug, const QEasingCurve &item);
00105 #endif
00106 #ifndef QT_NO_DATASTREAM
00107 friend Q_CORE_EXPORT QDataStream &operator<<(QDataStream &, const QEasingCurve&);
00108 friend Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QEasingCurve &);
00109 #endif
00110 };
00111
00112 #ifndef QT_NO_DEBUG_STREAM
00113 Q_CORE_EXPORT QDebug operator<<(QDebug debug, const QEasingCurve &item);
00114 #endif
00115
00116 #ifndef QT_NO_DATASTREAM
00117 Q_CORE_EXPORT QDataStream &operator<<(QDataStream &, const QEasingCurve&);
00118 Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QEasingCurve &);
00119 #endif
00120
00121 QT_END_NAMESPACE
00122
00123 QT_END_HEADER
00124
00125 #endif