]> gitweb.factorcode.org Git - factor.git/commitdiff
game.input.demos.key-caps: more fun with button texts.
authorJohn Benediktsson <mrjbq7@gmail.com>
Fri, 4 May 2018 02:52:16 +0000 (19:52 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Fri, 4 May 2018 02:52:16 +0000 (19:52 -0700)
extra/game/input/demos/key-caps/key-caps.factor

index c31023d285be94573150a931f6ec9c84d8cce882..4a677422abddb6f806fc132dba0f3701d134ce49 100644 (file)
@@ -5,133 +5,133 @@ 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 ;
@@ -139,8 +139,9 @@ 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 ;