Sélectionner une révision Git
-
Kubat a rédigé
CMP0100 is set to NEW, so moc and uic can be run on .hh files if needed. This is the new behaviour of the policy so it's safe. It also permits to separate clearly C++ headers from C ones.
Kubat a rédigéCMP0100 is set to NEW, so moc and uic can be run on .hh files if needed. This is the new behaviour of the policy so it's safe. It also permits to separate clearly C++ headers from C ones.
VivyApplication.hh 2,29 Kio
#pragma once
#ifndef __cplusplus
#error "This is a C++ header"
#endif
#define vivyApp static_cast<VivyApplication *>(QApplication::instance())
#define currentVivyDocument() dynamic_cast<VivyDocument *>(vivyApp->getCurrentDocument())
#define currentScriptDocument dynamic_cast<ScriptDocument *>(vivyApp->getCurrentDocument())
// 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_RENAME ":icons/dark/document-rename.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"
#define VIVY_ICON_PLAY ":icons/dark/media-play.svg"
#define VIVY_ICON_PAUSE ":icons/dark/media-pause.svg"
#define VIVY_ICON_STOP ":icons/dark/media-stop.svg"
// Detect MacOS
#if defined(Q_OS_DARWIN) || defined(Q_OS_MACOS)
#define VIVY_MACOS
#endif
#include "Lib/Script/ScriptStore.hh"
#include "Lib/Document/VivyDocumentStore.hh"
#include "UI/MainWindow.hh"
namespace Vivy
{
class MainWindow;
// Vivy application class
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;
std::unique_ptr<MainWindow> mainWindowPtr{ nullptr };
bool useFakeVim{ false };
public:
VivyApplication(int &argc, char **argv);
int exec() noexcept;
[[nodiscard]] QFont getApplicationFont(Font) const noexcept;
[[nodiscard]] MainWindow *getMainWindow() const;
[[nodiscard]] AbstractDocument *getCurrentDocument() const;
[[nodiscard]] bool getUseFakeVimEditor() const noexcept;
void setUseFakeVimEditor(bool) noexcept;
void setTheme(Theme) noexcept;
};
}