Page 147 Table of Contents Index Page 149
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

offset [Generic Function]
Maps over all of the children of the output record record that overlap the region region, calling
function on each one. function is a function of one argument, the record overlapping the region;
it has dynamic extent.

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

16.2.3 Output Record Change Notification Protocol

The following functions are called by programmers and by CLIM itself in order to notify a parent
output record when the bounding rectangle of one of its child output record changes.

=> recompute-extent-for-new-child record child [Generic Function]
This function is called whenever a new child is added to an output record. Its contract is to
update the bounding rectangle of the output record record to be large enough to completely
contain the new child output record child. The parent of record must be notified by calling
recompute-extent-for-changed-child.

add-output-record is required to call recompute-extent-for-new-child.

=> recompute-extent-for-changed-child record child old-min-x old-min-y old-max-x old-max-y
[Generic Function]
This function is called whenever the bounding rectangle of one of the childs of a record has been
changed. Its contract is to update the bounding rectangle of the output record record to be
large enough to completely contain the new bounding rectangle of the child output record child.
All of the ancestors of record must be notified by recursively calling recompute-extent-for-
changed-child
.

Whenever the bounding rectangle of an output record is changed or delete-output-record
is called, recompute-extent-for-changed-child must be called to inform the parent of the
record that a change has taken place.

=> tree-recompute-extent record [Generic Function]
This function is called whenever the bounding rectangles of a number of children of a record have
been changed, such as happens during table and graph formatting. Its contract is to compute
the bounding rectangle large enough to contain all of the children of the output record record,
adjust the bounding rectangle of the output record record accordingly, and then call recompute-
extent-for-changed-child
on record.


Page 147 Table of Contents Index Page 149
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