Class SdlKeyboard


  • public final class SdlKeyboard
    extends Object
    Definitions from file SDL_keyboard.h

    Include file for SDL keyboard event handling

    • 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 keyboard

        This 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 for SDL_SCANCODE_LGUI is "Left GUI" under Linux but "Left Windows" under Microsoft Windows, and some scancodes like SDL_SCANCODE_NONUSBACKSLASH don't have any name at all. There are even scancodes that share names, e.g. SDL_SCANCODE_RETURN and SDL_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()