HomeForumSourceResearchGuide
Sign in to contribute to source. how it works
Component locale.KeyMapping_EN_US_QWERTY by barry
expand copy to clipboardexpand
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
				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
		}
	
	}
Revision history
To propose a new revision to this entity, use dana source put -uc your/new/version.dn -n locale.KeyMapping_EN_US_QWERTY -m "reason for update" -u yourUsername
Version 1 (this version) by barry
Notes for this version: Standard Library Initialisation