-<<<<<<< .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.
- * A Host is an application that is extended by implementing Plugins,
- * that implement the additional functionality
- */
- 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.
- virtual bool setGui(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(QWidget* widget) = 0;
- virtual void addToolbar() = 0;
- virtual void addToolItem() = 0;
- virtual void addMenu() = 0;
- virtual void addMenuItem() = 0;
-};
-
-
-/** @class PluginInterface
- * @brief Defines interface for a plugin instance.
- * The host application uses PluginInterface interface for calling the plugins
- * that extend the Host functionality
-*/
-class PluginInterface : public QObject
-{
-public:
- /// @brief Initializes the plugin instance.
- virtual void initialize(PluginHostInterface* host) = 0;
- virtual QWidget* getGui() = 0;
-};
+
+ // 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:
+ /// @enum PluginWidgetType Allows plugin host to differentiate actions
+ /// when passed as parameter to addWidget(). E.g. Popup a dialog or append tab etc.
+ /// @todo add new types
+ enum PluginWidgetType {
+ BASE_WIDGET,
+ TAB_PAGE,
+ UNKNOWN
+ };
+
+ /// @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(QWidget* widget, PluginWidgetType type = UNKNOWN) = 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(QWidget* widget, PluginWidgetType type = UNKNOWN) = 0;
+ virtual void addToolbar(QWidget* widget, PluginWidgetType type = UNKNOWN) = 0;
+ virtual void addToolItem(QWidget* widget, PluginWidgetType type = UNKNOWN) = 0;
+ virtual void addMenu(QWidget* widget, PluginWidgetType type = UNKNOWN) = 0;
+ virtual void addMenuItem(QWidget* widget, PluginWidgetType type = UNKNOWN) = 0;
+ };
+
+
+
+ /** @class PluginInterface
+ * @brief Defines interface for a plugin instance.
+ * The host application uses PluginInterface interface for calling the plugins
+ * that extend the Host functionality
+ */
+ class PluginInterface : public QObject {
+ public:
+ /// @brief Initializes the plugin instance.
+ virtual void initialize(PluginHostInterface* host) = 0;
+ virtual QWidget* getGui() = 0;
+ };