Page 146 Table of Contents Index Page 148
Chapters
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
A, B, C, D, E



CHAPTER 16. OUTPUT RECORDING


16.2.2 The Output Record "Database" Protocol

All classes that are subclasses of output-record must implement methods for the following
generic functions.

=> output-record-children record [Generic Function]
Returns a sequence of all of the children of the output record record. It is unspecified whether
the sequence is a freshly created object or a "live" object representing the state of record.

=> add-output-record child record [Generic Function]
Adds the new output record child to the output record record. The bounding rectangle for record
(and all its ancestors) must be updated to account for the new child record.

The methods for the add-output-record will typically specialize only the record argument.

=> delete-output-record child record &optional (errorp t) [Generic Function]
Removes the output record child from the output record record. The bounding rectangle for
record (and all its ancestors) may be updated to account for the child having been removed,
although this is not mandatory.

If errorp is true (the default) and child is not contained within record, then an error is signalled.

The methods for the delete-output-record will typically specialize only the record argument.

=> clear-output-record record [Generic Function]
Removes all of the children from the output record record, and resets the bounding rectangle of
record to its initial state.

=> output-record-count record [Generic Function]
Returns the number of children contained within the output record record.

=> map-over-output-records-containing-position function record x y &optional x-offset y-
offset
[Generic Function]
Maps over all of the children of the output record record that contain the point at (x;y), calling
function on each one. function is a function of one argument, the record containing the point; it
has dynamic extent.

If there are multiple records that contain the point and that overlap each other, map-over-
output-records-containing-position
must hit the uppermost (most recently inserted) record
first and the bottommost (least recently inserted) record last. Otherwise, the order in which the
records are traversed is unspecified.

=> map-over-output-records-overlapping-region function record region &optional x-offset y-


Page 146 Table of Contents Index Page 148
Chapters
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
A, B, C, D, E