C++ / fmt (pull_request) Successful in 4s
JS/TS / fmt (pull_request) Successful in 20s
JS/TS / lint (pull_request) Successful in 22s
Python / static (pull_request) Successful in 57s
Rust / fmt (pull_request) Successful in 1m2s
C++ / build (pull_request) Successful in 2m10s
Rust / build (pull_request) Successful in 1m50s
Rust / clippy (pull_request) Successful in 1m25s
Python / verify (pull_request) Successful in 2m58s
C++ / clang-tidy (pull_request) Successful in 7m8s
96 lines
2.9 KiB
C++
96 lines
2.9 KiB
C++
#pragma once
|
|
|
|
#include <qeasingcurve.h>
|
|
#include <qobject.h>
|
|
#include <qqmlintegration.h>
|
|
|
|
namespace ZShell::config {
|
|
|
|
class AnimCurves;
|
|
class AnimDurations;
|
|
|
|
class AnimEasing : public QObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
Q_PROPERTY(QEasingCurve emphasized READ emphasized NOTIFY curvesChanged)
|
|
Q_PROPERTY(
|
|
QEasingCurve emphasizedAccel READ emphasizedAccel NOTIFY curvesChanged)
|
|
Q_PROPERTY(
|
|
QEasingCurve emphasizedDecel READ emphasizedDecel NOTIFY curvesChanged)
|
|
Q_PROPERTY(QEasingCurve standard READ standard NOTIFY curvesChanged)
|
|
Q_PROPERTY(
|
|
QEasingCurve standardAccel READ standardAccel NOTIFY curvesChanged)
|
|
Q_PROPERTY(
|
|
QEasingCurve standardDecel READ standardDecel NOTIFY curvesChanged)
|
|
Q_PROPERTY(
|
|
QEasingCurve expressiveFastSpatial READ expressiveFastSpatial NOTIFY
|
|
curvesChanged)
|
|
Q_PROPERTY(
|
|
QEasingCurve expressiveDefaultSpatial READ expressiveDefaultSpatial
|
|
NOTIFY curvesChanged)
|
|
Q_PROPERTY(
|
|
QEasingCurve expressiveSlowSpatial READ expressiveSlowSpatial NOTIFY
|
|
curvesChanged)
|
|
Q_PROPERTY(
|
|
QEasingCurve expressiveFastEffects READ expressiveFastEffects NOTIFY
|
|
curvesChanged)
|
|
Q_PROPERTY(
|
|
QEasingCurve expressiveDefaultEffects READ expressiveDefaultEffects
|
|
NOTIFY curvesChanged)
|
|
Q_PROPERTY(
|
|
QEasingCurve expressiveSlowEffects READ expressiveSlowEffects NOTIFY
|
|
curvesChanged)
|
|
|
|
public:
|
|
explicit AnimEasing(QObject* parent = nullptr) : QObject(parent) {}
|
|
|
|
void bindCurves(AnimCurves* curves);
|
|
|
|
[[nodiscard]] QEasingCurve emphasized() const { return m_emphasized; }
|
|
[[nodiscard]] QEasingCurve emphasizedAccel() const {
|
|
return m_emphasizedAccel;
|
|
}
|
|
[[nodiscard]] QEasingCurve emphasizedDecel() const {
|
|
return m_emphasizedDecel;
|
|
}
|
|
[[nodiscard]] QEasingCurve standard() const { return m_standard; }
|
|
[[nodiscard]] QEasingCurve standardAccel() const { return m_standardAccel; }
|
|
[[nodiscard]] QEasingCurve standardDecel() const { return m_standardDecel; }
|
|
[[nodiscard]] QEasingCurve expressiveFastSpatial() const {
|
|
return m_expressiveFastSpatial;
|
|
}
|
|
[[nodiscard]] QEasingCurve expressiveDefaultSpatial() const {
|
|
return m_expressiveDefaultSpatial;
|
|
}
|
|
[[nodiscard]] QEasingCurve expressiveSlowSpatial() const {
|
|
return m_expressiveSlowSpatial;
|
|
}
|
|
[[nodiscard]] QEasingCurve expressiveFastEffects() const {
|
|
return m_expressiveFastEffects;
|
|
}
|
|
[[nodiscard]] QEasingCurve expressiveDefaultEffects() const {
|
|
return m_expressiveDefaultEffects;
|
|
}
|
|
[[nodiscard]] QEasingCurve expressiveSlowEffects() const {
|
|
return m_expressiveSlowEffects;
|
|
}
|
|
|
|
signals:
|
|
void curvesChanged();
|
|
|
|
private:
|
|
static QEasingCurve buildCurve(const QList<qreal>& points);
|
|
void rebuildCurves();
|
|
|
|
AnimCurves* m_curves = nullptr;
|
|
QEasingCurve m_emphasized, m_emphasizedAccel, m_emphasizedDecel;
|
|
QEasingCurve m_standard, m_standardAccel, m_standardDecel;
|
|
QEasingCurve m_expressiveFastSpatial, m_expressiveDefaultSpatial,
|
|
m_expressiveSlowSpatial;
|
|
QEasingCurve m_expressiveFastEffects, m_expressiveDefaultEffects,
|
|
m_expressiveSlowEffects;
|
|
};
|
|
|
|
} // namespace ZShell::config
|