summaryrefslogtreecommitdiff
path: root/bootstrap.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'bootstrap.hxx')
-rw-r--r--bootstrap.hxx54
1 files changed, 54 insertions, 0 deletions
diff --git a/bootstrap.hxx b/bootstrap.hxx
new file mode 100644
index 0000000..a0eccc3
--- /dev/null
+++ b/bootstrap.hxx
@@ -0,0 +1,54 @@
+#ifndef BOOTSTRAP_HXX
+#define BOOTSTRAP_HXX
+
+#include <QObject>
+#include <QtQml>
+
+class Bootstrap : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(Theme theme READ theme WRITE setTheme NOTIFY themeChanged)
+ Q_PROPERTY(Purpose purpose READ purpose WRITE setPurpose NOTIFY purposeChanged)
+
+ public:
+ explicit Bootstrap(QObject *parent = nullptr);
+ static Bootstrap *qmlAttachedProperties(QObject *object);
+
+ enum class Theme {
+ Light,
+ Dark
+ };
+
+ enum class Purpose {
+ None,
+ Primary,
+ Secondary,
+ Success,
+ Danger,
+ Warning,
+ Info,
+ Light,
+ Dark,
+ Link
+ };
+
+ Q_ENUM(Theme)
+ Q_ENUM(Purpose)
+
+ Theme theme() const;
+ void setTheme(Theme theme);
+ Purpose purpose() const;
+ void setPurpose(Purpose purpose);
+
+ signals:
+ void themeChanged();
+ void purposeChanged();
+
+ private:
+ Theme m_theme;
+ Purpose m_purpose;
+};
+
+QML_DECLARE_TYPEINFO(Bootstrap, QML_HAS_ATTACHED_PROPERTIES)
+
+#endif