|
@@ -51,7 +51,13 @@ Class KeyboardDevice Extends InputDevice
|
|
|
|
|
|
#end
|
|
#end
|
|
Method KeyName:String( key:Key )
|
|
Method KeyName:String( key:Key )
|
|
- If key & key.Raw key=TranslateKey( key )
|
|
|
|
|
|
+ If key & key.Raw
|
|
|
|
+ key&=~Key.Raw
|
|
|
|
+ If key<=Key.None Or key>=Key.Max Return "?????"
|
|
|
|
+ key=TranslateKey( key )
|
|
|
|
+ Else
|
|
|
|
+ If key<=Key.None Or key>=Key.Max Return "?????"
|
|
|
|
+ Endif
|
|
Return _names[key]
|
|
Return _names[key]
|
|
End
|
|
End
|
|
|
|
|
|
@@ -64,17 +70,20 @@ Class KeyboardDevice Extends InputDevice
|
|
#end
|
|
#end
|
|
Method TranslateKey:Key( key:Key )
|
|
Method TranslateKey:Key( key:Key )
|
|
If key & Key.Raw
|
|
If key & Key.Raw
|
|
|
|
+ key&=~Key.Raw
|
|
|
|
+ If key<=Key.None Or key>=Key.Max Return Null
|
|
#If __TARGET__="emscripten"
|
|
#If __TARGET__="emscripten"
|
|
- Return key & ~Key.Raw
|
|
|
|
|
|
+ Return key
|
|
#Else
|
|
#Else
|
|
- Local keyCode:=SDL_GetKeyFromScancode( Cast<SDL_Scancode>( _raw2scan[ key & ~Key.Raw ] ) )
|
|
|
|
|
|
+ Local keyCode:=SDL_GetKeyFromScancode( Cast<SDL_Scancode>( _raw2scan[key] ) )
|
|
Return KeyCodeToKey( keyCode )
|
|
Return KeyCodeToKey( keyCode )
|
|
#Endif
|
|
#Endif
|
|
Else
|
|
Else
|
|
|
|
+ If key<=Key.None Or key>=Key.Max Return Null
|
|
Local scanCode:=_key2scan[key]
|
|
Local scanCode:=_key2scan[key]
|
|
Return _scan2raw[scanCode]
|
|
Return _scan2raw[scanCode]
|
|
Endif
|
|
Endif
|
|
- Return Key.None
|
|
|
|
|
|
+ Return Null
|
|
End
|
|
End
|
|
|
|
|
|
#rem monkeydoc Checks the current up/down state of a key.
|
|
#rem monkeydoc Checks the current up/down state of a key.
|
|
@@ -162,7 +171,12 @@ Class KeyboardDevice Extends InputDevice
|
|
#rem monkeydoc @hidden
|
|
#rem monkeydoc @hidden
|
|
#end
|
|
#end
|
|
Method ScanCode:Int( key:Key )
|
|
Method ScanCode:Int( key:Key )
|
|
- If key & Key.Raw Return _raw2scan[ key & ~Key.Raw ]
|
|
|
|
|
|
+ If key & Key.Raw
|
|
|
|
+ key&=~Key.Raw
|
|
|
|
+ If key<=0 Or key>=Key.Max Return 0
|
|
|
|
+ Return _raw2scan[ key & ~Key.Raw ]
|
|
|
|
+ Endif
|
|
|
|
+ If key<=0 Or key>=Key.Max Return 0
|
|
Return _key2scan[ key ]
|
|
Return _key2scan[ key ]
|
|
End
|
|
End
|
|
|
|
|
|
@@ -170,12 +184,14 @@ Class KeyboardDevice Extends InputDevice
|
|
#end
|
|
#end
|
|
Method KeyCodeToKey:Key( keyCode:Int )
|
|
Method KeyCodeToKey:Key( keyCode:Int )
|
|
If (keyCode & $40000000) keyCode=(keyCode & ~$40000000)+$80
|
|
If (keyCode & $40000000) keyCode=(keyCode & ~$40000000)+$80
|
|
|
|
+ If keyCode<=0 Or keyCode>=Int( Key.Max ) Return Null
|
|
Return Cast<Key>( keyCode )
|
|
Return Cast<Key>( keyCode )
|
|
End
|
|
End
|
|
|
|
|
|
#rem monkeydoc @hidden
|
|
#rem monkeydoc @hidden
|
|
#end
|
|
#end
|
|
Method ScanCodeToRawKey:Key( scanCode:Int )
|
|
Method ScanCodeToRawKey:Key( scanCode:Int )
|
|
|
|
+ If scanCode<=0 Or scanCode>=512 Return null
|
|
Return _scan2raw[ scanCode ]
|
|
Return _scan2raw[ scanCode ]
|
|
End
|
|
End
|
|
|
|
|