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

import org.kde.qt.Qt;
import org.kde.qt.QDomDocument;
import org.kde.qt.QMetaObject;
import org.kde.qt.QtSupport;
import org.kde.qt.QObject;
import org.kde.qt.QDomNode;
import org.kde.qt.QWidget;
import org.kde.qt.QDomElement;
import org.kde.qt.QObject;

/**

 KXMLGUIFactory, together with KXMLGUIClient objects, can be used to create
 a GUI of container widgets (like menus, toolbars, etc.) and container items
 (menu items, toolbar buttons, etc.) from an XML document and action objects.
 Each KXMLGUIClient represents a part of the GUI, composed from containers and
 actions. KXMLGUIFactory takes care of building (with the help of a KXMLGUIBuilder)
 and merging the GUI from an unlimited number of clients.
 Each client provides XML through a QDomDocument and actions through a
 KActionCollection . The XML document contains the rules for how to merge the
 GUI.
 KXMLGUIFactory processes the DOM tree provided by a client and plugs in the client's actions,
 according to the XML and the merging rules of previously inserted clients. Container widgets
 are built via a KXMLGUIBuilder , which has to be provided with the KXMLGUIFactory constructor.
  See {@link KXMLGUIFactorySignals} for signals emitted by KXMLGUIFactory
		@short    KXMLGUIFactory, together with KXMLGUIClient objects, can be used to create  a GUI of container widgets (like menus, toolbars, etc.

*/
public class KXMLGUIFactory extends QObject  {
	protected KXMLGUIFactory(Class dummy){super((Class) null);}
	public native QMetaObject metaObject();
	public native String className();
	/**	
		 Constructs a KXMLGUIFactory. The provided <code>builder</code> KXMLGUIBuilder will be called
		 for creating and removing container widgets, when clients are added/removed from the GUI.
			 Note that the ownership of the given KXMLGUIBuilder object won't be transferred to this
		 KXMLGUIFactory, so you have to take care of deleting it properly.
		   		@short    Constructs a KXMLGUIFactory.
	*/
	public KXMLGUIFactory(KXMLGUIBuilderInterface builder, QObject parent, String name) {
		super((Class) null);
		newKXMLGUIFactory(builder,parent,name);
	}
	private native void newKXMLGUIFactory(KXMLGUIBuilderInterface builder, QObject parent, String name);
	public KXMLGUIFactory(KXMLGUIBuilderInterface builder, QObject parent) {
		super((Class) null);
		newKXMLGUIFactory(builder,parent);
	}
	private native void newKXMLGUIFactory(KXMLGUIBuilderInterface builder, QObject parent);
	public KXMLGUIFactory(KXMLGUIBuilderInterface builder) {
		super((Class) null);
		newKXMLGUIFactory(builder);
	}
	private native void newKXMLGUIFactory(KXMLGUIBuilderInterface builder);
	/**	
		 Creates the GUI described by the QDomDocument of the client,
		 using the client's actions, and merges it with the previously
		 created GUI.
		 This also means that the order in which clients are added to the factory
		 is relevant; assuming that your application supports plugins, you should
		 first add your application to the factory and then the plugin, so that the
		 plugin's UI is merged into the UI of your application, and not the other
		 way round.
		   		@short    Creates the GUI described by the QDomDocument of the client,  using the client's actions, and merges it with the previously  created GUI.
	*/
	public native void addClient(KXMLGUIClientInterface client);
	/**	
		 Removes the GUI described by the client, by unplugging all
		 provided actions and removing all owned containers (and storing
		 container state information in the given client)
		   		@short    Removes the GUI described by the client, by unplugging all  provided actions and removing all owned containers (and storing  container state information in the given client)
	*/
	public native void removeClient(KXMLGUIClientInterface client);
	// void plugActionList(KXMLGUIClient* arg1,const QString& arg2,const QPtrList<KAction>& arg3); >>>> NOT CONVERTED
	public native void unplugActionList(KXMLGUIClientInterface client, String name);
	/**	
		 Returns a list of all clients currently added to this factory
		   		@short    Returns a list of all clients currently added to this factory
	*/
	// QPtrList<KXMLGUIClient> clients(); >>>> NOT CONVERTED
	/**	
		 Use this method to get access to a container widget with the name specified with <code>containerName</code>
		 and which is owned by the <code>client.</code> The container name is specified with a "name" attribute in the
		 XML document.
			 This function is particularly useful for getting hold of a popupmenu defined in an XMLUI file.
		 For instance:
		 <pre>
		 QPopupMenu popup = (QPopupMenu)(factory().container("my_popup",this));
		 </pre>
		 where <code></code>"my_popup" is the name of the menu in the XMLUI file, and
		 <code></code>"this" is XMLGUIClient which owns the popupmenu (e.g. the mainwindow, or the part, or the plugin...)
			@param containerName Name of the container widget
			@param client Owner of the container widget
			@param useTagName Specifies whether to compare the specified name with the name attribute or
		        the tag name.
			 This method may return null if no container with the given name exists or is not owned by the client.
		   		@short    Use this method to get access to a container widget with the name specified with <code>containerName</code>  and which is owned by the <code>client.</code>
	*/
	public native QWidget container(String containerName, KXMLGUIClientInterface client, boolean useTagName);
	public native QWidget container(String containerName, KXMLGUIClientInterface client);
	// QPtrList<QWidget> containers(const QString& arg1); >>>> NOT CONVERTED
	/**	
		 Use this method to free all memory allocated by the KXMLGUIFactory. This deletes the internal node
		 tree and therefore resets the internal state of the class. Please note that the actual GUI is
		 NOT touched at all, meaning no containers are deleted nor any actions unplugged. That is
		 something you have to do on your own. So use this method only if you know what you are doing :-)
			 (also note that this will call KXMLGUIClient.setFactory( null ) for all inserted clients)
		   		@short    Use this method to free all memory allocated by the KXMLGUIFactory.
	*/
	public native void reset();
	/**	
		 Use this method to free all memory allocated by the KXMLGUIFactory for a specific container,
		 including all child containers and actions. This deletes the internal node subtree for the
		 specified container. The actual GUI is not touched, no containers are deleted or any actions
		 unplugged. Use this method only if you know what you are doing :-)
			 (also note that this will call KXMLGUIClient.setFactory( null ) for all clients of the
		 container)
		   		@short    Use this method to free all memory allocated by the KXMLGUIFactory for a specific container,  including all child containers and actions.
	*/
	public native void resetContainer(String containerName, boolean useTagName);
	public native void resetContainer(String containerName);
	/**	
		 Show a standard configure shortcut for every action in this factory.
			 This slot can be connected dirrectly to the action to configure shortcuts. This is very simple to
		 do that by adding a single line
		 <pre>
		 KStdAction.keyBindings( guiFactory(), SLOT("configureShortcuts()"), actionCollection() );
		 </pre>
			@param bAllowLetterShortcuts Set to false if unmodified alphanumeric
		      keys ('A', '1', etc.) are not permissible shortcuts.
			@param bSaveSettings if true, the settings will also be saved back to
		      the uirc file which they were intially read from.
				@short    Show a standard configure shortcut for every action in this factory.
	*/
	public native int configureShortcuts(boolean bAllowLetterShortcuts, boolean bSaveSettings);
	public native int configureShortcuts(boolean bAllowLetterShortcuts);
	public native int configureShortcuts();
	public static native String readConfigFile(String filename, boolean never_null, KInstanceInterface instance);
	public static native String readConfigFile(String filename, boolean never_null);
	public static native String readConfigFile(String filename, KInstanceInterface instance);
	public static native String readConfigFile(String filename);
	public static native boolean saveConfigFile(QDomDocument doc, String filename, KInstanceInterface instance);
	public static native boolean saveConfigFile(QDomDocument doc, String filename);
	public static native String documentToXML(QDomDocument doc);
	public static native String elementToXML(QDomElement elem);
	/**	
		 Removes all QDomComment objects from the specified node and all its children.
		   		@short    Removes all QDomComment objects from the specified node and all its children.
	*/
	public static native void removeDOMComments(QDomNode node);
	/**	
			 Find or create the ActionProperties element, used when saving custom action properties
		   		@short
	*/
	public static native QDomElement actionPropertiesElement(QDomDocument doc);
	/**	
			 Find or create the element for a given action, by name.
		 Used when saving custom action properties
		   		@short
	*/
	public static native QDomElement findActionByName(QDomElement elem, String sName, boolean create);
	/** Deletes the wrapped C++ instance */
	protected native void finalize() throws InternalError;
	/** Delete the wrapped C++ instance ahead of finalize() */
	public native void dispose();
	/** Has the wrapped C++ instance been deleted? */
	public native boolean isDisposed();
}
