Next: Standard Drei Variants, Previous: Drei Concepts, Up: Drei
Class precedence list:
drei, standard-object, slot-object, t
Slots:
%view
— initargs::view
The CLIM view that will be used whenever this Drei is being displayed. During redisplay, the
stream-default-view
of the output stream will be temporarily bound to this value.%kill-ring
— initargs::kill-ring
The kill ring object associated with the Drei instance.
%previous-command
The previous CLIM command executed by this Drei instance. May be NIL if no command has been executed.
%point-cursor
— initargs::point-cursor
The cursor object associated with point. This is guaranteed to be displayed on top of all other cursors.
%cursors
A list of which cursors are associated with the Drei instance. During redisplay,
display-drei-cursor
is called on each element of this list.%editor-pane
— initargs::editor-pane
The stream or pane that the Drei instance will perform output to.
%active
— initargs::active
Whether or not the Drei instance is "active". The precise definition of what this means depends on the concrete Drei implementation.
%minibuffer
— initargs::minibuffer
The minibuffer pane (or null) associated with the Drei instance. This may be NIL.
%command-table
— initargs::command-table
The command table used for looking up commands for the Drei instance. Has a sensible default, don't override it unless you know what you are doing.
The abstract Drei class that maintains standard Drei editor state. It should not be directly instantiated, a subclass implementing specific behavior (a Drei variant) should be used instead.
drei
Initarg: :editable-pWhether or not the Drei instance will be editable. If
NIL
, the buffer will be set to read-only (this also affects programmatic access). The default isT
.
drei
Initarg: :single-lineIf
T
, the buffer created for the Drei instance will be single line, and a condition of typebuffer-single-line
will be signalled if an attempt is made to insert a newline character.
Evaluate
body
while handling Drei user notification signals. The handling consists of displaying their meaning to the user in the minibuffer. This is the macro that ensures conditions such as motion-before-end does not land the user in the debugger.
Evaluate
body
with a set of Drei special variables (*current-buffer*
,*current-window*
,*current-mark*
,*current-point*
,*current-syntax*
,*kill-ring*
,*minibuffer*
,*command-parser*
,*partial-command-parser*
,*previous-command*
,*extended-command-prompt*
) bound to their proper values, taken fromdrei-instance
. The keyword arguments can be used to provide forms that will be used to obtain values for the respective special variables, instead of finding their value indrei-instance
. This macro binds all of the usual Drei special variables, but also some CLIM special variables needed for ESA-style command parsing.
Provide various Drei maintenance services around the evaluation of
body
. This macro provides a convenient way to perform some operations on a Drei, and make sure that they are properly reflected in the undo tree, that the Drei is redisplayed, the syntax updated, etc. Exactly what is done can be controlled via the keyword arguments. Note that ifwith-undo
is false, the *entire* undo history will be cleared afterbody
has been evaluated. This macro expands into a call toinvoke-performing-drei-operations
.
Invoke
continuation
, setting up and performing the operations specified by the keyword arguments for the given Drei instance.
Modidfy
drei
and the environment so that calls toaccept
can be done to arbitrary streams from withinbody
. Or, at least, make sure the Drei instance will not be a problem. When Drei calls a command, it will be wrapped in this macro, so it should be safe to useaccept
within Drei commands. This macro expands into a call toinvoke-accepting-from-user
.
Set up
drei
and the environment so that calls toaccept
will behave properly. Then callcontinuation
.
Execute
command
fordrei
. This is the standard function for executing Drei commands-
it will take care of reporting to the user if a condition is signalled, updating the syntax, setting theprevious-command
ofdrei
and recording the operations performed bycommand
for undo.