libkdepim Library API Documentation

pluginmanager.h

00001 // -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; -*- 00024 #ifndef KOMPOSER_PLUGINMANAGER_H 00025 #define KOMPOSER_PLUGINMANAGER_H 00026 00027 #include <qmap.h> 00028 #include <qobject.h> 00029 #include <qstring.h> 00030 #include <qstringlist.h> 00031 #include <qvaluelist.h> 00032 00033 class KPluginInfo; 00034 00035 namespace Komposer 00036 { 00037 00038 class Plugin; 00039 00040 class PluginManager : public QObject 00041 { 00042 Q_OBJECT 00043 00044 public: 00045 PluginManager( QObject* ); 00046 00047 ~PluginManager(); 00048 00059 QValueList<KPluginInfo*> availablePlugins( const QString& category 00060 = QString::null ) const; 00061 00067 QMap<KPluginInfo*, Plugin*> loadedPlugins( const QString& category 00068 = QString::null ) const; 00069 00080 Plugin* plugin( const QString& pluginName ) const; 00081 00089 QString pluginName( const Plugin* plugin ) const; 00090 00099 QString pluginId( const Plugin* plugin ) const; 00100 00104 bool unloadPlugin( const QString& pluginName ); 00105 00112 QString pluginIcon( const Plugin* plugin ) const; 00113 00124 void shutdown(); 00125 00140 bool setPluginEnabled( const QString& name, bool enabled = true ); 00141 00147 enum PluginLoadMode { LoadSync, LoadAsync }; 00148 00149 public slots: 00160 Plugin* loadPlugin( const QString& pluginId, PluginLoadMode mode = LoadSync ); 00161 00166 void loadAllPlugins(); 00167 00168 signals: 00172 void pluginLoaded( Plugin* plugin ); 00173 00193 void allPluginsLoaded(); 00194 00195 private slots: 00199 void slotPluginDestroyed( QObject* plugin ); 00200 00206 void slotShutdownTimeout(); 00207 00212 void slotShutdownDone(); 00213 00217 void slotPluginReadyForUnload(); 00218 00223 void slotLoadNextPlugin(); 00224 00225 private: 00233 Plugin * loadPluginInternal( const QString &pluginId ); 00234 00242 KPluginInfo* infoForPluginId( const QString& pluginId ) const; 00243 private: 00244 class Private; 00245 Private* d; 00246 }; 00247 00248 } 00249 00250 #endif // KOMPOSER_PLUGINMANAGER_H
KDE Logo
This file is part of the documentation for libkdepim Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Aug 27 12:50:26 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003