This section discusses several types of output records, including two standard classes of output records and the displayed output record protocol. [annotate]
The standard instantiable class provided by CLIM to store a relatively short sequence of output records; a subclass of output-record. The insertion and retrieval complexity of this class is O(n). Most of the formatted output facilities (such as formatting-table) create output records that are a subclass of standard-sequence-output-record. [annotate] |
The standard instantiable class provided by CLIM to store longer sequences of output records. Typically, the child records of a tree output record will be maintained in some sort of sorted order, such as a lexicographic ordering on the x and y coordinates of the children. The insertion and retrieval complexity of this class is O(log n). [annotate] |
Graphics displayed output records are used to record the output produced by the graphics functions, such as draw-line*. Each graphics displayed output record describes the output produced by a call to one of the graphics functions. [annotate]
The exact contents of graphics displayed output records is unspecified, but they must store sufficient information to be able to exactly redraw the original output at replay time. The minimum information that must be captured for all graphics displayed output records is as follows: [annotate]
The protocol class that corresponds to output records for the graphics functions, such as draw-line*. This is a subclass of displayed-output-record. If you want to create a new class that behaves like a graphics displayed output record, it should be a subclass of graphics-displayed-output-record. All instantiable subclasses of graphics-displayed-output-record must obey the graphics displayed output record protocol. [annotate] |
Returns true if object is a graphics displayed output record, otherwise returns false. [annotate] |
Text displayed output records are used to record the textual output produced by such functions as stream-write-char and stream-write-string. Each text displayed output record corresponds to no more than one line of textual output (that is, line breaks caused by terpri and fresh-line create a new text output record, as do certain other stream operations described below). [annotate]
The exact contents of text displayed output records is unspecified, but they must store sufficient information to be able to exactly redraw the original output at replay time. The minimum information that must be captured for all text displayed output records is as follows: [annotate]
The protocol class that corresponds to text displayed output records. This is a subclass of displayed-output-record. If you want to create a new class that behaves like a text displayed output record, it should be a subclass of text-displayed-output-record. All instantiable subclasses of text-displayed-output-record must obey the text displayed output record protocol. [annotate] |
Returns true if object is a text displayed output record, otherwise returns false. [annotate] The following two generic functions comprise the text displayed output record protocol. [annotate] |
add-character-output-to-text-record | text-record character text-style width height baseline | [Generic Function] |
Adds the character character to the text displayed output record text-record in the text style text-style. width and height are the width and height of the character in device units, and are used to compute the bounding rectangle for the text record. baseline is the new baseline for characters in the output record. [annotate] Note: Measuring the total width character at a time like this looks like it would run into difficulties with ligatures in the underlying font system. [edit]-- Matt Seddon 2022-10-24 11:04Z |
add-string-output-to-text-record | text-record string start end text-style width height baseline | [Generic Function] |
Adds the string string to the text displayed output record text-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 character in device units, and are used to compute the bounding rectangle for the text record. baseline is the new baseline for characters in the output record. [annotate] |
Returns the string contained by the text displayed output record text-record. This function returns objects that reveal CLIM's internal state; do not modify those objects. [annotate] Note: SURROUNDING-OUTPUT-WITH-BORDER :SHAPE :UNDERLINE requires an ability to get
a baseline position, which is absent in the text output record protocol. [edit]-- Alexey Dejneka 2002-11-21 04:17Z |
Top-level output records are similar to ordinary output records, except that they must maintain additional state, such as the information required to display scroll bars. [annotate]
This class is mixed into some other output record class to produce a new class that is suitable for use as a a top-level output history. This class is not intended to be instantiated. [annotate] When the bounding rectangle of an member of this class is updated, CLIM implementations must update any window decorations (such as scroll bars) associated with the stream with which the output record history is associated. [annotate] |
The standard instantiable class provided by CLIM to use as the top-level output history. This will typically be a subclass of both standard-tree-output-record and stream-output-history-mixin. [annotate] |
Another instantiable class provided by CLIM to use for top-level output records that have only a small number of children. This will typically be a subclass of both standard-sequence-output-record and stream-output-history-mixin. [annotate] |