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)