- Plugin interface added to MainWindow
[qtrapids] / src / plugins / PluginInterface.h
index dc7a0f7..0e56353 100644 (file)
 
 namespace qtrapids
 {
+<<<<<<< .mine
+       
+               // Forward declaration because of co-dependency of classes.
+               class PluginInterface;
+       
+               /** @class PluginHostInterface
+               * @brief Defines interface for plugins to access the host application. 
+               * A Host is an application that is extended by implementing Plugins, 
+               * that implement the additional functionality
+               * @note Implementing plugin host should inherit QObject.
+       */
+       class PluginHostInterface {
+               public:
+                        
+                       /// @brief Sets the plugin GUI element to host application
+                       /// @note It is up to the host application to decide how to manage
+                       /// and show the actual widget.
+                       virtual bool setGui(PluginInterface* from, QWidget* widget) = 0;
+                       
+                       /// @brief Adds additional plugin wigdets to the host application.
+                       /// This functio can be called by the plugin recursively, i.e. when GUI events occur
+                       /// The host application must handle placing the additional widgets.
+                       /// @todo Could we implement this using in a more manageable way, e.g. signal-slot?
+                       virtual void addPluginWidget(PluginInterface* from, QWidget* widget) = 0;
+                       virtual void addToolbar(PluginInterface* from, QWidget* widget) = 0;
+                       virtual void addToolItem(PluginInterface* from, QWidget* widget) = 0;
+                       virtual void addMenu(PluginInterface* from, QWidget* widget) = 0;
+                       virtual void addMenuItem(PluginInterface* from, QWidget* widget) = 0;
+       };
+=======
+>>>>>>> .r31
+<<<<<<< .mine
+       
+=======
 
 /** @class PluginHostInterface
        * @brief Defines interface for plugins to access the host application.
@@ -35,6 +69,7 @@ class PluginHostInterface : public QObject
 {
 public:
 
+>>>>>>> .r31
     /// @brief Sets the plugin GUI element to host application
     /// @note It is up to the host application to decide how to manage
     /// and show the actual widget.