RosettaCodeData/Task/Simulate-input-Keyboard/Racket/simulate-input-keyboard.rkt

25 lines
967 B
Racket

#lang racket/gui
(define frame (new frame%
(label "Example")
(width 300)
(height 300))) ; Defines an instance of a frame to put the canvas in
(define simulate-key-canvas%
(class canvas%
(define/public (simulate-key key)
(send this on-char key)) ; Creates a class that inherits from the standard canvas class, that can receive simulated key presses
(define/override (on-char key)
(displayln (send key get-key-code))) ; Changes the method that receives key presses to show some output
(super-new)))
(define canvas
(new simulate-key-canvas%
(parent frame))) ; Defines an instance of the newly created class
(send frame show #t) ; Shows the frame with a white canvas inside
(send canvas simulate-key (new key-event% (key-code #\k))) ; Sends the simulated key press (with a key-event% instance)
;outputs k