00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef TDERESOURCES_FACTORY_H
00025 #define TDERESOURCES_FACTORY_H
00026
00027 #include <tqdict.h>
00028 #include <tqstring.h>
00029
00030 #include <tdeconfig.h>
00031 #include <klibloader.h>
00032 #include <ktrader.h>
00033
00034 #include "resource.h"
00035 #include "configwidget.h"
00036
00037 namespace KRES {
00038
00062 class TDERESOURCES_EXPORT Factory
00063 {
00064 public:
00065
00069 static Factory *self( const TQString& resourceFamily );
00070
00071 ~Factory();
00072
00080 ConfigWidget *configWidget( const TQString& type, TQWidget *parent = 0 );
00081
00090 Resource *resource( const TQString& type, const TDEConfig *config );
00091
00095 TQStringList typeNames() const;
00096
00100 TQString typeName( const TQString &type ) const;
00101
00105 TQString typeDescription( const TQString &type ) const;
00106
00107 protected:
00108 Factory( const TQString& resourceFamily );
00109
00110 private:
00111 static TQDict<Factory> *mSelves;
00112
00113 TQString mResourceFamily;
00114 TQMap<TQString, KService::Ptr> mTypeMap;
00115 };
00116
00117 }
00118 #endif