MacroCmd(3)
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.