//Auto-generated by kalyptus. DO NOT EDIT.
package org.kde.koala;

import org.kde.qt.Qt;
import org.kde.qt.QMetaObject;
import org.kde.qt.QtSupport;
import org.kde.qt.QObject;
import org.kde.qt.QObject;

/**

 If you develop a library that is to be loaded dynamically at runtime, then
 you should return a pointer to your factory. The K_EXPORT_COMPONENT_FACTORY
 macro is provided for this purpose:
 <pre>
   K_EXPORT_COMPONENT_FACTORY( libkspread, KSpreadFactory )
 </pre>
 The first macro argument is the name of your library, the second specifies the name
 of your factory.
 NOTE: you probably want to use KGenericFactory<PluginClassName>
 instead of writing your own factory.
 In the constructor of your factory you should create an instance of KInstance
 like this:
 <pre>
     s_global = new KInstance( "kspread" );
 </pre>
 This KInstance is comparable to KGlobal used by normal applications.
 It allows you to find resource files (images, XML, sound etc.) belonging
 to the library.
 If you want to load a library, use KLibLoader. You can query KLibLoader
 directly for a pointer to the libraries factory by using the KLibLoader.factory()
 function.
 The KLibFactory is used to create the components, the library has to offer.
 The factory of KSpread for example will create instances of KSpreadDoc,
 while the Konqueror factory will create KonqView widgets.
 All objects created by the factory must be derived from QObject, since QObject
 offers type safe casting.
 KLibFactory is an abstract class. Reimplement the
 createObject() method to give it functionality.
 See {@link KLibFactorySignals} for signals emitted by KLibFactory
		@author Torben Weis <weis@kde.org>
 
		@short    If you develop a library that is to be loaded dynamically at runtime, then  you should return a pointer to your factory.

*/
public class KLibFactory extends QObject  {
	protected KLibFactory(Class dummy){super((Class) null);}
	public native QMetaObject metaObject();
	public native String className();
	/**	
		 Create a new factory.
			@param parent the parent of the QObject, 0 for no parent
			@param name the name of the QObject, 0 for no name
		     		@short    Create a new factory.
	*/
	/**	
		 Creates a new object. The returned object has to be derived from
		 the requested classname.
			 It is valid behavior to create different kinds of objects
		 depending on the requested <code>classname.</code> For example a koffice
		 library may usually return a pointer to KoDocument.  But
		 if asked for a "QWidget", it could create a wrapper widget,
		 that encapsulates the Koffice specific features.
			 create() automatically emits a signal objectCreated to tell
		 the library about its newly created object.  This is very
		 important for reference counting, and allows unloading the
		 library automatically once all its objects have been destroyed.
			@param parent the parent of the QObject, 0 for no parent
			@param name the name of the QObject, 0 for no name
			@param classname the name of the class
			@param args a list of arguments
		     		@short    Creates a new object.
	*/
	public native QObject create(QObject parent, String name, String classname, String[] args);
	public native QObject create(QObject parent, String name, String classname);
	public native QObject create(QObject parent, String name);
	public native QObject create(QObject parent);
	public native QObject create();
}
