CLIM mail archive

[Prev][Next][Index][Thread]

keystroke accelerators



    Date: Thu, 12 Dec 1991 06:22 EST
    From:     Rainer Koenig <rkoenig@gate.fzi.de>


    I want to use the keystroke accelerator option of
    define-application-command.

    Therefore I do the following:

    (define-application-command (com-my-command :menu "My Command"
						:name "My Command"
						:keystroke #\c-d)
       ()
       (my-body))

    When I now use CTRL-d in my application it beeps, but the body is not evaluated

    Any hints?

If your application frame has any pane of type :INTERACTOR, CLIM's
default behavior is for the command reader *not* to use keystroke
accelerators.  This is because keystroke accelerators can interact with
command lines in unpredictable ways.  For example, suppose that you had
chosen #\D as the accelerator; then the user would not be able to type
any command line starting with the letter D.

What you need to do is provide a method for READ-FRAME-COMMAND for your
application frame as follows:

(defmethod read-frame-command ((frame <your-frame>) &key (stream *query-io*))
  (read-command (frame-command-table frame) :stream stream :use-keystrokes t)) 

After doing that, everything should just work.

0,,


Main Index | Thread Index