[Openmcl-devel] Key Codes in OpenMCL

Brent Fulgham bfulg at pacbell.net
Sun Jan 14 07:55:28 UTC 2007


I'm attempting to port some code that made use of MCL's key handling  
logic:

(defmethod VIEW-KEY-EVENT-HANDLER ((Self Window) Key)
   (let ((Delta 0.01))
     (case Key
       (#\ForwardArrow (incf (cursor-x Self) Delta))
       (#\BackArrow (decf (cursor-x Self) Delta))
       (#\UpArrow (incf (cursor-y Self) Delta))
       (#\DownArrow (decf (cursor-y Self) Delta))
       (#\space ...
       (#\+
       (#\-
            ... etc ...
  )))

Many of the necessary key codes are already available:

? #\space
#\
? #\+
#\+
? #\newline
#\Newline
? #\linefeed
#\Newline
? #\return
#\Return

However, the arrow keys (and some function keys) are not defined:

? #\delete
#\Backspace
? #\clear
#\ESC#\f1
? #\uparrow

 > Error: Unknown character name - "uparrow" .
 > While executing: #<Anonymous Function #x81CFAF6>, in process  
listener(1).
 > Type :POP to abort, :R for a list of available restarts.
 > Type :? for other options.
1 > #\UpArrow

The only thing I can find in the source tree related to the cursor  
keys are some hemlock-specific binding functions:

hemlock/src/bindings.lisp:(bind-key "Previous Line" #k"uparrow")
hemlock/unused/keytrandefs.lisp:(define-keysym 65362 #\uparrow #\s- 
uparrow)

How can I create my own identifiers for characters?

Thanks,

-Brent





More information about the Openmcl-devel mailing list