Page 183 | Table of Contents | Index | Page 185 |
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 |
Implementation note: redisplay-output-record is implemented by first binding stream-
redisplaying-p of the stream to true, then creating the new output records by invoking
compute-new-output-records. Once the new output records have been computed, compute-
difference-set is called to compute the difference set, which is then passed to note-child-
output-record-changed.
The other optional arguments can be used to specify where on the stream the output record
should be redisplayed. x and y represent where the cursor should be, relative to (output-record-
parent record), before we start redisplaying record. parent-x and parent-y can be supplied to
say: do the output as if the parent started at positions parent-x and parent-y (which are in
absolute coordinates). The default values for x and y are (output-record-start-position
record). The default values for parent-x and parent-y are
(convert-from-relative-to-absolute-coordinates stream (output-record-parent record))record will usually be an output record created by updating-output. If it is not, then redisplay-
Major issue: While the description of the API here is accurate, the description of the protocol
is a disaster. This is no surprise, since the protocol for increment redisplay is itself a disaster.
| SWM
=> updating-output-record [Protocol Class]
The protocol class corresponding to records that support incremental redisplay; a subclass of
output-record. If you want to create a new class that behaves like an updating output record,
it should be a subclass of updating-output-record. Subclasses of updating-output-record
must obey the updating output record protocol.
=> updating-output-record-p object [Function]
Returns true if object is an updating output record, otherwise returns false.
Page 183 | Table of Contents | Index | Page 185 |
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 |