Loading...
Searching...
No Matches
GUIApplicationContext.hpp
1#pragma once
2#include <score/application/ApplicationContext.hpp>
3
4class QMainWindow;
5namespace score
6{
15{
16 explicit GUIApplicationContext(
20 const std::vector<std::unique_ptr<score::SettingsDelegateModel>>& g,
21 QMainWindow* mw);
22
28 auto panels() const { return components.panels(); }
29
35 template <typename T>
36 T& panel() const
37 {
38 return components.panel<T>();
39 }
40 template <typename T>
41 T* findPanel() const
42 {
43 return components.findPanel<T>();
44 }
45
51 const auto& applicationPlugins() const { return components.applicationPlugins(); }
52
58 const auto& guiApplicationPlugins() const
59 {
60 return components.guiApplicationPlugins();
61 }
62
68 template <typename T>
70 {
71 static_assert(std::is_base_of_v<score::ApplicationPlugin, T>);
72 return components.applicationPlugin<T>();
73 }
74
75 template <typename T>
76 T* findApplicationPlugin() const
77 {
78 static_assert(std::is_base_of_v<score::ApplicationPlugin, T>);
79 return components.findApplicationPlugin<T>();
80 }
81
87 template <typename T>
89 {
90 static_assert(std::is_base_of_v<score::GUIApplicationPlugin, T>);
91 return components.guiApplicationPlugin<T>();
92 }
93
94 template <typename T>
95 T* findGuiApplicationPlugin() const
96 {
97 static_assert(std::is_base_of_v<score::GUIApplicationPlugin, T>);
98 return components.findGuiApplicationPlugin<T>();
99 }
100
101 DocumentManager& docManager;
102
103 MenuManager& menus;
104 ToolbarManager& toolbars;
105 ActionManager& actions;
106 QMainWindow* mainWindow{};
107 QWidget* documentTabWidget{};
108};
109
110SCORE_LIB_BASE_EXPORT const GUIApplicationContext& GUIAppContext();
111}
The ActionManager class.
Definition ActionManager.hpp:19
Definition ApplicationComponents.hpp:68
Owns the documents.
Definition DocumentManager.hpp:49
The MenuManager class.
Definition MenuManager.hpp:15
The ToolbarManager class.
Definition ToolbarManager.hpp:15
Base toolkit upon which the software is built.
Definition Application.cpp:97
Used to access all the application-wide state and structures.
Definition ApplicationContext.hpp:24
Load-time settings.
Definition ApplicationSettings.hpp:17
Specializes ApplicationContext with the QMainWindow.
Definition GUIApplicationContext.hpp:15
const auto & applicationPlugins() const
List of all the application-wide plug-ins.
Definition GUIApplicationContext.hpp:51
const auto & guiApplicationPlugins() const
List of all the gui application-wide plug-ins.
Definition GUIApplicationContext.hpp:58
auto panels() const
List of the available GUI panels.
Definition GUIApplicationContext.hpp:28
T & panel() const
Access to a specific PanelDelegate.
Definition GUIApplicationContext.hpp:36
T & guiApplicationPlugin() const
Access a specific gui application plug-in instance.
Definition GUIApplicationContext.hpp:88
T & applicationPlugin() const
Access a specific application plug-in instance.
Definition GUIApplicationContext.hpp:69