aboutsummaryrefslogtreecommitdiff
path: root/libs/installer_bsplugins/src/MOPlugin/IPluginPanel.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/installer_bsplugins/src/MOPlugin/IPluginPanel.h')
-rw-r--r--libs/installer_bsplugins/src/MOPlugin/IPluginPanel.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/libs/installer_bsplugins/src/MOPlugin/IPluginPanel.h b/libs/installer_bsplugins/src/MOPlugin/IPluginPanel.h
new file mode 100644
index 0000000..0c73a9c
--- /dev/null
+++ b/libs/installer_bsplugins/src/MOPlugin/IPluginPanel.h
@@ -0,0 +1,47 @@
+#ifndef IPLUGINPANEL_H
+#define IPLUGINPANEL_H
+
+#include "IPanelInterface.h"
+
+#include <iplugin.h>
+
+class IPluginPanel : public QObject, public MOBase::IPlugin
+{
+ Q_INTERFACES(MOBase::IPlugin)
+
+public:
+ enum class Order
+ {
+ Before,
+ AtStart,
+ InPlaceOf,
+ After,
+ AtEnd,
+ };
+
+ struct Position
+ {
+ Order order_;
+ QString reference_;
+
+ static Position before(const QString& panelName);
+ static Position after(const QString& panelName);
+ static Position inPlaceOf(const QString& panelName);
+ static Position atStart();
+ static Position atEnd();
+ };
+
+ bool init(MOBase::IOrganizer* organizer) final;
+
+ virtual bool initPlugin(MOBase::IOrganizer* organizer) = 0;
+
+ virtual QWidget* createWidget(IPanelInterface* callbacks, QWidget* parent) = 0;
+
+ virtual QString label() const = 0;
+
+ virtual Position position() const = 0;
+};
+
+Q_DECLARE_INTERFACE(IPluginPanel, "org.tannin.IPluginPanel/1.0")
+
+#endif // IPLUGINPANEL_H