kate
katepluginmanager.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __KATE_PLUGINMANAGER_H__
00022 #define __KATE_PLUGINMANAGER_H__
00023
00024 #include "katemain.h"
00025
00026 #include "../interfaces/plugin.h"
00027 #include "../interfaces/pluginmanager.h"
00028
00029 #include <ktrader.h>
00030
00031 #include <tqobject.h>
00032 #include <tqvaluelist.h>
00033
00034 class KatePluginInfo
00035 {
00036 public:
00037 bool load;
00038 KService::Ptr service;
00039 Kate::Plugin *plugin;
00040 };
00041
00042 typedef TQValueList<KatePluginInfo> KatePluginList;
00043
00044 class KatePluginManager : public QObject
00045 {
00046 Q_OBJECT
00047
00048 public:
00049 KatePluginManager(TQObject *parent);
00050 ~KatePluginManager();
00051
00052 static KatePluginManager *self();
00053
00054 Kate::PluginManager *pluginManager () const { return m_pluginManager; };
00055
00056 void loadAllEnabledPlugins ();
00057 void unloadAllPlugins ();
00058
00059 void enableAllPluginsGUI (KateMainWindow *win);
00060 void disableAllPluginsGUI (KateMainWindow *win);
00061
00062 void loadConfig ();
00063 void writeConfig ();
00064
00065 void loadPlugin (KatePluginInfo *item);
00066 void unloadPlugin (KatePluginInfo *item);
00067
00068 void enablePluginGUI (KatePluginInfo *item, KateMainWindow *win);
00069 void enablePluginGUI (KatePluginInfo *item);
00070
00071 void disablePluginGUI (KatePluginInfo *item, KateMainWindow *win);
00072 void disablePluginGUI (KatePluginInfo *item);
00073
00074 inline KatePluginList & pluginList () { return m_pluginList; };
00075
00076 Kate::Plugin *plugin (const TQString &name);
00077 bool pluginAvailable (const TQString &name);
00078
00079 Kate::Plugin *loadPlugin (const TQString &name, bool permanent=true);
00080 void unloadPlugin (const TQString &name, bool permanent=true);
00081
00082 private:
00083 Kate::PluginManager *m_pluginManager;
00084
00085 void setupPluginList ();
00086
00087 KatePluginList m_pluginList;
00088 };
00089
00090 #endif