22 Q_PROPERTY(QVariant startValue READ startValue WRITE setStartValue)
23 Q_PROPERTY(QVariant endValue READ endValue WRITE setEndValue)
24 Q_PROPERTY(QVariant currentValue READ currentValue NOTIFY valueChanged)
25 Q_PROPERTY(
int duration READ duration WRITE setDuration BINDABLE bindableDuration)
26 Q_PROPERTY(QEasingCurve easingCurve READ easingCurve WRITE setEasingCurve
27 BINDABLE bindableEasingCurve)
30 using KeyValue = std::pair<qreal, QVariant>;
31 typedef QList<KeyValue> KeyValues;
33 QVariantAnimation(QObject *parent =
nullptr);
36 QVariant startValue()
const;
37 void setStartValue(
const QVariant &value);
39 QVariant endValue()
const;
40 void setEndValue(
const QVariant &value);
42 QVariant keyValueAt(qreal step)
const;
43 void setKeyValueAt(qreal step,
const QVariant &value);
45 KeyValues keyValues()
const;
46 void setKeyValues(
const KeyValues &values);
48 QVariant currentValue()
const;
50 int duration()
const override;
51 void setDuration(
int msecs);
52 QBindable<
int> bindableDuration();
54 QEasingCurve easingCurve()
const;
55 void setEasingCurve(
const QEasingCurve &easing);
56 QBindable<QEasingCurve> bindableEasingCurve();
58 typedef QVariant (*Interpolator)(
const void *from,
const void *to, qreal progress);
61 void valueChanged(
const QVariant &value);
64 QVariantAnimation(QVariantAnimationPrivate &dd, QObject *parent =
nullptr);
65 bool event(QEvent *event) override;
67 void updateCurrentTime(
int) override;
68 void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState) override;
70 virtual void updateCurrentValue(
const QVariant &value);
71 virtual QVariant interpolated(
const QVariant &from,
const QVariant &to, qreal progress)
const;
74 template <
typename T>
friend void qRegisterAnimationInterpolator(QVariant (*func)(
const T &,
const T &, qreal));
75 static void registerInterpolator(Interpolator func,
int interpolationType);
77 Q_DISABLE_COPY(QVariantAnimation)
78 Q_DECLARE_PRIVATE(QVariantAnimation)