pluginmanager.h
1
23#ifndef KOMPOSER_PLUGINMANAGER_H
24#define KOMPOSER_PLUGINMANAGER_H
25
26#include <tqmap.h>
27#include <tqobject.h>
28#include <tqstring.h>
29#include <tqstringlist.h>
30#include <tqvaluelist.h>
31
32class KPluginInfo;
33
34namespace Komposer
35{
36
37 class Plugin;
38
39 class PluginManager : public TQObject
40 {
41 TQ_OBJECT
42
43
44 public:
45 PluginManager( TQObject * );
46
47 ~PluginManager();
48
59 TQValueList<KPluginInfo*> availablePlugins( const TQString &category
60 = TQString() ) const;
61
67 TQMap<KPluginInfo*, Plugin*> loadedPlugins( const TQString &category
68 = TQString() ) const;
69
81 Plugin* plugin( const TQString &pluginName ) const;
82
90 TQString pluginName( const Plugin *plugin ) const;
91
100 TQString pluginId( const Plugin *plugin ) const;
101
105 bool unloadPlugin( const TQString &pluginName );
106
113 TQString pluginIcon( const Plugin *plugin ) const;
114
125 void shutdown();
126
141 bool setPluginEnabled( const TQString &name, bool enabled = true );
142
148 enum PluginLoadMode { LoadSync, LoadAsync };
149
150 public slots:
161 Plugin* loadPlugin( const TQString &pluginId, PluginLoadMode mode = LoadSync );
162
167 void loadAllPlugins();
168
169 signals:
173 void pluginLoaded( Plugin *plugin );
174
194 void allPluginsLoaded();
195
196 private slots:
200 void slotPluginDestroyed( TQObject *plugin );
201
207 void slotShutdownTimeout();
208
213 void slotShutdownDone();
214
218 void slotPluginReadyForUnload();
219
224 void slotLoadNextPlugin();
225
226 private:
234 Plugin *loadPluginInternal( const TQString &pluginId );
235
243 KPluginInfo *infoForPluginId( const TQString &pluginId ) const;
244 private:
245 class Private;
246 Private *d;
247 };
248
249}
250
251#endif // KOMPOSER_PLUGINMANAGER_H
attachment.h
Definition: attachment.h:29