The define-editor-command macro, automatically generated by the define-application-frame code previously, is used to define a command for the editor application. It is just like define-command , except that you don't need to specify editor-command-table as the command table in which to define the command. define-editor-command will automatically use editor-command-table .
Through the appropriate use of the options to define-editor-command (see define-command for details), you can provide the command via any number of the previously mentioned interaction styles. For example, you could install the command in the editor application's menu, as well as specifying a single keystroke command accelerator character for it.
The following example defines a command whose command name is
command will appear in the application's command menu as
. (The command-menu name is derived from the command name in the same way as the command-line name.) The single keystroke
is also defined to invoke the command.
(com-save-file :menu t
:keystroke #\c-\s) () ...)
Here, a command line name of
is associated with the
command. The user can then type
to the application's interaction pane to invoke the command.
(com-save-file :name "Save File") () ...)
Since the command processor works by establishing an input context of presentation type command and executing the resulting input, any displayed presentation can invoke a command, so long as there is a translator defined that translates from the presentation type of the presentation to the presentation type command . In this way, you can associate a command with a pointer gesture when it is applied to a displayed presentation. (Chapter 8, Presentation Translators in CLIM for details.)
Arguments: name (from-type command-name command-table
) :tester :documentation :pointer-documentation (:menu
) :priority (:echo
Summary: Defines a presentation translator that translates a displayed presentation into a command.
Common Lisp Interface Manager 2.0 User's Guide - 20 Sep 2011