Loading...
Searching...
No Matches
ApplicationInterface.hpp
1#pragma once
2#include <score/application/GUIApplicationContext.hpp>
3
4#include <score_lib_base_export.h>
5namespace score
6{
7class Settings;
8class Presenter;
9class GUIApplicationRegistrar;
10struct GUIApplicationContext;
11
22class SCORE_LIB_BASE_EXPORT ApplicationInterface
23{
24public:
26 virtual ~ApplicationInterface();
27
28 virtual const ApplicationContext& context() const = 0;
29
30 virtual const ApplicationComponents& components() const = 0;
31
32 static ApplicationInterface& instance();
33
42 static bool hasInstance() noexcept { return m_instance != nullptr; }
43
44protected:
45 static ApplicationInterface* m_instance;
46};
47
48class SCORE_LIB_BASE_EXPORT GUIApplicationInterface : public ApplicationInterface
49{
50public:
51 using ApplicationInterface::ApplicationInterface;
53 virtual const GUIApplicationContext& context() const override = 0;
54
55 static GUIApplicationInterface& instance();
56
70 void loadPluginData(score::Settings& settings, score::Presenter& presenter);
71
72 void registerPlugin(score::Plugin_QtInterface&);
73
74 void requestExit();
75 void forceExit();
76};
77}
Definition ApplicationComponents.hpp:68
The ApplicationInterface class.
Definition ApplicationInterface.hpp:23
static bool hasInstance() noexcept
Whether instance() has anything to return.
Definition ApplicationInterface.hpp:42
Definition ApplicationInterface.hpp:49
Definition PluginRequirements_QtInterface.hpp:18
The Presenter class.
Definition lib/core/presenter/Presenter.hpp:36
Application-wide user settings registering and handling.
Definition lib/core/settings/Settings.hpp:42
Base toolkit upon which the software is built.
Definition Application.cpp:117
Used to access all the application-wide state and structures.
Definition ApplicationContext.hpp:25
Specializes ApplicationContext with the QMainWindow.
Definition GUIApplicationContext.hpp:15