Page 132 Table of Contents Index Page 134
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 15. EXTENDED STREAM OUTPUT

Returns true if object is a CLIM extended output stream, otherwise returns false.

=> :foreground [Init Arg]
=> :background [Init Arg]
=> :default-text-style [Init Arg]
=> :vertical-spacing [Init Arg]
=> :text-margin [Init Arg]
=> :end-of-line-action [Init Arg]
=> :end-of-page-action [Init Arg]
=> :default-view [Init Arg]
All subclasses of extended-output-stream must handle these initargs, which are used to specify,
respectively, the medium foreground and background, default text style, vertical spacing, default
text margin, end of line and end of page actions, and the default view for the stream.

=> standard-extended-output-stream [Class]
This class provides an implementation of the CLIM extended output stream protocol, based on
the CLIM output kernel.

Members of this class are mutable.

15.3 The Text Cursor

In the days when display devices displayed only two dimensional arrays of fixed width characters,
the text cursor was a simple thing. A discrete position was selected in integer character units,
and a character could go there and noplace else. Even for variable width fonts, simply addressing
a character by the pixel position of one of its corners is sufficient. However, variable height fonts
with variable baselines on pixel-addressable displays upset this simple model. The "logical"
vertical reference point is the baseline, as it is in typesetting. In typesetting, however, an entire
line of text is created with baselines aligned and padded to the maximum ascent and descent,
then the entire line is put below the previous line.

It is clearly desirable to have the characters on a line aligned with their baselines, but when
the line on the display is formed piece by piece, it is impossible to pick in advance the proper
baseline. The solution CLIM adopts is to choose a baseline, but not commit to it.

The CLIM model says that text has at least 6 properties. With a reference point of (0;0) at
the upper left of the text, it has a bounding box consisting of ascent, descent, left kerning, right
extension, and a displacement to the next reference point in both x and y. CLIM determines
the position of the reference point and draws the text relative to that, and then the cursor
position is adjusted by the displacement. In this way, text has width and height, but the x and
y displacements need not equal the width and height.

CLIM adopts the following approach to the actual rendering of a glyph. Textual output using
the stream functions (not the graphics functions) maintains text on a "line". Note that a line
is not an output record, but is rather a collection of "text so far", a top (which is positioned at


Page 132 Table of Contents Index Page 134
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