Page 295 | Table of Contents | Index | Page 297 |
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 |
Major issue: RWK has a reasonable proposal for breaking down command loops into their
component pieces. It should be integrated here. | SWM
All classes that inherit from application-frame must inherit or implement methods for all of
the following functions.
=> run-frame-top-level frame [Generic Function]
Runs the top-level function for the frame frame. The default method on application-frame
simply invokes the top-level function for the frame (which defaults to default-frame-top-
level).
=> run-frame-top-level (frame application-frame) [:Around Method]
The :around method of run-frame-top-level on the application-frame class is responsible
for establish the initial dynamic bindings for the application, including (but not limited to)
binding *application-frame* to frame, binding *input-context* to nil, resetting the de-
limiter and activation gestures, and binding *input-wait-test*, *input-wait-handler*, and
*pointer-button-press-handler* to nil.
=> default-frame-top-level frame &key command-parser command-unparser partial-command-
parser prompt [Generic Function]
The default top-level function for application frames. This function implements a "read-eval-
print" loop that displays a prompt, calls read-frame-command, then calls execute-frame-
command, and finally redisplays all of the panes that need to be redisplayed.
default-frame-top-level will also establish a simple restart for abort, and bind the standard
stream variables as follows. *standard-input* will be bound to the value returned by frame-
standard-input. *standard-output* will be bound to the value returned by frame-standard-
output. *query-io* will be bound to the value returned by frame-query-io. *error-output*
will be bound to the value returned by frame-error-output. It is unspecified what *terminal-
io*, *debug-io*, and *trace-output* will be bound to.
prompt is either a string to use as the prompt (defaulting to "Command: "), or a function of
two arguments, a stream and the frame.
command-parser, command-unparser, and partial-command-parser are the same as for read-
command. command-parser defaults to command-line-command-parser if there is an inter-
actor, otherwise it defaults to menu-only-command-parser. command-unparser defaults to
command-line-command-unparser. partial-command-parser defaults to command-line-read-
remaining-arguments-for-partial-command if there is an interactor, otherwise it defaults to
menu-only-read-remaining-arguments-for-partial-command. default-frame-top-level
binds *command-parser*, *command-unparser*, and *partial-command-parser* to the values
of command-parser, command-unparser, and partial-command-parser.
Page 295 | Table of Contents | Index | Page 297 |
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 |