diff --git a/ORGBExamplePlugin.cpp b/ORGBExamplePlugin.cpp index 84049b2..2763f72 100644 --- a/ORGBExamplePlugin.cpp +++ b/ORGBExamplePlugin.cpp @@ -1,34 +1,33 @@ #include "ORGBExamplePlugin.h" #include "Dependencies/ResourceManager.h" -bool ORGBPlugin::HasCustomIcon() +PluginInfo ORGBPlugin::DefineNeeded() { - return false; + ORGBPlugin::PInfo.PluginName = "Example"; + ORGBPlugin::PInfo.PluginDesc = "An example Plugin for OpenRGB"; + ORGBPlugin::PInfo.PluginLoca = "InfoTab"; + + ORGBPlugin::PInfo.HasCustom = false; + ORGBPlugin::PInfo.SettingName = ""; + + return ORGBPlugin::PInfo; } -QLabel* ORGBPlugin::TabLabel() +QLabel* TabLabel() { QLabel *TLabel = new QLabel(); TLabel->setText("Example"); return TLabel; } -std::string ORGBPlugin::PluginName() +PluginInfo ORGBPlugin::init(json Settings, bool DarkTheme) { - return "ExamplePlugin"; + ORGBPlugin::PInfo.PluginLabel = TabLabel(); + + return ORGBPlugin::PInfo; } -std::string ORGBPlugin::PluginDesc() -{ - return "This is an Example plugin for OpenRGB"; -} - -std::string ORGBPlugin::PluginLocal() -{ - return "InfoTab"; -} - -QWidget* ORGBPlugin::CreateGUI(QWidget *Parent, ResourceManager *RM) +QWidget* ORGBPlugin::CreateGUI(QWidget *Parent) { QWidget *ORGBExamplePage = new QWidget(Parent); QLabel *ORGBExampleLabel = new QLabel(ORGBExamplePage); diff --git a/ORGBExamplePlugin.h b/ORGBExamplePlugin.h index 25a6916..2cf4527 100644 --- a/ORGBExamplePlugin.h +++ b/ORGBExamplePlugin.h @@ -19,17 +19,15 @@ class ORGBPlugin : public QObject, public ORGBPluginInterface Q_INTERFACES(ORGBPluginInterface) public: - ~ORGBPlugin() override {} + virtual ~ORGBPlugin() {}; - bool HasCustomIcon() override; - QLabel* TabLabel() override; + PluginInfo PInfo; - std::string PluginName() override; - std::string PluginDesc() override; - std::string PluginLocal() override; + virtual PluginInfo DefineNeeded() override; - QWidget* CreateGUI(QWidget *Parent, ResourceManager *RM = nullptr) override; + virtual PluginInfo init(json Settings , bool DarkTheme) override; + virtual QWidget *CreateGUI(QWidget *Parent) override; private slots: void on_ExampleButton_clicked(); }; diff --git a/ORGBPluginInterface.h b/ORGBPluginInterface.h index 3ace8c9..f68f28f 100644 --- a/ORGBPluginInterface.h +++ b/ORGBPluginInterface.h @@ -4,22 +4,32 @@ #include #include "Dependencies/ResourceManager.h" -class QString; #define ORGBPluginInterface_IID "com.ORGBPluginInterface" +struct PluginInfo +{ + std::string PluginName; + std::string PluginDesc; + std::string PluginLoca; + + bool HasCustom; + QLabel *PluginLabel; + + std::string SettingName; +}; + class ORGBPluginInterface { public: - virtual ~ORGBPluginInterface() {} + virtual ~ORGBPluginInterface() {} - virtual bool HasCustomIcon() = 0; - virtual QLabel* TabLabel() = 0; + PluginInfo PInfo; - virtual std::string PluginName() = 0; - virtual std::string PluginDesc() = 0; - virtual std::string PluginLocal() = 0; + virtual PluginInfo DefineNeeded() = 0; - virtual QWidget* CreateGUI(QWidget *Parent, ResourceManager *RM = nullptr) = 0; + virtual PluginInfo init(json Settings , bool DarkTheme) = 0; + + virtual QWidget *CreateGUI(QWidget *Parent) = 0; }; Q_DECLARE_INTERFACE(ORGBPluginInterface, ORGBPluginInterface_IID)