aboutsummaryrefslogtreecommitdiff
path: root/stdlib
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib')
-rw-r--r--stdlib/source/lux/world/input/keyboard.lux78
1 files changed, 78 insertions, 0 deletions
diff --git a/stdlib/source/lux/world/input/keyboard.lux b/stdlib/source/lux/world/input/keyboard.lux
new file mode 100644
index 000000000..99ed5b2cc
--- /dev/null
+++ b/stdlib/source/lux/world/input/keyboard.lux
@@ -0,0 +1,78 @@
+(.module:
+ [lux #*
+ [data
+ [text (#+ Char)]]])
+
+(type: #export Key
+ Nat)
+
+(do-template [<name> <code>]
+ [(def: #export <name> Key <code>)]
+
+ [caps-lock 20]
+ [num-lock 144]
+ [scroll-lock 145]
+
+ [back-space 8]
+ [enter 10]
+
+ [shift 16]
+ [control 17]
+ [alt 18]
+
+ [escape 27]
+ [page-up 33]
+ [page-down 34]
+ [end 35]
+ [home 36]
+
+ [left 37]
+ [up 38]
+ [right 39]
+ [down 40]
+
+ [delete 127]
+ [print-screen 154]
+ [insert 155]
+ [windows 524]
+
+ [num-pad-0 96]
+ [num-pad-1 97]
+ [num-pad-2 98]
+ [num-pad-3 99]
+ [num-pad-4 100]
+ [num-pad-5 101]
+ [num-pad-6 102]
+ [num-pad-7 103]
+ [num-pad-8 104]
+ [num-pad-9 105]
+
+ [f1 112]
+ [f2 113]
+ [f3 114]
+ [f4 115]
+ [f5 116]
+ [f6 117]
+ [f7 118]
+ [f8 119]
+ [f9 120]
+ [f10 121]
+ [f11 122]
+ [f12 123]
+ [f13 61440]
+ [f14 61441]
+ [f15 61442]
+ [f16 61443]
+ [f17 61444]
+ [f18 61445]
+ [f19 61446]
+ [f20 61447]
+ [f21 61448]
+ [f22 61449]
+ [f23 61450]
+ [f24 61451]
+ )
+
+(type: #export Press
+ {#input (Either Key Char)
+ #pressed? Bit})