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  chil-
       dren 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 itera-
              tor to point to a particular child Command; it ini-
              tializes 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(Iterator&)
              Operations that modify the MacroCmd's list of chil-
              dren. Append and Prepend add up to four Commands to
              the end and the  beginning  of  the  list,  respec-
              tively.  InsertAfter and InsertBefore insert a Com-
              mand 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 explic-
              itly 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, respec-
              tively.


SEE ALSO

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































Man(1) output converted with man2html