84 lines
2.2 KiB
C++
84 lines
2.2 KiB
C++
#pragma once
|
|
|
|
#include "configobject.hpp"
|
|
|
|
#include <qstring.h>
|
|
|
|
namespace caelestia::config {
|
|
|
|
class DesktopClockBackground : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_PROPERTY(bool, enabled, false)
|
|
CONFIG_PROPERTY(qreal, opacity, 0.7)
|
|
CONFIG_PROPERTY(bool, blur, true)
|
|
|
|
public:
|
|
explicit DesktopClockBackground(QObject* parent = nullptr)
|
|
: ConfigObject(parent) {}
|
|
};
|
|
|
|
class DesktopClockShadow : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_PROPERTY(bool, enabled, true)
|
|
CONFIG_PROPERTY(qreal, opacity, 0.7)
|
|
CONFIG_PROPERTY(qreal, blur, 0.4)
|
|
|
|
public:
|
|
explicit DesktopClockShadow(QObject* parent = nullptr)
|
|
: ConfigObject(parent) {}
|
|
};
|
|
|
|
class DesktopClock : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_PROPERTY(bool, enabled, false)
|
|
CONFIG_PROPERTY(qreal, scale, 1.0)
|
|
CONFIG_PROPERTY(QString, position, QStringLiteral("bottom-right"))
|
|
CONFIG_PROPERTY(bool, invertColors, false)
|
|
CONFIG_SUBOBJECT(DesktopClockBackground, background)
|
|
CONFIG_SUBOBJECT(DesktopClockShadow, shadow)
|
|
|
|
public:
|
|
explicit DesktopClock(QObject* parent = nullptr)
|
|
: ConfigObject(parent)
|
|
, m_background(new DesktopClockBackground(this))
|
|
, m_shadow(new DesktopClockShadow(this)) {}
|
|
};
|
|
|
|
class BackgroundVisualiser : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_PROPERTY(bool, enabled, false)
|
|
CONFIG_PROPERTY(bool, autoHide, true)
|
|
CONFIG_PROPERTY(bool, blur, false)
|
|
CONFIG_PROPERTY(qreal, rounding, 1)
|
|
CONFIG_PROPERTY(qreal, spacing, 1)
|
|
|
|
public:
|
|
explicit BackgroundVisualiser(QObject* parent = nullptr)
|
|
: ConfigObject(parent) {}
|
|
};
|
|
|
|
class BackgroundConfig : public ConfigObject {
|
|
Q_OBJECT
|
|
QML_ANONYMOUS
|
|
|
|
CONFIG_PROPERTY(bool, enabled, true)
|
|
CONFIG_PROPERTY(bool, wallpaperEnabled, true)
|
|
CONFIG_SUBOBJECT(DesktopClock, desktopClock)
|
|
CONFIG_SUBOBJECT(BackgroundVisualiser, visualiser)
|
|
|
|
public:
|
|
explicit BackgroundConfig(QObject* parent = nullptr)
|
|
: ConfigObject(parent)
|
|
, m_desktopClock(new DesktopClock(this))
|
|
, m_visualiser(new BackgroundVisualiser(this)) {}
|
|
};
|
|
|
|
} // namespace caelestia::config
|