16.1 Input Editing

16.1.1 Operators for Input Editing

interactive-stream-p [Generic Function]
Arguments:
object
Summary:
Returns t if object is an interactive stream, that is, a bidirectional stream intended for user interactions. Otherwise it returns nil. This is exactly the same function as in X3J13 Common Lisp, except that in CLIM it is a generic function.

The input editor is only fully implemented for interactive streams.

input-editing-stream [Protocol Class]
Summary:
The protocol class that corresponds to an input editing stream. If you want to create a new class that behaves like an input editing stream, it should be a subclass of input-editing-stream. Subclasses of input-editing-stream must obey the input editing stream protocol.

input-editing-stream-p [Function]
Arguments:
object
Summary:
Returns t if object is an input editing stream (that is, a stream of the sort created by a call to with-input-editing), otherwise returns nil.

standard-input-editing-stream [Class]
Summary:
The class that implements CLIM's standard input editor. This is the class of stream created by calling with-input-editing.

Members of this class are mutable.

with-input-editing [Macro]
Arguments:
(&optional stream&key input-sensitizer initial-contents)&body body
Summary:
Establishes a context in which the user can edit the input typed in on the interactive stream stream. body is then executed in this context, and the values returned by body are returned as the values of with-input-editing. body may have zero or more declarations as its first forms.

The stream argument is not evaluated, and must be a symbol that is bound to an input stream. If stream is t (the default), *query-io* is used. If stream is a stream that is not an interactive stream, then with-input-editing is equivalent to progn.

input-sensitizer, if supplied, is a function of two arguments, a stream and a continuation function; the function has dynamic extent. The continuation, supplied by CLIM, is responsible for displaying output corresponding to the user's input on the stream. The input-sensitizer function will typically call with-output-as-presentation in order to make the output produced by the continuation sensitive.

If initial-contents is supplied, it must be either a string or a list of two elements, an object and a presentation type. If it is a string, it will be inserted into the input

buffer using replace-input. If it is a list, the printed representation of the object will be inserted into the input buffer using presentation-replace-input.

with-input-editor-typeout [Macro]
Arguments:
(&optional stream)&body body
Summary:
Establishes a context inside of with-input-editing in which output can be done by body to the input editing stream stream. with-input-editor-typeout should call fresh-line before and after evaluating the body. body may have zero or more declarations as its first forms.

The stream argument is not evaluated, and must be a symbol that is bound to a stream. If stream is t (the default), *query-io* is used. If stream is a stream that is not an input editing stream, then with-input-editor-typeout is equivalent to calling fresh-line, evaluating the body, and then calling fresh-line again.


CLIM 2.0 User's Guide - OCT 1998

Generated with Harlequin WebMaker