OCamlSDL 0.9.1 : Sdlkey

# Module Sdlkey

    module Sdlkey: sig .. end

Keyboard handling and key symbols

### Keysyms

`type ``t =`

`|` | `KEY_UNKNOWN`
`|` | `KEY_BACKSPACE`
`|` | `KEY_TAB`
`|` | `KEY_CLEAR`
`|` | `KEY_RETURN`
`|` | `KEY_PAUSE`
`|` | `KEY_ESCAPE`
`|` | `KEY_SPACE`
`|` | `KEY_EXCLAIM`
`|` | `KEY_QUOTEDBL`
`|` | `KEY_HASH`
`|` | `KEY_DOLLAR`
`|` | `KEY_AMPERSAND`
`|` | `KEY_QUOTE`
`|` | `KEY_LEFTPAREN`
`|` | `KEY_RIGHTPAREN`
`|` | `KEY_ASTERISK`
`|` | `KEY_PLUS`
`|` | `KEY_COMMA`
`|` | `KEY_MINUS`
`|` | `KEY_PERIOD`
`|` | `KEY_SLASH`
`|` | `KEY_0`
`|` | `KEY_1`
`|` | `KEY_2`
`|` | `KEY_3`
`|` | `KEY_4`
`|` | `KEY_5`
`|` | `KEY_6`
`|` | `KEY_7`
`|` | `KEY_8`
`|` | `KEY_9`
`|` | `KEY_COLON`
`|` | `KEY_SEMICOLON`
`|` | `KEY_LESS`
`|` | `KEY_EQUALS`
`|` | `KEY_GREATER`
`|` | `KEY_QUESTION`
`|` | `KEY_AT` | `(*` | Skip uppercase letters | `*)`
`|` | `KEY_LEFTBRACKET`
`|` | `KEY_BACKSLASH`
`|` | `KEY_RIGHTBRACKET`
`|` | `KEY_CARET`
`|` | `KEY_UNDERSCORE`
`|` | `KEY_BACKQUOTE`
`|` | `KEY_a`
`|` | `KEY_b`
`|` | `KEY_c`
`|` | `KEY_d`
`|` | `KEY_e`
`|` | `KEY_f`
`|` | `KEY_g`
`|` | `KEY_h`
`|` | `KEY_i`
`|` | `KEY_j`
`|` | `KEY_k`
`|` | `KEY_l`
`|` | `KEY_m`
`|` | `KEY_n`
`|` | `KEY_o`
`|` | `KEY_p`
`|` | `KEY_q`
`|` | `KEY_r`
`|` | `KEY_s`
`|` | `KEY_t`
`|` | `KEY_u`
`|` | `KEY_v`
`|` | `KEY_w`
`|` | `KEY_x`
`|` | `KEY_y`
`|` | `KEY_z`
`|` | `KEY_DELETE` | `(*` | End of ASCII mapped keysyms | `*)`
`|` | `KEY_WORLD_0` | `(*` | International keyboard syms | `*)`
`|` | `KEY_WORLD_1`
`|` | `KEY_WORLD_2`
`|` | `KEY_WORLD_3`
`|` | `KEY_WORLD_4`
`|` | `KEY_WORLD_5`
`|` | `KEY_WORLD_6`
`|` | `KEY_WORLD_7`
`|` | `KEY_WORLD_8`
`|` | `KEY_WORLD_9`
`|` | `KEY_WORLD_10`
`|` | `KEY_WORLD_11`
`|` | `KEY_WORLD_12`
`|` | `KEY_WORLD_13`
`|` | `KEY_WORLD_14`
`|` | `KEY_WORLD_15`
`|` | `KEY_WORLD_16`
`|` | `KEY_WORLD_17`
`|` | `KEY_WORLD_18`
`|` | `KEY_WORLD_19`
`|` | `KEY_WORLD_20`
`|` | `KEY_WORLD_21`
`|` | `KEY_WORLD_22`
`|` | `KEY_WORLD_23`
`|` | `KEY_WORLD_24`
`|` | `KEY_WORLD_25`
`|` | `KEY_WORLD_26`
`|` | `KEY_WORLD_27`
`|` | `KEY_WORLD_28`
`|` | `KEY_WORLD_29`
`|` | `KEY_WORLD_30`
`|` | `KEY_WORLD_31`
`|` | `KEY_WORLD_32`
`|` | `KEY_WORLD_33`
`|` | `KEY_WORLD_34`
`|` | `KEY_WORLD_35`
`|` | `KEY_WORLD_36`
`|` | `KEY_WORLD_37`
`|` | `KEY_WORLD_38`
`|` | `KEY_WORLD_39`
`|` | `KEY_WORLD_40`
`|` | `KEY_WORLD_41`
`|` | `KEY_WORLD_42`
`|` | `KEY_WORLD_43`
`|` | `KEY_WORLD_44`
`|` | `KEY_WORLD_45`
`|` | `KEY_WORLD_46`
`|` | `KEY_WORLD_47`
`|` | `KEY_WORLD_48`
`|` | `KEY_WORLD_49`
`|` | `KEY_WORLD_50`
`|` | `KEY_WORLD_51`
`|` | `KEY_WORLD_52`
`|` | `KEY_WORLD_53`
`|` | `KEY_WORLD_54`
`|` | `KEY_WORLD_55`
`|` | `KEY_WORLD_56`
`|` | `KEY_WORLD_57`
`|` | `KEY_WORLD_58`
`|` | `KEY_WORLD_59`
`|` | `KEY_WORLD_60`
`|` | `KEY_WORLD_61`
`|` | `KEY_WORLD_62`
`|` | `KEY_WORLD_63`
`|` | `KEY_WORLD_64`
`|` | `KEY_WORLD_65`
`|` | `KEY_WORLD_66`
`|` | `KEY_WORLD_67`
`|` | `KEY_WORLD_68`
`|` | `KEY_WORLD_69`
`|` | `KEY_WORLD_70`
`|` | `KEY_WORLD_71`
`|` | `KEY_WORLD_72`
`|` | `KEY_WORLD_73`
`|` | `KEY_WORLD_74`
`|` | `KEY_WORLD_75`
`|` | `KEY_WORLD_76`
`|` | `KEY_WORLD_77`
`|` | `KEY_WORLD_78`
`|` | `KEY_WORLD_79`
`|` | `KEY_WORLD_80`
`|` | `KEY_WORLD_81`
`|` | `KEY_WORLD_82`
`|` | `KEY_WORLD_83`
`|` | `KEY_WORLD_84`
`|` | `KEY_WORLD_85`
`|` | `KEY_WORLD_86`
`|` | `KEY_WORLD_87`
`|` | `KEY_WORLD_88`
`|` | `KEY_WORLD_89`
`|` | `KEY_WORLD_90`
`|` | `KEY_WORLD_91`
`|` | `KEY_WORLD_92`
`|` | `KEY_WORLD_93`
`|` | `KEY_WORLD_94`
`|` | `KEY_WORLD_95`
`|` | `KEY_KP0` | `(*` | Numeric keypad | `*)`
`|` | `KEY_KP1`
`|` | `KEY_KP2`
`|` | `KEY_KP3`
`|` | `KEY_KP4`
`|` | `KEY_KP5`
`|` | `KEY_KP6`
`|` | `KEY_KP7`
`|` | `KEY_KP8`
`|` | `KEY_KP9`
`|` | `KEY_KP_PERIOD`
`|` | `KEY_KP_DIVIDE`
`|` | `KEY_KP_MULTIPLY`
`|` | `KEY_KP_MINUS`
`|` | `KEY_KP_PLUS`
`|` | `KEY_KP_ENTER`
`|` | `KEY_KP_EQUALS`
`|` | `KEY_UP` | `(*` | Arrows + Home/End pad | `*)`
`|` | `KEY_DOWN`
`|` | `KEY_RIGHT`
`|` | `KEY_LEFT`
`|` | `KEY_INSERT`
`|` | `KEY_HOME`
`|` | `KEY_END`
`|` | `KEY_PAGEUP`
`|` | `KEY_PAGEDOWN`
`|` | `KEY_F1` | `(*` | Function keys | `*)`
`|` | `KEY_F2`
`|` | `KEY_F3`
`|` | `KEY_F4`
`|` | `KEY_F5`
`|` | `KEY_F6`
`|` | `KEY_F7`
`|` | `KEY_F8`
`|` | `KEY_F9`
`|` | `KEY_F10`
`|` | `KEY_F11`
`|` | `KEY_F12`
`|` | `KEY_F13`
`|` | `KEY_F14`
`|` | `KEY_F15`
`|` | `KEY_NUMLOCK` | `(*` | Key state modifier keys | `*)`
`|` | `KEY_CAPSLOCK`
`|` | `KEY_SCROLLOCK`
`|` | `KEY_RSHIFT`
`|` | `KEY_LSHIFT`
`|` | `KEY_RCTRL`
`|` | `KEY_LCTRL`
`|` | `KEY_RALT`
`|` | `KEY_LALT`
`|` | `KEY_RMETA`
`|` | `KEY_LMETA`
`|` | `KEY_LSUPER` | `(*` | Left "Windows" key | `*)`
`|` | `KEY_RSUPER` | `(*` | Right "Windows" key | `*)`
`|` | `KEY_MODE` | `(*` | "Alt Gr" key | `*)`
`|` | `KEY_COMPOSE` | `(*` | Multi-key compose key | `*)`
`|` | `KEY_HELP` | `(*` | Miscellaneous function keys | `*)`
`|` | `KEY_PRINT`
`|` | `KEY_SYSREQ`
`|` | `KEY_BREAK`
`|` | `KEY_MENU`
`|` | `KEY_POWER` | `(*` | Power Macintosh power key | `*)`
`|` | `KEY_EURO` | `(*` | Some european keyboards | `*)`
`|` | `KEY_UNDO` | `(*` | Atari keyboard has Undo | `*)`

Concrete type describing keyboard keys ("keysym")

    val int_of_key : t -> int

get the SDL keysym of the key

    val key_of_int : int -> t

get the key corresponding to a SDL keysym
Raises `Invalid_arg` if not a valid SDL keysym

    val char_of_key : t -> char

Returns a (iso-8859-1) character corresponding to a key
Raises `Invalid_arg` if corresponding SDL keysym is > 255

    val num_keys : int

number of keys in the Sdlkey.t variant type : should be `232`

    val max_code : int

highest SDL keysym : should be `322`

    val name : t -> string

Returns a short string describing the key

### Keyboard handling

    val enable_unicode : bool -> unit

Enable unicode translation of keysyms for keyboard events

    val query_unicode : unit -> bool

    val disable_key_repeat : unit -> unit

Disable keyboard repeat

    val enable_key_repeat : ?delay:int -> ?interval:int -> unit -> unit

Enable keyboard repeat
`delay` : initial delay in ms between the time when a key is pressed, and keyboard repeat begins
`interval` : the time in ms between keyboard repeat events

    val get_key_state : unit ->
           (int, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Array1.t

Get a snapshot of the current state of the keyboard.
Returns an array of keystates, indexed by the SDL keysyms (cf `Sdlkey.int_of_key`)

    val is_key_pressed : t -> bool

Checks wether a key is currently pressed on the keyboard.

### Key modifiers

    type mod_state = int

The following values are flags. Use with `land`, `lor`, etc.

    val kmod_none : mod_state

    val kmod_lshift : mod_state

    val kmod_rshift : mod_state

    val kmod_lctrl : mod_state

    val kmod_rctrl : mod_state

    val kmod_lalt : mod_state

    val kmod_ralt : mod_state

    val kmod_lmeta : mod_state

    val kmod_rmeta : mod_state

    val kmod_num : mod_state

    val kmod_caps : mod_state

    val kmod_mode : mod_state

    val kmod_ctrl : mod_state

    val kmod_shift : mod_state

    val kmod_alt : mod_state

    val kmod_meta : mod_state

    val get_mod_state : unit -> mod_state

Get the current key modifier state

    val set_mod_state : mod_state -> unit

Set the current key modifier state This does not change the keyboard state, only the key modifier flags.