350 lines
10 KiB
C++
350 lines
10 KiB
C++
#pragma once
|
|
|
|
#include "configobject.hpp"
|
|
|
|
#include <qlist.h>
|
|
|
|
namespace caelestia::config {
|
|
|
|
class AnimCurves : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_PROPERTY(QList<qreal>, emphasized)
|
|
CONFIG_PROPERTY(QList<qreal>, emphasizedAccel)
|
|
CONFIG_PROPERTY(QList<qreal>, emphasizedDecel)
|
|
CONFIG_PROPERTY(QList<qreal>, standard)
|
|
CONFIG_PROPERTY(QList<qreal>, standardAccel)
|
|
CONFIG_PROPERTY(QList<qreal>, standardDecel)
|
|
CONFIG_PROPERTY(QList<qreal>, expressiveFastSpatial)
|
|
CONFIG_PROPERTY(QList<qreal>, expressiveDefaultSpatial)
|
|
CONFIG_PROPERTY(QList<qreal>, expressiveSlowSpatial)
|
|
|
|
public:
|
|
explicit AnimCurves(QObject* parent = nullptr)
|
|
: ConfigObject(parent)
|
|
, m_emphasized({ 0.05, 0, 2.0 / 15.0, 0.06, 1.0 / 6.0, 0.4, 5.0 / 24.0, 0.82, 0.25, 1, 1, 1 })
|
|
, m_emphasizedAccel({ 0.3, 0, 0.8, 0.15, 1, 1 })
|
|
, m_emphasizedDecel({ 0.05, 0.7, 0.1, 1, 1, 1 })
|
|
, m_standard({ 0.2, 0, 0, 1, 1, 1 })
|
|
, m_standardAccel({ 0.3, 0, 1, 1, 1, 1 })
|
|
, m_standardDecel({ 0, 0, 0, 1, 1, 1 })
|
|
, m_expressiveFastSpatial({ 0.42, 1.67, 0.21, 0.9, 1, 1 })
|
|
, m_expressiveDefaultSpatial({ 0.38, 1.21, 0.22, 1, 1, 1 })
|
|
, m_expressiveSlowSpatial({ 0.39, 1.29, 0.35, 0.98, 1, 1 }) {}
|
|
};
|
|
|
|
class RoundingTokens : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_PROPERTY(int, small, 12)
|
|
CONFIG_PROPERTY(int, normal, 17)
|
|
CONFIG_PROPERTY(int, large, 25)
|
|
CONFIG_PROPERTY(int, full, 1000)
|
|
|
|
public:
|
|
explicit RoundingTokens(QObject* parent = nullptr)
|
|
: ConfigObject(parent) {}
|
|
};
|
|
|
|
class SpacingTokens : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_PROPERTY(int, small, 7)
|
|
CONFIG_PROPERTY(int, smaller, 10)
|
|
CONFIG_PROPERTY(int, normal, 12)
|
|
CONFIG_PROPERTY(int, larger, 15)
|
|
CONFIG_PROPERTY(int, large, 20)
|
|
|
|
public:
|
|
explicit SpacingTokens(QObject* parent = nullptr)
|
|
: ConfigObject(parent) {}
|
|
};
|
|
|
|
class PaddingTokens : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_PROPERTY(int, small, 5)
|
|
CONFIG_PROPERTY(int, smaller, 7)
|
|
CONFIG_PROPERTY(int, normal, 10)
|
|
CONFIG_PROPERTY(int, larger, 12)
|
|
CONFIG_PROPERTY(int, large, 15)
|
|
|
|
public:
|
|
explicit PaddingTokens(QObject* parent = nullptr)
|
|
: ConfigObject(parent) {}
|
|
};
|
|
|
|
class FontSizeTokens : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_PROPERTY(int, small, 11)
|
|
CONFIG_PROPERTY(int, smaller, 12)
|
|
CONFIG_PROPERTY(int, normal, 13)
|
|
CONFIG_PROPERTY(int, larger, 15)
|
|
CONFIG_PROPERTY(int, large, 18)
|
|
CONFIG_PROPERTY(int, extraLarge, 28)
|
|
|
|
public:
|
|
explicit FontSizeTokens(QObject* parent = nullptr)
|
|
: ConfigObject(parent) {}
|
|
};
|
|
|
|
class AnimDurationTokens : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_PROPERTY(int, small, 200)
|
|
CONFIG_PROPERTY(int, normal, 400)
|
|
CONFIG_PROPERTY(int, large, 600)
|
|
CONFIG_PROPERTY(int, extraLarge, 1000)
|
|
CONFIG_PROPERTY(int, expressiveFastSpatial, 350)
|
|
CONFIG_PROPERTY(int, expressiveDefaultSpatial, 500)
|
|
CONFIG_PROPERTY(int, expressiveSlowSpatial, 650)
|
|
|
|
public:
|
|
explicit AnimDurationTokens(QObject* parent = nullptr)
|
|
: ConfigObject(parent) {}
|
|
};
|
|
|
|
class AdvancedAppearance : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_SUBOBJECT(AnimCurves, curves)
|
|
CONFIG_SUBOBJECT(RoundingTokens, rounding)
|
|
CONFIG_SUBOBJECT(SpacingTokens, spacing)
|
|
CONFIG_SUBOBJECT(PaddingTokens, padding)
|
|
CONFIG_SUBOBJECT(FontSizeTokens, fontSize)
|
|
CONFIG_SUBOBJECT(AnimDurationTokens, animDurations)
|
|
|
|
public:
|
|
explicit AdvancedAppearance(QObject* parent = nullptr)
|
|
: ConfigObject(parent)
|
|
, m_curves(new AnimCurves(this))
|
|
, m_rounding(new RoundingTokens(this))
|
|
, m_spacing(new SpacingTokens(this))
|
|
, m_padding(new PaddingTokens(this))
|
|
, m_fontSize(new FontSizeTokens(this))
|
|
, m_animDurations(new AnimDurationTokens(this)) {}
|
|
};
|
|
|
|
class BarSizes : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_PROPERTY(int, innerWidth, 40)
|
|
CONFIG_PROPERTY(int, windowPreviewSize, 400)
|
|
CONFIG_PROPERTY(int, trayMenuWidth, 300)
|
|
CONFIG_PROPERTY(int, batteryWidth, 250)
|
|
CONFIG_PROPERTY(int, networkWidth, 320)
|
|
CONFIG_PROPERTY(int, kbLayoutWidth, 320)
|
|
|
|
public:
|
|
explicit BarSizes(QObject* parent = nullptr)
|
|
: ConfigObject(parent) {}
|
|
};
|
|
|
|
class AdvancedDashboard : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_PROPERTY(bool, showDashboard, true)
|
|
CONFIG_PROPERTY(bool, showMedia, true)
|
|
CONFIG_PROPERTY(bool, showPerformance, true)
|
|
CONFIG_PROPERTY(bool, showWeather, true)
|
|
|
|
Q_PROPERTY(int tabIndicatorHeight READ tabIndicatorHeight CONSTANT)
|
|
Q_PROPERTY(int tabIndicatorSpacing READ tabIndicatorSpacing CONSTANT)
|
|
Q_PROPERTY(int infoWidth READ infoWidth CONSTANT)
|
|
Q_PROPERTY(int infoIconSize READ infoIconSize CONSTANT)
|
|
Q_PROPERTY(int dateTimeWidth READ dateTimeWidth CONSTANT)
|
|
Q_PROPERTY(int mediaWidth READ mediaWidth CONSTANT)
|
|
Q_PROPERTY(int mediaProgressSweep READ mediaProgressSweep CONSTANT)
|
|
Q_PROPERTY(int mediaProgressThickness READ mediaProgressThickness CONSTANT)
|
|
Q_PROPERTY(int resourceProgessThickness READ resourceProgessThickness CONSTANT)
|
|
Q_PROPERTY(int weatherWidth READ weatherWidth CONSTANT)
|
|
Q_PROPERTY(int mediaCoverArtSize READ mediaCoverArtSize CONSTANT)
|
|
Q_PROPERTY(int mediaVisualiserSize READ mediaVisualiserSize CONSTANT)
|
|
Q_PROPERTY(int resourceSize READ resourceSize CONSTANT)
|
|
|
|
public:
|
|
explicit AdvancedDashboard(QObject* parent = nullptr)
|
|
: ConfigObject(parent) {}
|
|
|
|
[[nodiscard]] static int tabIndicatorHeight() { return 3; }
|
|
|
|
[[nodiscard]] static int tabIndicatorSpacing() { return 5; }
|
|
|
|
[[nodiscard]] static int infoWidth() { return 200; }
|
|
|
|
[[nodiscard]] static int infoIconSize() { return 25; }
|
|
|
|
[[nodiscard]] static int dateTimeWidth() { return 110; }
|
|
|
|
[[nodiscard]] static int mediaWidth() { return 200; }
|
|
|
|
[[nodiscard]] static int mediaProgressSweep() { return 180; }
|
|
|
|
[[nodiscard]] static int mediaProgressThickness() { return 8; }
|
|
|
|
[[nodiscard]] static int resourceProgessThickness() { return 10; }
|
|
|
|
[[nodiscard]] static int weatherWidth() { return 250; }
|
|
|
|
[[nodiscard]] static int mediaCoverArtSize() { return 150; }
|
|
|
|
[[nodiscard]] static int mediaVisualiserSize() { return 80; }
|
|
|
|
[[nodiscard]] static int resourceSize() { return 200; }
|
|
};
|
|
|
|
class LauncherSizes : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_PROPERTY(int, itemWidth, 600)
|
|
CONFIG_PROPERTY(int, itemHeight, 57)
|
|
CONFIG_PROPERTY(int, wallpaperWidth, 280)
|
|
CONFIG_PROPERTY(int, wallpaperHeight, 200)
|
|
|
|
public:
|
|
explicit LauncherSizes(QObject* parent = nullptr)
|
|
: ConfigObject(parent) {}
|
|
};
|
|
|
|
class NotifsSizes : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_PROPERTY(int, width, 400)
|
|
CONFIG_PROPERTY(int, image, 41)
|
|
CONFIG_PROPERTY(int, badge, 20)
|
|
|
|
public:
|
|
explicit NotifsSizes(QObject* parent = nullptr)
|
|
: ConfigObject(parent) {}
|
|
};
|
|
|
|
class OsdSizes : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_PROPERTY(int, sliderWidth, 30)
|
|
CONFIG_PROPERTY(int, sliderHeight, 150)
|
|
|
|
public:
|
|
explicit OsdSizes(QObject* parent = nullptr)
|
|
: ConfigObject(parent) {}
|
|
};
|
|
|
|
class SessionSizes : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_PROPERTY(int, button, 80)
|
|
|
|
public:
|
|
explicit SessionSizes(QObject* parent = nullptr)
|
|
: ConfigObject(parent) {}
|
|
};
|
|
|
|
class SidebarSizes : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_PROPERTY(int, width, 430)
|
|
|
|
public:
|
|
explicit SidebarSizes(QObject* parent = nullptr)
|
|
: ConfigObject(parent) {}
|
|
};
|
|
|
|
class UtilitiesSizes : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_PROPERTY(int, width, 430)
|
|
CONFIG_PROPERTY(int, toastWidth, 430)
|
|
|
|
public:
|
|
explicit UtilitiesSizes(QObject* parent = nullptr)
|
|
: ConfigObject(parent) {}
|
|
};
|
|
|
|
class LockSizes : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_PROPERTY(qreal, heightMult, 0.7)
|
|
CONFIG_PROPERTY(qreal, ratio, 16.0 / 9.0)
|
|
CONFIG_PROPERTY(int, centerWidth, 600)
|
|
|
|
public:
|
|
explicit LockSizes(QObject* parent = nullptr)
|
|
: ConfigObject(parent) {}
|
|
};
|
|
|
|
class WInfoSizes : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_PROPERTY(qreal, heightMult, 0.7)
|
|
CONFIG_PROPERTY(qreal, detailsWidth, 500)
|
|
|
|
public:
|
|
explicit WInfoSizes(QObject* parent = nullptr)
|
|
: ConfigObject(parent) {}
|
|
};
|
|
|
|
class ControlCenterSizes : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_PROPERTY(qreal, heightMult, 0.7)
|
|
CONFIG_PROPERTY(qreal, ratio, 16.0 / 9.0)
|
|
|
|
public:
|
|
explicit ControlCenterSizes(QObject* parent = nullptr)
|
|
: ConfigObject(parent) {}
|
|
};
|
|
|
|
class AdvancedConfig : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_SUBOBJECT(AdvancedAppearance, appearance)
|
|
CONFIG_SUBOBJECT(BarSizes, bar)
|
|
CONFIG_SUBOBJECT(AdvancedDashboard, dashboard)
|
|
CONFIG_SUBOBJECT(LauncherSizes, launcher)
|
|
CONFIG_SUBOBJECT(NotifsSizes, notifs)
|
|
CONFIG_SUBOBJECT(OsdSizes, osd)
|
|
CONFIG_SUBOBJECT(SessionSizes, session)
|
|
CONFIG_SUBOBJECT(SidebarSizes, sidebar)
|
|
CONFIG_SUBOBJECT(UtilitiesSizes, utilities)
|
|
CONFIG_SUBOBJECT(LockSizes, lock)
|
|
CONFIG_SUBOBJECT(WInfoSizes, winfo)
|
|
CONFIG_SUBOBJECT(ControlCenterSizes, controlCenter)
|
|
|
|
public:
|
|
explicit AdvancedConfig(QObject* parent = nullptr)
|
|
: ConfigObject(parent)
|
|
, m_appearance(new AdvancedAppearance(this))
|
|
, m_bar(new BarSizes(this))
|
|
, m_dashboard(new AdvancedDashboard(this))
|
|
, m_launcher(new LauncherSizes(this))
|
|
, m_notifs(new NotifsSizes(this))
|
|
, m_osd(new OsdSizes(this))
|
|
, m_session(new SessionSizes(this))
|
|
, m_sidebar(new SidebarSizes(this))
|
|
, m_utilities(new UtilitiesSizes(this))
|
|
, m_lock(new LockSizes(this))
|
|
, m_winfo(new WInfoSizes(this))
|
|
, m_controlCenter(new ControlCenterSizes(this)) {}
|
|
};
|
|
|
|
} // namespace caelestia::config
|