1 #ifndef __kparts__genericfactory_h__
2 #define __kparts__genericfactory_h__
4 #include <kparts/factory.h>
5 #include <kparts/part.h>
6 #include <kgenericfactory.h>
7 #include <kaboutdata.h>
23 kdWarning() <<
"KParts::GenericFactory instantiated more than once!" <<
endl;
26 virtual ~GenericFactoryBase()
44 virtual void virtual_hook(
int id,
void *data )
46 if (
id != VIRTUAL_QUERY_INSTANCE_PARAMS ) {
51 QueryInstanceParams *params =
reinterpret_cast<QueryInstanceParams *
>( data );
56 static GenericFactoryBase<T> *s_self;
101 TQObject *parent,
const char *name,
102 const char *className,
103 const TQStringList &args )
112 if ( part && !qstrcmp( className,
"KParts::ReadOnlyPart" ) )
122 template <
class T1,
class T2>
123 class GenericFactory<
KTypeList<T1, T2> > :
public GenericFactoryBase<T1>
129 TQObject *parent,
const char *name,
130 const char *className,
131 const TQStringList &args )
133 TQObject *
object = KDEPrivate::MultiFactory< KTypeList<T1, T2> >
::create( parentWidget,
142 if ( part && !qstrcmp( className,
"KParts::ReadOnlyPart" ) )
156 GenericFactoryBase<T> *GenericFactoryBase<T>::s_self = 0;
162 KInstance *GenericFactoryBase<T>::s_instance = 0;
168 KAboutData *GenericFactoryBase<T>::s_aboutData = 0;
174 KInstance *GenericFactoryBase<T>::instance()
179 s_instance = s_self->createInstance();
181 s_instance =
new KInstance( aboutData() );
190 KAboutData *GenericFactoryBase<T>::aboutData()
193 s_aboutData = T::createAboutData();