Files
z-bar-qt/Plugins/ZShell/Config/appearance.hpp

84 lines
1.8 KiB
C++

#pragma once
#include "configobject.hpp"
#include <qqmlregistration.h>
namespace ZShell::config {
class Anim : public ConfigObject {
Q_OBJECT
QML_ANONYMOUS
CFG_PROPERTY(int, mediaGifSpeedAdjustment, 300)
CFG_PROPERTY(qreal, sessionGifSpeed, 0.7)
public:
explicit Anim(QObject* parent = nullptr) : ConfigObject(parent) {}
};
class Deform : public ConfigObject {
Q_OBJECT
QML_ANONYMOUS
CFG_PROPERTY(qreal, scale, 1)
public:
explicit Deform(QObject* parent = nullptr) : ConfigObject(parent) {}
};
class FontFamily : public ConfigObject {
Q_OBJECT
QML_ANONYMOUS
CFG_PROPERTY(QString, clock, QStringLiteral("Rubik"))
CFG_PROPERTY(QString, material, QStringLiteral("Material Symbols Rounded"))
CFG_PROPERTY(QString, mono, QStringLiteral("CaskaydiaCove NF"))
CFG_PROPERTY(QString, sans, QStringLiteral("Segoe UI Variable Text"))
public:
explicit FontFamily(QObject* parent = nullptr) : ConfigObject(parent) {}
};
class Font : public ConfigObject {
Q_OBJECT
QML_ANONYMOUS
CONFIG_SUBOBJECT(FontFamily, family)
public:
explicit Font(QObject* parent = nullptr)
: ConfigObject(parent), m_family(new FontFamily(this)) {}
};
class Transparency : public ConfigObject {
Q_OBJECT
QML_ANONYMOUS
CFG_PROPERTY(qreal, base, 0.85)
CFG_PROPERTY(bool, enabled, false)
CFG_PROPERTY(qreal, layers, 0.4)
public:
explicit Transparency(QObject* parent = nullptr) : ConfigObject(parent) {}
};
class Appearance : public ConfigObject {
Q_OBJECT
QML_ANONYMOUS
CONFIG_SUBOBJECT(Anim, anim)
CONFIG_SUBOBJECT(Deform, deform)
CONFIG_SUBOBJECT(Font, font)
CONFIG_SUBOBJECT(Transparency, transparency)
public:
explicit Appearance(QObject* parent = nullptr)
: ConfigObject(parent)
, m_anim(new Anim(this))
, m_deform(new Deform(this))
, m_font(new Font(this))
, m_transparency(new Transparency(this)) {}
};
} // namespace ZShell::config