Page 154 Table of Contents Index Page 156
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

Adds the string string to the output recording stream stream's text output record in the text
style
text-style. start and end are integers that specify the substring within string to add to
the text output record. width and height are the width and height of the string in device units.
baseline is the new baseline for the stream. stream-add-string-output must be implemented
by calling add-string-output-to-text-record.

stream-write-string on an output recording stream will call stream-add-string-output
when stream-recording-p is true.

16.4.4 Output Recording Utilities

CLIM provides several helper macros to control the output recording facility.

=> with-output-recording-options (stream &key record draw) &body body [Macro]
Enables or disables output recording and/or drawing on the output recording stream designated
by stream, within the extent of body.

The stream argument is not evaluated, and must be a symbol that is bound to an output recording
stream. If stream is t, *standard-output* is used. body may have zero or more declarations as
its first forms.

with-output-recording-options must be implemented by expanding into a call to invoke-
with-output-recording-options
, supplying a function that executes body as the continuation
argument to invoke-with-output-recording-options. The exact behavior of this macro is
described under invoke-with-output-recording-options.

=> invoke-with-output-recording-options stream continuation record draw [Generic Function]
Enables or disables output recording and/or drawing on the output recording stream stream, and
calls the function continuation with the new output recording options in effect. continuation is
a function of one argument, the stream; it has dynamic extent.

If draw is false, output to the stream is not drawn on the viewport, but recording proceeds
according to record; if draw is true, the output is drawn. If record is nil, output recording is
disabled, but output otherwise proceeds according to draw; if draw is true, output recording is
enabled.

All output recording streams must implement a method for invoke-with-output-recording-
options
.

=> with-new-output-record (stream &optional record-type record &rest init-args) &body body
[Macro]
Creates a new output record of type record-type (which defaults to standard-sequence-output-
record
) and then captures the output of body into the new output record, and inserts the
new record into the current "open" output record associated with the output recording stream


Page 154 Table of Contents Index Page 156
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