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

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

/**

 A Macro Command is a command that holds several sub-commands.
 It will appear as one to the user and in the command history,
 but it can use the implementation of multiple commands internally.
 		@short    A Macro Command is a command that holds several sub-commands.

*/
public class KMacroCommand extends KNamedCommand  {
	protected KMacroCommand(Class dummy){super((Class) null);}
	/**	
		 Creates a macro command. You will then need to call addCommand
		 for each subcommand to be added to this macro command.
			@param name the name of this command, translated, since it will appear
		 in the menus.
		     		@short    Creates a macro command.
	*/
	public KMacroCommand(String name) {
		super((Class) null);
		newKMacroCommand(name);
	}
	private native void newKMacroCommand(String name);
	/**	
		 Appends a command to this macro command.
		 The ownership is transfered to the macro command.
		     		@short    Appends a command to this macro command.
	*/
	public native void addCommand(KCommand command);
	/**	
		 Executes this command, i.e. execute all the sub-commands
		 in the order in which they were added.
		     		@short    Executes this command, i.
	*/
	public native void execute();
	/**	
		 Undoes the execution of this command, i.e. #unexecute all the sub-commands
		 in the _reverse_ order to the one in which they were added.
		     		@short    Undoes the execution of this command, i.
	*/
	public native void unexecute();
	/** 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();
}
