Sélectionner une révision Git
VivyApplication.hh 1,55 Kio
#pragma once
#ifndef __cplusplus
#error "This is a C++ header"
#endif
#define vivyApp static_cast<VivyApplication *>(QApplication::instance())
// Only support dark theme for now
#define VIVY_ICON_APP ":icons/vivy.png"
#define VIVY_ICON_SCRIPT ":icons/lua.png"
#define VIVY_ICON_OPEN ":icons/dark/document-open.svg"
#define VIVY_ICON_NEW ":icons/dark/document-new.svg"
#define VIVY_ICON_SAVE ":icons/dark/document-save.svg"
#define VIVY_ICON_SAVE_AS ":icons/dark/document-save-as.svg"
#define VIVY_ICON_ABOUT ":icons/dark/help-about.svg"
#define VIVY_ICON_FILE ":icons/dark/text-x-generic.svg"
#define VIVY_ICON_FOLDER ":icons/dark/folder.svg"
#include <QApplication>
#include <QPixmap>
#include <QFont>
// Detect MacOS
#if defined(Q_OS_DARWIN) || defined(Q_OS_MACOS)
#define VIVY_MACOS
#endif
#include "Lib/Document/VivyDocumentStore.hh"
namespace Vivy
{
class VivyApplication : public QApplication {
Q_OBJECT
public:
VivyDocumentStore documentStore{};
ScriptStore scriptStore{};
enum class Font {
Monospace,
MonospaceBold,
Default,
DefaultItalic,
DefaultBold,
DefaultBoldItalic,
};
enum class Theme {
System,
Dark,
Light,
};
private:
int fontIdMonospace;
int fontIdMonospaceBold;
int fontIdRegular;
int fontIdItalic;
int fontIdBold;
int fontIdBoldItalic;
public:
VivyApplication(int &argc, char **argv);
int exec() noexcept;
QFont getApplicationFont(Font) const noexcept;
void setTheme(Theme) noexcept;
};
}