Navigation Menu

Skip to content

Commit

Permalink
game.input.demos.key-caps: more fun with button texts.
Browse files Browse the repository at this point in the history
  • Loading branch information
mrjbq7 committed May 4, 2018
1 parent 1d8ca2c commit 5ad9c55
Showing 1 changed file with 128 additions and 127 deletions.
255 changes: 128 additions & 127 deletions extra/game/input/demos/key-caps/key-caps.factor
Expand Up @@ -5,142 +5,143 @@ ui.gadgets.borders ui.gestures literals ;
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 ;

Expand Down

0 comments on commit 5ad9c55

Please sign in to comment.