The purpose of output recording is to capture the output done by an application onto a stream. The objects used to capture output are called output records and output record elements. The following classes and predicates correspond to the objects used in output recording.
output-record [Protocol Class]
Summary: The protocol class used to indicate that an object is an output record. A subclass of bounding-rectangle , output records obey the bounding rectangle protocol. If you want to create a new class that behaves like an output record, it should be a subclass of output-record . Subclasses of output-record must obey the output-record protocol.
All output records are mutable.
Summary: Returns t if object is an output record; otherwise, it returns nil .
displayed-output-record [Protocol Class]
Summary: The protocol class that is used to indicate that an object is a displayed output record, that is, an object that represents a visible piece of output on some output stream. This is a subclass of bounding-rectangle . If you want to create a new class that behaves like a displayed output record, it should be a subclass of displayed-output-record . Subclasses of displayed-output-record must obey the displayed output record protocol.
All displayed output records are mutable.
Summary: Returns t if object is a displayed output record; otherwise, it returns nil .
Summary: All subclasses of either output-record or displayed-output-record must handle these three initargs, which are used to specify, respectively, the x and y position of the output record, and the parent of the output record.
Summary: All subclasses of output-record must handle the :size initarg, which specifies how much room should be left for child output records (if, for example, the children are stored in a vector). :size may be ignored, provided that the resulting output record is able to store the specified number of child output records.
Common Lisp Interface Manager 2.0 User's Guide - 7 Aug 2017