Class SdlKeyboard
- java.lang.Object
-
- io.github.libsdl4j.api.keyboard.SdlKeyboard
-
public final class SdlKeyboard extends Object
Definitions from file SDL_keyboard.hInclude file for SDL keyboard event handling
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
SDL_ClearComposition()
Dismiss the composition window/IME without disabling the subsystem.static SDL_Window
SDL_GetKeyboardFocus()
Query the window which currently has keyboard focus.static com.sun.jna.Pointer
SDL_GetKeyboardState(com.sun.jna.ptr.IntByReference numkeys)
Get a snapshot of the current state of the keyboard.static int
SDL_GetKeyFromName(String name)
Get a key code from a human-readable name.static int
SDL_GetKeyFromScancode(int scancode)
Get the key code corresponding to the given scancode according to the current keyboard layout.static String
SDL_GetKeyName(int key)
Get a human-readable name for a key.static int
SDL_GetModState()
Get the current key modifier state for the keyboard.static int
SDL_GetScancodeFromKey(int key)
Get the scancode corresponding to the given key code according to the current keyboard layout.static int
SDL_GetScancodeFromName(String name)
Get a scancode from a human-readable name.static String
SDL_GetScancodeName(int scancode)
Get a human-readable name for a scancode.static boolean
SDL_HasScreenKeyboardSupport()
Check whether the platform has screen keyboard support.static boolean
SDL_IsScreenKeyboardShown(SDL_Window window)
Check whether the screen keyboard is shown for given window.static boolean
SDL_IsTextInputActive()
Check whether or not Unicode text input events are enabled.static boolean
SDL_IsTextInputShown()
Returns if an IME Composite or Candidate window is currently shown.static void
SDL_ResetKeyboard()
Clear the state of the keyboardstatic void
SDL_SetModState(int modstate)
Set the current key modifier state for the keyboard.static void
SDL_SetTextInputRect(SDL_Rect rect)
Set the rectangle used to type Unicode text inputs.static void
SDL_StartTextInput()
Start accepting Unicode text input events.static void
SDL_StopTextInput()
Stop receiving any text input events.
-
-
-
Method Detail
-
SDL_GetKeyboardFocus
public static SDL_Window SDL_GetKeyboardFocus()
Query the window which currently has keyboard focus.- Returns:
- the window with keyboard focus.
- Since:
- This function is available since SDL 2.0.0.
-
SDL_GetKeyboardState
public static com.sun.jna.Pointer SDL_GetKeyboardState(com.sun.jna.ptr.IntByReference numkeys)
Get a snapshot of the current state of the keyboard.The pointer returned is a pointer to an internal SDL array. It will be valid for the whole lifetime of the application and should not be freed by the caller.
A array element with a value of 1 means that the key is pressed and a value of 0 means that it is not. Indexes into this array are obtained by using SDL_Scancode values.
Use SDL_PumpEvents() to update the state array.
This function gives you the current state after all events have been processed, so if a key or button has been pressed and released before you process events, then the pressed state will never show up in the SDL_GetKeyboardState() calls.
Note: This function doesn't take into account whether shift has been pressed or not.
- Parameters:
numkeys
- if non-null, receives the length of the returned array- Returns:
- a pointer to an array of key states.
- Since:
- This function is available since SDL 2.0.0.
- See Also:
SDL_PumpEvents()
,SDL_ResetKeyboard()
-
SDL_ResetKeyboard
public static void SDL_ResetKeyboard()
Clear the state of the keyboardThis function will generate key up events for all pressed keys.
- Since:
- This function is available since SDL 2.24.0.
- See Also:
SDL_GetKeyboardState(IntByReference)
-
SDL_GetModState
public static int SDL_GetModState()
Get the current key modifier state for the keyboard.- Returns:
- an OR'd combination of the modifier keys for the keyboard. See SDL_Keymod for details.
- Since:
- This function is available since SDL 2.0.0.
- See Also:
SDL_GetKeyboardState(IntByReference)
,SDL_SetModState(int)
-
SDL_SetModState
public static void SDL_SetModState(int modstate)
Set the current key modifier state for the keyboard.The inverse of SDL_GetModState(), SDL_SetModState() allows you to impose modifier key states on your application. Simply pass your desired modifier states into
modstate
. This value may be a bitwise, OR'd combination of SDL_Keymod values.This does not change the keyboard state, only the key modifier flags that SDL reports.
- Parameters:
modstate
- the desired SDL_Keymod for the keyboard- Since:
- This function is available since SDL 2.0.0.
- See Also:
SDL_GetModState()
-
SDL_GetKeyFromScancode
public static int SDL_GetKeyFromScancode(int scancode)
Get the key code corresponding to the given scancode according to the current keyboard layout.See SDL_Keycode for details.
- Parameters:
scancode
- the desired SDL_Scancode to query- Returns:
- the SDL_Keycode that corresponds to the given SDL_Scancode.
- Since:
- This function is available since SDL 2.0.0.
- See Also:
SDL_GetKeyName(int)
,SDL_GetScancodeFromKey(int)
-
SDL_GetScancodeFromKey
public static int SDL_GetScancodeFromKey(int key)
Get the scancode corresponding to the given key code according to the current keyboard layout.See SDL_Scancode for details.
- Parameters:
key
- the desired SDL_Keycode to query- Returns:
- the SDL_Scancode that corresponds to the given SDL_Keycode.
- Since:
- This function is available since SDL 2.0.0.
- See Also:
SDL_GetKeyFromScancode(int)
,SDL_GetScancodeName(int)
-
SDL_GetScancodeName
public static String SDL_GetScancodeName(int scancode)
Get a human-readable name for a scancode.See SDL_Scancode for details.
**Warning**: The returned name is by design not stable across platforms, e.g. the name forSDL_SCANCODE_LGUI
is "Left GUI" under Linux but "Left Windows" under Microsoft Windows, and some scancodes likeSDL_SCANCODE_NONUSBACKSLASH
don't have any name at all. There are even scancodes that share names, e.g.SDL_SCANCODE_RETURN
andSDL_SCANCODE_RETURN2
(both called "Return"). This function is therefore unsuitable for creating a stable cross-platform two-way mapping between strings and scancodes.- Parameters:
scancode
- the desired SDL_Scancode to query- Returns:
- a pointer to the name for the scancode. If the scancode doesn't have a name this function returns an empty string ("").
- Since:
- This function is available since SDL 2.0.0.
- See Also:
SDL_GetScancodeFromKey(int)
,SDL_GetScancodeFromName(String)
-
SDL_GetScancodeFromName
public static int SDL_GetScancodeFromName(String name)
Get a scancode from a human-readable name.- Parameters:
name
- the human-readable scancode name- Returns:
- the SDL_Scancode, or
SDL_SCANCODE_UNKNOWN
if the name wasn't recognized; call SDL_GetError() for more information. - Since:
- This function is available since SDL 2.0.0.
- See Also:
SDL_GetKeyFromName(String)
,SDL_GetScancodeFromKey(int)
,SDL_GetScancodeName(int)
-
SDL_GetKeyName
public static String SDL_GetKeyName(int key)
Get a human-readable name for a key.See SDL_Scancode and SDL_Keycode for details.
- Parameters:
key
- the desired SDL_Keycode to query- Returns:
- 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 ("").
- Since:
- This function is available since SDL 2.0.0.
- See Also:
SDL_GetKeyFromName(String)
,SDL_GetKeyFromScancode(int)
,SDL_GetScancodeFromKey(int)
-
SDL_GetKeyFromName
public static int SDL_GetKeyFromName(String name)
Get a key code from a human-readable name.- Parameters:
name
- the human-readable key name- Returns:
- key code, or
SDLK_UNKNOWN
if the name wasn't recognized; call SDL_GetError() for more information. - Since:
- This function is available since SDL 2.0.0.
- See Also:
SDL_GetKeyFromScancode(int)
,SDL_GetKeyName(int)
,SDL_GetScancodeFromName(String)
-
SDL_StartTextInput
public static void SDL_StartTextInput()
Start accepting Unicode text input events.This function will start accepting Unicode text input events in the focused SDL window, and start emitting SDL_TextInputEvent (SDL_TEXTINPUT) and SDL_TextEditingEvent (SDL_TEXTEDITING) events. Please use this function in pair with SDL_StopTextInput().
On some platforms using this function activates the screen keyboard.
- Since:
- This function is available since SDL 2.0.0.
- See Also:
SDL_SetTextInputRect(SDL_Rect)
,SDL_StopTextInput()
-
SDL_IsTextInputActive
public static boolean SDL_IsTextInputActive()
Check whether or not Unicode text input events are enabled.- Returns:
- true if text input events are enabled else false.
- Since:
- This function is available since SDL 2.0.0.
- See Also:
SDL_StartTextInput()
-
SDL_StopTextInput
public static void SDL_StopTextInput()
Stop receiving any text input events.- Since:
- This function is available since SDL 2.0.0.
- See Also:
SDL_StartTextInput()
-
SDL_ClearComposition
public static void SDL_ClearComposition()
Dismiss the composition window/IME without disabling the subsystem.- Since:
- This function is available since SDL 2.0.22.
- See Also:
SDL_StartTextInput()
,SDL_StopTextInput()
-
SDL_IsTextInputShown
public static boolean SDL_IsTextInputShown()
Returns if an IME Composite or Candidate window is currently shown.- Since:
- This function is available since SDL 2.0.22.
-
SDL_SetTextInputRect
public static void SDL_SetTextInputRect(SDL_Rect rect)
Set the rectangle used to type Unicode text inputs.To start text input in a given location, this function is intended to be called before SDL_StartTextInput, although some platforms support moving the rectangle even while text input (and a composition) is active.
Note: If you want to use the system native IME window, try setting hint **SDL_HINT_IME_SHOW_UI** to **1**, otherwise this function won't give you any feedback.
- Parameters:
rect
- the SDL_Rect structure representing the rectangle to receive text (ignored if null)- Since:
- This function is available since SDL 2.0.0.
- See Also:
SDL_StartTextInput()
-
SDL_HasScreenKeyboardSupport
public static boolean SDL_HasScreenKeyboardSupport()
Check whether the platform has screen keyboard support.- Returns:
- true if the platform has some screen keyboard support or false if not.
- Since:
- This function is available since SDL 2.0.0.
- See Also:
SDL_StartTextInput()
,SDL_IsScreenKeyboardShown(SDL_Window)
-
SDL_IsScreenKeyboardShown
public static boolean SDL_IsScreenKeyboardShown(SDL_Window window)
Check whether the screen keyboard is shown for given window.- Parameters:
window
- the window for which screen keyboard should be queried- Returns:
- true if screen keyboard is shown or false if not.
- Since:
- This function is available since SDL 2.0.0.
- See Also:
SDL_HasScreenKeyboardSupport()
-
-