IN: game.input.demos.key-caps
CONSTANT: key-locations H{
- { key-escape { { 0 0 } { 10 10 } } }
-
- { key-f1 { { 20 0 } { 10 10 } } }
- { key-f2 { { 30 0 } { 10 10 } } }
- { key-f3 { { 40 0 } { 10 10 } } }
- { key-f4 { { 50 0 } { 10 10 } } }
-
- { key-f5 { { 65 0 } { 10 10 } } }
- { key-f6 { { 75 0 } { 10 10 } } }
- { key-f7 { { 85 0 } { 10 10 } } }
- { key-f8 { { 95 0 } { 10 10 } } }
-
- { key-f9 { { 110 0 } { 10 10 } } }
- { key-f10 { { 120 0 } { 10 10 } } }
- { key-f11 { { 130 0 } { 10 10 } } }
- { key-f12 { { 140 0 } { 10 10 } } }
-
-
- { key-backtick { { 0 15 } { 10 10 } } }
- { key-1 { { 10 15 } { 10 10 } } }
- { key-2 { { 20 15 } { 10 10 } } }
- { key-3 { { 30 15 } { 10 10 } } }
- { key-4 { { 40 15 } { 10 10 } } }
- { key-5 { { 50 15 } { 10 10 } } }
- { key-6 { { 60 15 } { 10 10 } } }
- { key-7 { { 70 15 } { 10 10 } } }
- { key-8 { { 80 15 } { 10 10 } } }
- { key-9 { { 90 15 } { 10 10 } } }
- { key-0 { { 100 15 } { 10 10 } } }
- { key-- { { 110 15 } { 10 10 } } }
- { key-= { { 120 15 } { 10 10 } } }
- { key-backspace { { 130 15 } { 20 10 } } }
-
- { key-tab { { 0 25 } { 15 10 } } }
- { key-q { { 15 25 } { 10 10 } } }
- { key-w { { 25 25 } { 10 10 } } }
- { key-e { { 35 25 } { 10 10 } } }
- { key-r { { 45 25 } { 10 10 } } }
- { key-t { { 55 25 } { 10 10 } } }
- { key-y { { 65 25 } { 10 10 } } }
- { key-u { { 75 25 } { 10 10 } } }
- { key-i { { 85 25 } { 10 10 } } }
- { key-o { { 95 25 } { 10 10 } } }
- { key-p { { 105 25 } { 10 10 } } }
- { key-lbracket { { 115 25 } { 10 10 } } }
- { key-rbracket { { 125 25 } { 10 10 } } }
- { key-\ { { 135 25 } { 15 10 } } }
-
- { key-caps-lock { { 0 35 } { 20 10 } } }
- { key-a { { 20 35 } { 10 10 } } }
- { key-s { { 30 35 } { 10 10 } } }
- { key-d { { 40 35 } { 10 10 } } }
- { key-f { { 50 35 } { 10 10 } } }
- { key-g { { 60 35 } { 10 10 } } }
- { key-h { { 70 35 } { 10 10 } } }
- { key-j { { 80 35 } { 10 10 } } }
- { key-k { { 90 35 } { 10 10 } } }
- { key-l { { 100 35 } { 10 10 } } }
- { key-; { { 110 35 } { 10 10 } } }
- { key-' { { 120 35 } { 10 10 } } }
- { key-return { { 130 35 } { 20 10 } } }
-
- { key-left-shift { { 0 45 } { 25 10 } } }
- { key-z { { 25 45 } { 10 10 } } }
- { key-x { { 35 45 } { 10 10 } } }
- { key-c { { 45 45 } { 10 10 } } }
- { key-v { { 55 45 } { 10 10 } } }
- { key-b { { 65 45 } { 10 10 } } }
- { key-n { { 75 45 } { 10 10 } } }
- { key-m { { 85 45 } { 10 10 } } }
- { key-, { { 95 45 } { 10 10 } } }
- { key-. { { 105 45 } { 10 10 } } }
- { key-/ { { 115 45 } { 10 10 } } }
- { key-right-shift { { 125 45 } { 25 10 } } }
-
- { key-left-control { { 0 55 } { 15 10 } } }
- { key-left-gui { { 15 55 } { 15 10 } } }
- { key-left-alt { { 30 55 } { 15 10 } } }
- { key-space { { 45 55 } { 45 10 } } }
- { key-right-alt { { 90 55 } { 15 10 } } }
- { key-right-gui { { 105 55 } { 15 10 } } }
- { key-application { { 120 55 } { 15 10 } } }
- { key-right-control { { 135 55 } { 15 10 } } }
-
-
- { key-print-screen { { 155 0 } { 10 10 } } }
- { key-scroll-lock { { 165 0 } { 10 10 } } }
- { key-pause { { 175 0 } { 10 10 } } }
-
- { key-insert { { 155 15 } { 10 10 } } }
- { key-home { { 165 15 } { 10 10 } } }
- { key-page-up { { 175 15 } { 10 10 } } }
-
- { key-delete { { 155 25 } { 10 10 } } }
- { key-end { { 165 25 } { 10 10 } } }
- { key-page-down { { 175 25 } { 10 10 } } }
-
- { key-up-arrow { { 165 45 } { 10 10 } } }
- { key-left-arrow { { 155 55 } { 10 10 } } }
- { key-down-arrow { { 165 55 } { 10 10 } } }
- { key-right-arrow { { 175 55 } { 10 10 } } }
-
-
- { key-keypad-numlock { { 190 15 } { 10 10 } } }
- { key-keypad-/ { { 200 15 } { 10 10 } } }
- { key-keypad-* { { 210 15 } { 10 10 } } }
- { key-keypad-- { { 220 15 } { 10 10 } } }
-
- { key-keypad-7 { { 190 25 } { 10 10 } } }
- { key-keypad-8 { { 200 25 } { 10 10 } } }
- { key-keypad-9 { { 210 25 } { 10 10 } } }
- { key-keypad-+ { { 220 25 } { 10 20 } } }
-
- { key-keypad-4 { { 190 35 } { 10 10 } } }
- { key-keypad-5 { { 200 35 } { 10 10 } } }
- { key-keypad-6 { { 210 35 } { 10 10 } } }
-
- { key-keypad-1 { { 190 45 } { 10 10 } } }
- { key-keypad-2 { { 200 45 } { 10 10 } } }
- { key-keypad-3 { { 210 45 } { 10 10 } } }
- { key-keypad-enter { { 220 45 } { 10 20 } } }
-
- { key-keypad-0 { { 190 55 } { 20 10 } } }
- { key-keypad-. { { 210 55 } { 10 10 } } }
+ { key-escape { "ESC" { 0 0 } { 30 30 } } }
+
+ { key-f1 { "F1" { 60 0 } { 30 30 } } }
+ { key-f2 { "F2" { 90 0 } { 30 30 } } }
+ { key-f3 { "F3" { 120 0 } { 30 30 } } }
+ { key-f4 { "F4" { 150 0 } { 30 30 } } }
+
+ { key-f5 { "F5" { 195 0 } { 30 30 } } }
+ { key-f6 { "F6" { 225 0 } { 30 30 } } }
+ { key-f7 { "F7" { 255 0 } { 30 30 } } }
+ { key-f8 { "F8" { 285 0 } { 30 30 } } }
+
+ { key-f9 { "F9" { 330 0 } { 30 30 } } }
+ { key-f10 { "F10" { 360 0 } { 30 30 } } }
+ { key-f11 { "F11" { 390 0 } { 30 30 } } }
+ { key-f12 { "F12" { 420 0 } { 30 30 } } }
+
+
+ { key-backtick { "`" { 0 45 } { 30 30 } } }
+ { key-1 { "1" { 30 45 } { 30 30 } } }
+ { key-2 { "2" { 60 45 } { 30 30 } } }
+ { key-3 { "3" { 90 45 } { 30 30 } } }
+ { key-4 { "4" { 120 45 } { 30 30 } } }
+ { key-5 { "5" { 150 45 } { 30 30 } } }
+ { key-6 { "6" { 180 45 } { 30 30 } } }
+ { key-7 { "7" { 210 45 } { 30 30 } } }
+ { key-8 { "8" { 240 45 } { 30 30 } } }
+ { key-9 { "9" { 270 45 } { 30 30 } } }
+ { key-0 { "0" { 300 45 } { 30 30 } } }
+ { key-- { "-" { 330 45 } { 30 30 } } }
+ { key-= { "=" { 360 45 } { 30 30 } } }
+ { key-backspace { "⌫" { 390 45 } { 60 30 } } }
+
+ { key-tab { "↹" { 0 75 } { 45 30 } } }
+ { key-q { "Q" { 45 75 } { 30 30 } } }
+ { key-w { "W" { 75 75 } { 30 30 } } }
+ { key-e { "E" { 105 75 } { 30 30 } } }
+ { key-r { "R" { 135 75 } { 30 30 } } }
+ { key-t { "T" { 165 75 } { 30 30 } } }
+ { key-y { "Y" { 195 75 } { 30 30 } } }
+ { key-u { "U" { 225 75 } { 30 30 } } }
+ { key-i { "I" { 255 75 } { 30 30 } } }
+ { key-o { "O" { 285 75 } { 30 30 } } }
+ { key-p { "P" { 315 75 } { 30 30 } } }
+ { key-lbracket { "[" { 345 75 } { 30 30 } } }
+ { key-rbracket { "]" { 375 75 } { 30 30 } } }
+ { key-\ { "\\" { 405 75 } { 45 30 } } }
+
+ { key-caps-lock { "⇪" { 0 105 } { 60 30 } } }
+ { key-a { "A" { 60 105 } { 30 30 } } }
+ { key-s { "S" { 90 105 } { 30 30 } } }
+ { key-d { "D" { 120 105 } { 30 30 } } }
+ { key-f { "F" { 150 105 } { 30 30 } } }
+ { key-g { "G" { 180 105 } { 30 30 } } }
+ { key-h { "H" { 210 105 } { 30 30 } } }
+ { key-j { "J" { 240 105 } { 30 30 } } }
+ { key-k { "K" { 270 105 } { 30 30 } } }
+ { key-l { "L" { 300 105 } { 30 30 } } }
+ { key-; { ";" { 330 105 } { 30 30 } } }
+ { key-' { "'" { 360 105 } { 30 30 } } }
+ { key-return { "⏎" { 390 105 } { 60 30 } } }
+
+ { key-left-shift { "⇧" { 0 135 } { 75 30 } } }
+ { key-z { "Z" { 75 135 } { 30 30 } } }
+ { key-x { "X" { 105 135 } { 30 30 } } }
+ { key-c { "C" { 135 135 } { 30 30 } } }
+ { key-v { "V" { 165 135 } { 30 30 } } }
+ { key-b { "B" { 195 135 } { 30 30 } } }
+ { key-n { "N" { 225 135 } { 30 30 } } }
+ { key-m { "M" { 255 135 } { 30 30 } } }
+ { key-, { "," { 285 135 } { 30 30 } } }
+ { key-. { "." { 315 135 } { 30 30 } } }
+ { key-/ { "/" { 345 135 } { 30 30 } } }
+ { key-right-shift { "⇧" { 375 135 } { 75 30 } } }
+
+ { key-left-control { " " { 0 165 } { 45 30 } } }
+ { key-left-gui { " " { 45 165 } { 45 30 } } }
+ { key-left-alt { " " { 90 165 } { 45 30 } } }
+ { key-space { "SPACE" { 135 165 } { 135 30 } } }
+ { key-right-alt { " " { 270 165 } { 45 30 } } }
+ { key-right-gui { " " { 315 165 } { 45 30 } } }
+ { key-application { " " { 360 165 } { 45 30 } } }
+ { key-right-control { " " { 405 165 } { 45 30 } } }
+
+
+ { key-print-screen { "⎙" { 465 0 } { 30 30 } } }
+ { key-scroll-lock { " " { 495 0 } { 30 30 } } }
+ { key-pause { " " { 525 0 } { 30 30 } } }
+
+ { key-insert { "INS" { 465 45 } { 30 30 } } }
+ { key-home { "↖" { 495 45 } { 30 30 } } }
+ { key-page-up { "⇞" { 525 45 } { 30 30 } } }
+
+ { key-delete { "⌦" { 465 75 } { 30 30 } } }
+ { key-end { "↘" { 495 75 } { 30 30 } } }
+ { key-page-down { "⇟" { 525 75 } { 30 30 } } }
+
+ { key-up-arrow { "⬆" { 495 135 } { 30 30 } } }
+ { key-left-arrow { "⬅" { 465 165 } { 30 30 } } }
+ { key-down-arrow { "⬇" { 495 165 } { 30 30 } } }
+ { key-right-arrow { "➡" { 525 165 } { 30 30 } } }
+
+
+ { key-keypad-numlock { " " { 570 45 } { 30 30 } } }
+ { key-keypad-/ { "/" { 600 45 } { 30 30 } } }
+ { key-keypad-* { "*" { 630 45 } { 30 30 } } }
+ { key-keypad-- { "-" { 660 45 } { 30 30 } } }
+
+ { key-keypad-7 { "7" { 570 75 } { 30 30 } } }
+ { key-keypad-8 { "8" { 600 75 } { 30 30 } } }
+ { key-keypad-9 { "9" { 630 75 } { 30 30 } } }
+ { key-keypad-+ { "+" { 660 75 } { 30 60 } } }
+
+ { key-keypad-4 { "4" { 570 105 } { 30 30 } } }
+ { key-keypad-5 { "5" { 600 105 } { 30 30 } } }
+ { key-keypad-6 { "6" { 630 105 } { 30 30 } } }
+
+ { key-keypad-1 { "1" { 570 135 } { 30 30 } } }
+ { key-keypad-2 { "2" { 600 135 } { 30 30 } } }
+ { key-keypad-3 { "3" { 630 135 } { 30 30 } } }
+ { key-keypad-enter { "⌤" { 660 135 } { 30 60 } } }
+
+ { key-keypad-0 { "0" { 570 165 } { 60 30 } } }
+ { key-keypad-. { "." { 630 165 } { 30 30 } } }
}
-CONSTANT: KEYBOARD-SIZE { 230 65 }
+CONSTANT: KEYBOARD-SIZE { 690 195 }
CONSTANT: FREQUENCY $[ 1/30 seconds ]
TUPLE: key-caps-gadget < gadget keys timer ;
: make-key-gadget ( scancode dim array -- )
[
swap [
- " " [ drop ] <border-button>
- swap [ first >>loc ] [ second >>dim ] bi
+ [ first [ drop ] <border-button> ]
+ [ second >>loc ]
+ [ third >>dim ] tri
] [ execute( -- value ) ] bi*
] dip set-nth ;