diff options
Diffstat (limited to 'libs/installer_bsplugins/src/MOPlugin/IPluginPanel.h')
| -rw-r--r-- | libs/installer_bsplugins/src/MOPlugin/IPluginPanel.h | 47 |
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 |
