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

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

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.