mirror of
https://github.com/dpethes/rerogue.git
synced 2025-06-07 18:58:32 +02:00
178 lines
6.1 KiB
PHP
178 lines
6.1 KiB
PHP
//from "sdl_keyboard.h"
|
|
|
|
type
|
|
PKeyStateArr = ^TKeyStateArr;
|
|
TKeyStateArr = array[0..65000] of UInt8;
|
|
|
|
{**
|
|
* The SDL keysym structure, used in key events.
|
|
*}
|
|
PSDL_Keysym = ^TSDL_Keysym;
|
|
TSDL_Keysym = record
|
|
scancode: TSDL_ScanCode; // SDL physical key code - see SDL_Scancode for details
|
|
sym: TSDL_KeyCode; // SDL virtual key code - see SDL_Keycode for details
|
|
_mod: UInt16; // current key modifiers
|
|
unicode: UInt32; // (deprecated) use SDL_TextInputEvent instead
|
|
end;
|
|
|
|
{**
|
|
* Get the window which currently has keyboard focus.
|
|
*}
|
|
|
|
function SDL_GetKeyboardFocus: PSDL_Window cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_GetKeyboardFocus' {$ENDIF}{$ENDIF};
|
|
|
|
{**
|
|
* Get a snapshot of the current state of the keyboard.
|
|
*
|
|
* numkeys if non-nil, receives the length of the returned array.
|
|
*
|
|
* An array of key states. Indexes into this array are obtained by using SDL_Scancode values.
|
|
*
|
|
*}
|
|
|
|
function SDL_GetKeyboardState(numkeys: PInt): PUInt8 cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_GetKeyboardState' {$ENDIF}{$ENDIF};
|
|
|
|
{**
|
|
* Get the current key modifier state for the keyboard.
|
|
*}
|
|
|
|
function SDL_GetModState: TSDL_KeyMod cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_GetModState' {$ENDIF}{$ENDIF};
|
|
|
|
{**
|
|
* Set the current key modifier state for the keyboard.
|
|
*
|
|
* This does not change the keyboard state, only the key modifier flags.
|
|
*}
|
|
|
|
procedure SDL_SetModState(modstate: TSDL_KeyMod) cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_SetModState' {$ENDIF}{$ENDIF};
|
|
|
|
{**
|
|
* Get the key code corresponding to the given scancode according
|
|
* to the current keyboard layout.
|
|
*
|
|
* See SDL_Keycode for details.
|
|
*
|
|
* SDL_GetKeyName()
|
|
*}
|
|
|
|
function SDL_GetKeyFromScancode(scancode: TSDL_ScanCode): TSDL_KeyCode cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_GetKeyFromScancode' {$ENDIF}{$ENDIF};
|
|
|
|
{**
|
|
* Get the scancode corresponding to the given key code according to the
|
|
* current keyboard layout.
|
|
*
|
|
* See SDL_Scancode for details.
|
|
*
|
|
* SDL_GetScancodeName()
|
|
*}
|
|
|
|
function SDL_GetScancodeFromKey(key: TSDL_KeyCode): TSDL_ScanCode cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_GetScancodeFromKey' {$ENDIF}{$ENDIF};
|
|
|
|
{**
|
|
* Get a human-readable name for a scancode.
|
|
*
|
|
* A pointer to the name for the scancode.
|
|
*
|
|
* If the scancode doesn't have a name, this function returns
|
|
* an empty string ("").
|
|
*
|
|
*}
|
|
|
|
function SDL_GetScancodeName(scancode: TSDL_ScanCode): PAnsiChar cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_GetScancodeName' {$ENDIF}{$ENDIF};
|
|
|
|
{**
|
|
* Get a scancode from a human-readable name
|
|
*
|
|
* scancode, or SDL_SCANCODE_UNKNOWN if the name wasn't recognized
|
|
*
|
|
* SDL_Scancode
|
|
*}
|
|
|
|
function SDL_GetScancodeFromName(const name: PAnsiChar): TSDL_ScanCode cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_GetScancodeFromName' {$ENDIF}{$ENDIF};
|
|
|
|
{**
|
|
* Get a human-readable name for a key.
|
|
*
|
|
* A pointer to a UTF-8 string that stays valid at least until the next
|
|
* call to this function. If you need it around any longer, you must
|
|
* copy it. If the key doesn't have a name, this function returns an
|
|
* empty string ("").
|
|
*
|
|
* SDL_Key
|
|
*}
|
|
|
|
function SDL_GetKeyName(key: TSDL_ScanCode): PAnsiChar cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_GetKeyName' {$ENDIF}{$ENDIF};
|
|
|
|
{**
|
|
* Get a key code from a human-readable name
|
|
*
|
|
* key code, or SDLK_UNKNOWN if the name wasn't recognized
|
|
*
|
|
* SDL_Keycode
|
|
*}
|
|
|
|
function SDL_GetKeyFromName(const name: PAnsiChar): TSDL_KeyCode cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_GetKeyFromName' {$ENDIF}{$ENDIF};
|
|
|
|
{**
|
|
* Start accepting Unicode text input events.
|
|
* This function will show the on-screen keyboard if supported.
|
|
*
|
|
* SDL_StopTextInput()
|
|
* SDL_SetTextInputRect()
|
|
* SDL_HasScreenKeyboardSupport()
|
|
*}
|
|
|
|
procedure SDL_StartTextInput cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_StartTextInput' {$ENDIF}{$ENDIF};
|
|
|
|
{**
|
|
* Return whether or not Unicode text input events are enabled.
|
|
*
|
|
* SDL_StartTextInput()
|
|
* SDL_StopTextInput()
|
|
*}
|
|
|
|
function SDL_IsTextInputActive: TSDL_Bool cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_IsTextInputActive' {$ENDIF}{$ENDIF};
|
|
|
|
{**
|
|
* Stop receiving any text input events.
|
|
* This function will hide the on-screen keyboard if supported.
|
|
*
|
|
* SDL_StartTextInput()
|
|
* SDL_HasScreenKeyboardSupport()
|
|
*}
|
|
|
|
procedure SDL_StopTextInput cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_StopTextInput' {$ENDIF}{$ENDIF};
|
|
|
|
{**
|
|
* Set the rectangle used to type Unicode text inputs.
|
|
* This is used as a hint for IME and on-screen keyboard placement.
|
|
*
|
|
* SDL_StartTextInput()
|
|
*}
|
|
|
|
procedure SDL_SetTextInputRect(rect: PSDL_Rect) cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_SetTextInputRect' {$ENDIF}{$ENDIF};
|
|
|
|
{**
|
|
* Returns whether the platform has some screen keyboard support.
|
|
*
|
|
* SDL_TRUE if some keyboard support is available else SDL_FALSE.
|
|
*
|
|
* Not all screen keyboard functions are supported on all platforms.
|
|
*
|
|
* SDL_IsScreenKeyboardShown()
|
|
*}
|
|
|
|
function SDL_HasScreenKeyboardSupport: TSDL_Bool cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_HasScreenKeyboardSupport' {$ENDIF}{$ENDIF};
|
|
|
|
{**
|
|
* Returns whether the screen keyboard is shown for given window.
|
|
*
|
|
* window The window for which screen keyboard should be queried.
|
|
*
|
|
* Result - SDL_TRUE if screen keyboard is shown else SDL_FALSE.
|
|
*
|
|
* SDL_HasScreenKeyboardSupport()
|
|
*}
|
|
|
|
function SDL_IsScreenKeyboardShown(window: PSDL_Window): TSDL_Bool cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_IsScreenKeyboardShown' {$ENDIF}{$ENDIF};
|