00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef GLUON_CREATOR_PLUGINMANAGER_H
00021 #define GLUON_CREATOR_PLUGINMANAGER_H
00022
00023 #include "gluoncreator_macros.h"
00024
00025 #include <QtCore/QObject>
00026 #include <QtCore/QHash>
00027 #include <KDE/KPluginInfo>
00028
00029 #include <core/singleton.h>
00030
00031 class KXmlGuiWindow;
00032
00033 namespace GluonCreator
00034 {
00035 class Plugin;
00036
00037 class GLUONCREATOR_EXPORT PluginManager : public GluonCore::Singleton<PluginManager>
00038 {
00039 Q_OBJECT
00040 public:
00041 QList<KPluginInfo> pluginInfos() const;
00042 QHash<QString, Plugin*> loadedPlugins();
00043
00044 public Q_SLOTS:
00045 void loadPlugins();
00046 void setMainWindow( KXmlGuiWindow* window );
00047
00048 Q_SIGNALS:
00049 void pluginLoaded( Plugin* plugin );
00050
00051 private:
00052 friend class GluonCore::Singleton<PluginManager>;
00053
00054 PluginManager();
00055 ~PluginManager();
00056 Q_DISABLE_COPY( PluginManager )
00057
00058 class PluginManagerPrivate;
00059 PluginManagerPrivate* const d;
00060 };
00061 }
00062
00063 #endif // GLUON_CREATOR_DOCKPLUGINLOADER_H