component provides KeyMapping {
char[] KeyMapping:getCharacter(int n, byte keyState)
{
bool shift = (keyState & KeyState.KEY_SHIFT) == KeyState.KEY_SHIFT
bool upper = shift || (keyState & KeyState.KEY_CAPLOCK) == KeyState.KEY_CAPLOCK
bool altgr = (keyState & KeyState.KEY_ALTGR) == KeyState.KEY_ALTGR
if (((keyState & KeyState.KEY_ALT) == KeyState.KEY_ALT) && ((keyState & KeyState.KEY_CTRL) == KeyState.KEY_CTRL))
altgr = true
if (n >= 4 && n < 30)
{
if (upper)
return (65-4)+n
else
return (97-4)+n
}
else if (n == 30)
{
if (shift)
return "!"
else
return "1"
}
else if (n == 31)
{
if (shift)
return "\""
else
return "2"
}
else if (n == 32)
{
if (shift)
return "£"
else
return "3"
}
else if (n == 33)
{
if (shift)
return "\$"
else if (altgr)
return "€"
else
return "4"
}
else if (n == 34)
{
if (shift)
return "%"
else
return "5"
}
else if (n == 35)
{
if (shift)
return "^"
else
return "6"
}
else if (n == 36)
{
if (shift)
return "&"
else
return "7"
}
else if (n == 37)
{
if (shift)
return "*"
else
return "8"
}
else if (n == 38)
{
if (shift)
return "("
else
return "9"
}
else if (n == 39)
{
if (shift)
return ")"
else
return "0"
}
else if (n == 44)
{
return " "
}
else if (n == 45)
{
if (shift)
return "_"
else
return "-"
}
else if (n == 46)
{
if (shift)
return "+"
else
return "="
}
else if (n == 47)
{
if (shift)
return "{"
else
return "["
}
else if (n == 48)
{
if (shift)
return "}"
else
return "]"
}
else if (n == 51)
{
if (shift)
return ":"
else
return ";"
}
else if (n == 52)
{
if (shift)
return "@"
else
return "'"
}
else if (n == 49)
{
if (shift)
return "~"
else
return "#"
}
else if (n == 53)
{
if (shift)
return "¬"
else
return "`"
}
else if (n == 54)
{
if (shift)
return "<"
else
return ","
}
else if (n == 55)
{
if (shift)
return ">"
else
return "."
}
else if (n == 56)
{
if (shift)
return "?"
else
return "/"
}
else if (n == 100)
{
if (shift)
return "|"
else
return "\\"
}
return null
}
byte KeyMapping:getKeyCode(int n)
{
if (n == 40) return KeyCode.RETURN
else if (n == 42) return KeyCode.BACKSPACE
else if (n == 74) return KeyCode.HOME
else if (n == 77) return KeyCode.END
else if (n == 76) return KeyCode.DELETE
else if (n == 73) return KeyCode.INSERT
else if (n == 80) return KeyCode.ARROW_LEFT
else if (n == 79) return KeyCode.ARROW_RIGHT
else if (n == 82) return KeyCode.ARROW_UP
else if (n == 81) return KeyCode.ARROW_DOWN
else if (n == 75) return KeyCode.PAGE_UP
else if (n == 78) return KeyCode.PAGE_DOWN
else if (n == 225) return KeyCode.SHIFT_LEFT
else if (n == 229) return KeyCode.SHIFT_RIGHT
else if (n == 224) return KeyCode.CTRL_LEFT
else if (n == 228) return KeyCode.CTRL_RIGHT
else if (n == 226) return KeyCode.ALT_LEFT
else if (n == 230) return KeyCode.ALT_RIGHT
else if (n == 43) return KeyCode.TAB
else if (n == 227) return KeyCode.CMD
else if (n == 58) return KeyCode.F1
else if (n == 59) return KeyCode.F2
else if (n == 60) return KeyCode.F3
else if (n == 61) return KeyCode.F4
else if (n == 62) return KeyCode.F5
else if (n == 63) return KeyCode.F6
else if (n == 64) return KeyCode.F7
else if (n == 65) return KeyCode.F8
else if (n == 66) return KeyCode.F9
else if (n == 67) return KeyCode.F10
else if (n == 68) return KeyCode.F11
else if (n == 69) return KeyCode.F12
else if (n == 41) return KeyCode.ESCAPE
else if (n == 44) return KeyCode.SPACE
else if (n == 57) return KeyCode.CAPLOCK
else if (n == 4) return KeyCode.A
else if (n == 5) return KeyCode.B
else if (n == 6) return KeyCode.C
else if (n == 7) return KeyCode.D
else if (n == 8) return KeyCode.E
else if (n == 9) return KeyCode.F
else if (n == 10) return KeyCode.G
else if (n == 11) return KeyCode.H
else if (n == 12) return KeyCode.I
else if (n == 13) return KeyCode.J
else if (n == 14) return KeyCode.K
else if (n == 15) return KeyCode.L
else if (n == 16) return KeyCode.M
else if (n == 17) return KeyCode.N
else if (n == 18) return KeyCode.O
else if (n == 19) return KeyCode.P
else if (n == 20) return KeyCode.Q
else if (n == 21) return KeyCode.R
else if (n == 22) return KeyCode.S
else if (n == 23) return KeyCode.T
else if (n == 24) return KeyCode.U
else if (n == 25) return KeyCode.V
else if (n == 26) return KeyCode.W
else if (n == 27) return KeyCode.X
else if (n == 28) return KeyCode.Y
else if (n == 29) return KeyCode.Z
return KeyCode.OTHER
}
}To propose a new revision to this entity, use dana source put -uc your/new/version.dn -n locale.KeyMapping_EN_UK_QWERTY -m "reason for update" -u yourUsername
Version 1 (this version) by barry
Notes for this version: Standard Library Initialisation