racket/collects/tests/gracket/showkey.rktl
Eli Barzilay fcedc30ee4 Rename "collects/tests/mred" -> ".../gracket".
Some additional mred-related tweaks.
2010-05-17 01:44:27 -04:00

82 lines
2.8 KiB
Racket

(require mzlib/etc
mzlib/class100)
(let ()
(define iter 0)
(define c%
(class100-asi canvas%
(override
[on-event
(lambda (ev)
(printf "~a~a MOUSE ~a (~a,~a)\n mods:~a~a~a~a~a\n buttons:~a~a~a~a~a~a~a~n"
(es-check)
iter
(send ev get-event-type)
(send ev get-x)
(send ev get-y)
(if (send ev get-meta-down) " META" "")
(if (send ev get-control-down) " CTL" "")
(if (send ev get-alt-down) " ALT" "")
(if (send ev get-shift-down) " SHIFT" "")
(if (send ev get-caps-down) " CAPS" "")
(if (send ev get-left-down) " LEFT" "")
(if (send ev get-middle-down) " MIDDLE" "")
(if (send ev get-right-down) " RIGHT" "")
(if (send ev dragging?)
" dragging"
"")
(if (send ev moving?)
" moving"
"")
(if (send ev entering?)
" entering"
"")
(if (send ev leaving?)
" leaving"
"")))]
[on-char
(lambda (ev)
(set! iter (add1 iter))
(printf "~a~a KEY: ~a\n rel-code: ~a\n other-codes: ~a\n mods:~a~a~a~a~a~n"
(es-check)
iter
(let ([v (send ev get-key-code)])
(if (symbol? v)
v
(format "~s = ASCII ~a" (string v) (char->integer v))))
(let ([v (send ev get-key-release-code)])
(if (symbol? v)
v
(format "~s = ASCII ~a" (string v) (char->integer v))))
(let ([vs (list (send ev get-other-shift-key-code)
(send ev get-other-altgr-key-code)
(send ev get-other-shift-altgr-key-code)
(send ev get-other-caps-key-code))])
(map (lambda (v)
(and v
(if (symbol? v)
v
(format "~s = ASCII ~a" (string v) (char->integer v)))))
vs))
(if (send ev get-meta-down) " META" "")
(if (send ev get-control-down) " CTL" "")
(if (send ev get-alt-down) " ALT" "")
(if (send ev get-shift-down) " SHIFT" "")
(if (send ev get-caps-down) " CAPS" "")))])))
(define f (make-object (class100 frame% ()
(inherit accept-drop-files)
(override
[on-drop-file (lambda (file)
(printf "Dropped: ~a~n" file))])
(sequence
(super-init "tests" #f 100 100)
(accept-drop-files #t)))))
(define c (make-object c% f))
(define (es-check) (if (eq? (send f get-eventspace) (current-eventspace))
""
">>WRONG EVENTSPACE<<\n"))
(send c focus)
(send f show #t))