kcmodulecontainer.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef KCMODULECONTAINER_H
00021 #define KCMODULECONTAINER_H
00022
00023 #include <qvaluelist.h>
00024 #include <qstring.h>
00025 #include <qstringlist.h>
00026
00027 #include <kcmodule.h>
00028 #include <kcmoduleloader.h>
00029
00030 class QTabWidget;
00031 class QWidget;
00032 class QVBoxLayout;
00033
00034 class KCModuleProxy;
00035
00052 class KUTILS_EXPORT KCModuleContainer : public KCModule
00053 {
00054 Q_OBJECT
00055 public:
00065 KCModuleContainer( QWidget* parent, const char* name, const QStringList& mods );
00066
00082 KCModuleContainer( QWidget *parent, const char* name, const QString& mods = QString() );
00083
00091 void addModule( const QString& module );
00092
00096 virtual ~KCModuleContainer();
00097
00102 void save();
00103
00108 void load();
00109
00114 void defaults();
00115
00116 protected:
00117
00124 void finalize();
00125
00126 typedef QValueList<KCModuleProxy*> ModuleList;
00131 ModuleList changedModules;
00132
00136 ModuleList allModules;
00137
00138 private slots:
00139
00143 void tabSwitched( QWidget * module );
00144
00145 void moduleChanged(KCModuleProxy *proxy);
00146
00150 void runAsRoot();
00151
00155 void rootExited();
00156
00157 private:
00158
00159 void init();
00160
00161 class KCModuleContainerPrivate;
00162 KCModuleContainerPrivate *d;
00163
00164 };
00165
00181 #define KCMODULECONTAINER( modules, factoryName ) \
00182 extern "C" \
00183 { \
00184 KCModule *create_## factoryName(QWidget *parent, const char *name) \
00185 { \
00186 return new KCModuleContainer( parent, name, QString( modules ) ); \
00187 } \
00188 \
00189 bool test_## factoryName() \
00190 { \
00191 QStringList modList = QStringList::split( ",", QString(modules).remove( " " )); \
00192 for ( QStringList::Iterator it = modList.begin(); it != modList.end(); ++it ) \
00193 if ( KCModuleLoader::testModule( *it ) ) \
00194 return true; \
00195 return false; \
00196 } \
00197 }
00198
00199 #endif // KCMODULECONTAINER_H
00200
This file is part of the documentation for kutils Library Version 3.4.3.