Provided by: ivtools-dev_2.0.11d.a1-3build1_amd64 bug

NAME

       MacroCmd - a command that composes other commands

SYNOPSIS

       #include <Unidraw/Commands/macro.h>

DESCRIPTION

       MacroCmd  composes  other  commands in a linear fashion.  Executing a MacroCmd is equivalent to executing
       its children in preorder.

PUBLIC OPERATIONS

       MacroCmd(ControlInfo*)
       MacroCmd(
           Editor* = nil,
           Command* first = nil, Command* second = nil,
           Command* third = nil, Command* fourth = nil
       )
              Construct a MacroCmd instance, optionally supplying up to four of its child commands.

       virtual void Execute()
       virtual void Unexecute()
       virtual boolean Reversible()
              Execute simply executes each child, from first to last.  Unexecute calls Unexecute on each  child,
              from last to first.  The MacroCmd is reversible if any of its children are.

       virtual void SetEditor(Editor*)
              SetEditor calls SetEditor on each child with the given argument.

       Command* GetCommand(Iterator)
       void SetCommand(Command*, Iterator&)
              GetCommand  returns  the  child  Command  to which an iterator points.  SetCommand initializes the
              iterator to point to a particular child Command; it initializes the iterator to  point  to  a  nil
              instance if the given Command is not a child.

       void Append(
           Command*, Command* = nil, Command* = nil, Command* = nil
       )

       void Prepend(
           Command*, Command* = nil, Command* = nil, Command* = nil
       )

       void InsertAfter(Iterator, Command*)
       void InsertBefore(Iterator, Command*)
       void Remove(Command*)
       void Remove(Iterator&)
              Operations that modify the MacroCmd's list of children. Append and Prepend add up to four Commands
              to  the  end  and  the beginning of the list, respectively.  InsertAfter and InsertBefore insert a
              Command after and before the Command  pointed  to  by  the  iterator,  respectively.   The  Remove
              operations  remove a child from the list without deleting it.  You can remove a child by referring
              to it explicitly or by specifying an iterator.  If an iterator is supplied, the  Remove  operation
              should advance it to point to the following child as a side effect.

PROTECTED OPERATIONS

       Command* Cmd(UList*)
       UList* Elem(Iterator)
              Convenience  functions  for  extracting  a  Command from a UList element a UList from an iterator,
              respectively.

SEE ALSO

       Command(3U), Iterator(3U), UList(3U)

Unidraw                                          24 January 1991                                    MacroCmd(3U)