14 #include <QtCore/QString>
15 #include <QtCore/QVector>
16 #include <QtCore/QPair>
17 #include <QtCore/QRect>
19 #include <plugins/Forward.h>
35 using TexturePointer = std::shared_ptr<Texture>;
45 class PluginContainer {
47 static PluginContainer& getInstance();
49 virtual ~PluginContainer();
51 void addMenu(
const QString& menuName);
52 void removeMenu(
const QString& menuName);
53 void addMenuItem(PluginType pluginType,
const QString& path,
const QString& name, std::function<
void(
bool)> onClicked,
bool checkable =
false,
bool checked =
false,
const QString& groupName =
"");
54 void removeMenuItem(
const QString& menuName,
const QString& menuItem);
55 bool isOptionChecked(
const QString& name);
56 void setIsOptionChecked(
const QString& path,
bool checked);
58 void setFullscreen(
const QScreen* targetScreen,
bool hideMenu =
false);
59 void unsetFullscreen(
const QScreen* avoidScreen =
nullptr);
67 virtual ui::Menu* getPrimaryMenu() = 0;
68 virtual void showDisplayPluginsTools(
bool show =
true) = 0;
69 virtual void requestReset() = 0;
70 virtual bool makeRenderingContextCurrent() = 0;
72 virtual GLWidget* getPrimaryWidget() = 0;
74 virtual VKWidget* getPrimaryWidget() = 0;
76 virtual MainWindow* getPrimaryWindow() = 0;
77 virtual QOpenGLContext* getPrimaryContext() = 0;
78 virtual bool isForeground()
const = 0;
79 virtual DisplayPluginPointer getActiveDisplayPlugin()
const = 0;
82 bool getBoolSetting(
const QString& settingName,
bool defaultValue);
83 void setBoolSetting(
const QString& settingName,
bool value);
85 QVector<QPair<QString, QString>>& currentDisplayActions() {
86 return _currentDisplayPluginActions;
89 QVector<QPair<QString, QString>>& currentInputActions() {
90 return _currentInputPluginActions;
94 void flushMenuUpdates();
95 QVector<QPair<QString, QString>> _currentDisplayPluginActions;
96 QVector<QPair<QString, QString>> _currentInputPluginActions;
97 QRect _savedGeometry { 10, 120, 800, 600 };
A simple object wrapper for an OpenGL texture.
Definition: material-networking/src/material-networking/TextureCache.h:39