1 | /* |
2 | Simple DirectMedia Layer |
3 | Copyright (C) 1997-2021 Sam Lantinga <slouken@libsdl.org> |
4 | |
5 | This software is provided 'as-is', without any express or implied |
6 | warranty. In no event will the authors be held liable for any damages |
7 | arising from the use of this software. |
8 | |
9 | Permission is granted to anyone to use this software for any purpose, |
10 | including commercial applications, and to alter it and redistribute it |
11 | freely, subject to the following restrictions: |
12 | |
13 | 1. The origin of this software must not be misrepresented; you must not |
14 | claim that you wrote the original software. If you use this software |
15 | in a product, an acknowledgment in the product documentation would be |
16 | appreciated but is not required. |
17 | 2. Altered source versions must be plainly marked as such, and must not be |
18 | misrepresented as being the original software. |
19 | 3. This notice may not be removed or altered from any source distribution. |
20 | */ |
21 | #include "../SDL_internal.h" |
22 | |
23 | #ifndef SDL_keyboard_c_h_ |
24 | #define SDL_keyboard_c_h_ |
25 | |
26 | #include "SDL_keycode.h" |
27 | #include "SDL_events.h" |
28 | |
29 | /* Initialize the keyboard subsystem */ |
30 | extern int SDL_KeyboardInit(void); |
31 | |
32 | /* Clear the state of the keyboard */ |
33 | extern void SDL_ResetKeyboard(void); |
34 | |
35 | /* Get the default keymap */ |
36 | extern void SDL_GetDefaultKeymap(SDL_Keycode * keymap); |
37 | |
38 | /* Set the mapping of scancode to key codes */ |
39 | extern void SDL_SetKeymap(int start, SDL_Keycode * keys, int length); |
40 | |
41 | /* Set a platform-dependent key name, overriding the default platform-agnostic |
42 | name. Encoded as UTF-8. The string is not copied, thus the pointer given to |
43 | this function must stay valid forever (or at least until the call to |
44 | VideoQuit()). */ |
45 | extern void SDL_SetScancodeName(SDL_Scancode scancode, const char *name); |
46 | |
47 | /* Set the keyboard focus window */ |
48 | extern void SDL_SetKeyboardFocus(SDL_Window * window); |
49 | |
50 | /* Send a keyboard key event */ |
51 | extern int SDL_SendKeyboardKey(Uint8 state, SDL_Scancode scancode); |
52 | extern int SDL_SendKeyboardKeyAutoRelease(SDL_Scancode scancode); |
53 | |
54 | /* Release all the autorelease keys */ |
55 | extern void SDL_ReleaseAutoReleaseKeys(void); |
56 | |
57 | /* Return true if any hardware key is pressed */ |
58 | extern SDL_bool SDL_HardwareKeyboardKeyPressed(void); |
59 | |
60 | /* Send keyboard text input */ |
61 | extern int SDL_SendKeyboardText(const char *text); |
62 | |
63 | /* Send editing text for selected range from start to end */ |
64 | extern int SDL_SendEditingText(const char *text, int start, int end); |
65 | |
66 | /* Shutdown the keyboard subsystem */ |
67 | extern void SDL_KeyboardQuit(void); |
68 | |
69 | /* Convert to UTF-8 */ |
70 | extern char *SDL_UCS4ToUTF8(Uint32 ch, char *dst); |
71 | |
72 | /* Toggle on or off pieces of the keyboard mod state. */ |
73 | extern void SDL_ToggleModState(const SDL_Keymod modstate, const SDL_bool toggle); |
74 | |
75 | #endif /* SDL_keyboard_c_h_ */ |
76 | |
77 | /* vi: set ts=4 sw=4 expandtab: */ |
78 | |