#ifndef _PLUGIN_INTERFACE_H_ #define _PLUGIN_INTERFACE_H_ #include <QtPlugin> #include <QString> /*** QT_BEGIN_NAMESPACE class QString; class QWidget; QT_END_NAMESPACE ***/ //! a base class for plugins //! All plugin classes must inherite this class and QObject. class PluginInterface { public: virtual ~PluginInterface() {} public slots: //! A description of the plugin //! A description of the plugin. Is not used in current version. virtual QString pluginDescription() const = 0; //! The plugin's name //! A name serves like an unique ID. The name is used in all operations //! such as installing, removing, receiving a widget virtual QString pluginName() const = 0; //! plugin's widget. //! Returns the widget, which is actually a plugin. Main application must //! delete the widget; usually, a parent widget does it. If you want to use //! the widget as top-level (i.e. parent==0), please, set //! Qt::WA_DeleteOnClose flag . virtual QWidget* pluginWidget(QWidget * parent = 0) = 0; }; QT_BEGIN_NAMESPACE Q_DECLARE_INTERFACE(PluginInterface, "com.beardog.retroshare.PluginInterface/1.0") QT_END_NAMESPACE #endif