src/video/uikit/keyinfotable.h
author Sam Lantinga <slouken@libsdl.org>
Tue, 01 Feb 2011 09:02:53 -0800
changeset 5133 b915b3181cc2
parent 5081 25d4feb7c127
child 5134 c63b901d97ab
permissions -rw-r--r--
Fixed spacing, adding vim spacing hints
     1 /*
     2     SDL - Simple DirectMedia Layer
     3     Copyright (C) 1997-2010 Sam Lantinga
     4 
     5     This library is free software; you can redistribute it and/or
     6     modify it under the terms of the GNU Lesser General Public
     7     License as published by the Free Software Foundation; either
     8     version 2.1 of the License, or (at your option) any later version.
     9 
    10     This library is distributed in the hope that it will be useful,
    11     but WITHOUT ANY WARRANTY; without even the implied warranty of
    12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    13     Lesser General Public License for more details.
    14 
    15     You should have received a copy of the GNU Lesser General Public
    16     License along with this library; if not, write to the Free Software
    17     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
    18 
    19     Sam Lantinga
    20     slouken@libsdl.org
    21 */
    22 
    23 #ifndef _UIKIT_KeyInfo
    24 #define _UIKIT_KeyInfo
    25 
    26 #include "SDL_scancode.h"
    27 
    28 /*
    29     This file is used by the keyboard code in SDL_uikitview.m to convert between characters
    30     passed in from the iPhone's virtual keyboard, and tuples of SDL_ScanCodes and SDL_keymods.
    31     For example unicharToUIKeyInfoTable['a'] would give you the scan code and keymod for lower
    32     case a.
    33 */
    34 
    35 typedef struct
    36 {
    37     SDL_ScanCode code;
    38     Uint16 mod;
    39 } UIKitKeyInfo;
    40 
    41 /* So far only ASCII characters here */
    42 static UIKitKeyInfo unicharToUIKeyInfoTable[] = {
    43 /* *INDENT-OFF* */
    44 /*  0 */  {  SDL_SCANCODE_UNKNOWN, 0 },
    45 /*  1 */  {  SDL_SCANCODE_UNKNOWN, 0 },
    46 /*  2 */  {  SDL_SCANCODE_UNKNOWN, 0 },
    47 /*  3 */  {  SDL_SCANCODE_UNKNOWN, 0 },
    48 /*  4 */  {  SDL_SCANCODE_UNKNOWN, 0 },
    49 /*  5 */  {  SDL_SCANCODE_UNKNOWN, 0 },
    50 /*  6 */  {  SDL_SCANCODE_UNKNOWN, 0 },
    51 /*  7 */  {  SDL_SCANCODE_UNKNOWN, 0 },
    52 /*  8 */  {  SDL_SCANCODE_UNKNOWN, 0 },
    53 /*  9 */  {  SDL_SCANCODE_UNKNOWN, 0 },
    54 /*  10 */ {   SDL_SCANCODE_UNKNOWN, 0 },
    55 /*  11 */ {   SDL_SCANCODE_UNKNOWN, 0 },
    56 /*  12 */ {   SDL_SCANCODE_UNKNOWN, 0 },
    57 /*  13 */ {   SDL_SCANCODE_UNKNOWN, 0 },
    58 /*  14 */ {   SDL_SCANCODE_UNKNOWN, 0 },
    59 /*  15 */ {   SDL_SCANCODE_UNKNOWN, 0 },
    60 /*  16 */ {   SDL_SCANCODE_UNKNOWN, 0 },
    61 /*  17 */ {   SDL_SCANCODE_UNKNOWN, 0 },
    62 /*  18 */ {   SDL_SCANCODE_UNKNOWN, 0 },
    63 /*  19 */ {   SDL_SCANCODE_UNKNOWN, 0 },
    64 /*  20 */ {   SDL_SCANCODE_UNKNOWN, 0 },
    65 /*  21 */ {   SDL_SCANCODE_UNKNOWN, 0 },
    66 /*  22 */ {   SDL_SCANCODE_UNKNOWN, 0 },
    67 /*  23 */ {   SDL_SCANCODE_UNKNOWN, 0 },
    68 /*  24 */ {   SDL_SCANCODE_UNKNOWN, 0 },
    69 /*  25 */ {   SDL_SCANCODE_UNKNOWN, 0 },
    70 /*  26 */ {   SDL_SCANCODE_UNKNOWN, 0 },
    71 /*  27 */ {   SDL_SCANCODE_UNKNOWN, 0 },
    72 /*  28 */ {   SDL_SCANCODE_UNKNOWN, 0 },
    73 /*  29 */ {   SDL_SCANCODE_UNKNOWN, 0 },
    74 /*  30 */ {   SDL_SCANCODE_UNKNOWN, 0 },
    75 /*  31 */ {   SDL_SCANCODE_UNKNOWN, 0 },
    76 /*  32 */ {   SDL_SCANCODE_SPACE, 0 },
    77 /*  33 */ {   SDL_SCANCODE_1,    KMOD_SHIFT },        /* plus shift modifier '!' */
    78 /*  34 */ {   SDL_SCANCODE_APOSTROPHE, KMOD_SHIFT },    /* plus shift modifier '"' */
    79 /*  35 */ {   SDL_SCANCODE_3, KMOD_SHIFT },            /* plus shift modifier '#' */
    80 /*  36 */ {   SDL_SCANCODE_4, KMOD_SHIFT },            /* plus shift modifier '$' */
    81 /*  37 */ {   SDL_SCANCODE_5, KMOD_SHIFT },            /* plus shift modifier '%' */
    82 /*  38 */ {   SDL_SCANCODE_7, KMOD_SHIFT },            /* plus shift modifier '&' */
    83 /*  39 */ {   SDL_SCANCODE_APOSTROPHE, 0 },    /* '''                       */
    84 /*  40 */ {   SDL_SCANCODE_9, KMOD_SHIFT },             /* plus shift modifier '(' */
    85 /*  41 */ {   SDL_SCANCODE_0, KMOD_SHIFT },            /* plus shift modifier ')' */
    86 /*  42 */ {   SDL_SCANCODE_8, KMOD_SHIFT },            /* '*' */
    87 /*  43 */ {   SDL_SCANCODE_EQUALS, KMOD_SHIFT },    /* plus shift modifier '+' */
    88 /*  44 */ {   SDL_SCANCODE_COMMA, 0 },        /* ','                       */
    89 /*  45 */ {   SDL_SCANCODE_MINUS, 0 },        /* '-'                       */
    90 /*  46 */ {   SDL_SCANCODE_PERIOD, 0 },        /* '.'                       */
    91 /*  47 */ {   SDL_SCANCODE_SLASH, 0 },        /* '/'                       */
    92 /*  48 */ {   SDL_SCANCODE_0, 0    },        
    93 /*  49 */ {   SDL_SCANCODE_1, 0 },
    94 /*  50 */ {   SDL_SCANCODE_2, 0 },
    95 /*  51 */ {   SDL_SCANCODE_3, 0 },
    96 /*  52 */ {   SDL_SCANCODE_4, 0 },
    97 /*  53 */ {   SDL_SCANCODE_5, 0 },
    98 /*  54 */ {   SDL_SCANCODE_6, 0 },
    99 /*  55 */ {   SDL_SCANCODE_7, 0 },
   100 /*  56 */ {   SDL_SCANCODE_8, 0 },
   101 /*  57 */ {   SDL_SCANCODE_9, 0 },
   102 /*  58 */ {   SDL_SCANCODE_SEMICOLON,  KMOD_SHIFT },    /* plus shift modifier ';' */
   103 /*  59 */ {   SDL_SCANCODE_SEMICOLON, 0 },
   104 /*  60 */ {   SDL_SCANCODE_COMMA,  KMOD_SHIFT },         /* plus shift modifier '<' */
   105 /*  61 */ {   SDL_SCANCODE_EQUALS, 0 },
   106 /*  62 */ {   SDL_SCANCODE_PERIOD,  KMOD_SHIFT },        /* plus shift modifier '>' */
   107 /*  63 */ {   SDL_SCANCODE_SLASH,  KMOD_SHIFT },        /* plus shift modifier '?' */
   108 /*  64 */ {   SDL_SCANCODE_2,  KMOD_SHIFT },            /* plus shift modifier '@' */
   109 /*  65 */ {   SDL_SCANCODE_A,  KMOD_SHIFT },            /* all the following need shift modifiers */
   110 /*  66 */ {   SDL_SCANCODE_B,  KMOD_SHIFT },
   111 /*  67 */ {   SDL_SCANCODE_C,  KMOD_SHIFT },
   112 /*  68 */ {   SDL_SCANCODE_D,  KMOD_SHIFT },
   113 /*  69 */ {   SDL_SCANCODE_E,  KMOD_SHIFT },
   114 /*  70 */ {   SDL_SCANCODE_F,  KMOD_SHIFT },
   115 /*  71 */ {   SDL_SCANCODE_G,  KMOD_SHIFT },
   116 /*  72 */ {   SDL_SCANCODE_H,  KMOD_SHIFT },
   117 /*  73 */ {   SDL_SCANCODE_I,  KMOD_SHIFT },
   118 /*  74 */ {   SDL_SCANCODE_J,  KMOD_SHIFT },
   119 /*  75 */ {   SDL_SCANCODE_K,  KMOD_SHIFT },
   120 /*  76 */ {   SDL_SCANCODE_L,  KMOD_SHIFT },
   121 /*  77 */ {   SDL_SCANCODE_M,  KMOD_SHIFT },
   122 /*  78 */ {   SDL_SCANCODE_N,  KMOD_SHIFT },
   123 /*  79 */ {   SDL_SCANCODE_O,  KMOD_SHIFT },
   124 /*  80 */ {   SDL_SCANCODE_P,  KMOD_SHIFT },
   125 /*  81 */ {   SDL_SCANCODE_Q,  KMOD_SHIFT },
   126 /*  82 */ {   SDL_SCANCODE_R,  KMOD_SHIFT },
   127 /*  83 */ {   SDL_SCANCODE_S,  KMOD_SHIFT },
   128 /*  84 */ {   SDL_SCANCODE_T,  KMOD_SHIFT },
   129 /*  85 */ {   SDL_SCANCODE_U,  KMOD_SHIFT },
   130 /*  86 */ {   SDL_SCANCODE_V,  KMOD_SHIFT },
   131 /*  87 */ {   SDL_SCANCODE_W,  KMOD_SHIFT },
   132 /*  88 */ {   SDL_SCANCODE_X,  KMOD_SHIFT },
   133 /*  89 */ {   SDL_SCANCODE_Y,  KMOD_SHIFT },
   134 /*  90 */ {   SDL_SCANCODE_Z,  KMOD_SHIFT },
   135 /*  91 */ {   SDL_SCANCODE_LEFTBRACKET, 0 },
   136 /*  92 */ {   SDL_SCANCODE_BACKSLASH, 0 },
   137 /*  93 */ {   SDL_SCANCODE_RIGHTBRACKET, 0 },
   138 /*  94 */ {   SDL_SCANCODE_6,  KMOD_SHIFT },            /* plus shift modifier '^' */
   139 /*  95 */ {   SDL_SCANCODE_MINUS,  KMOD_SHIFT },        /* plus shift modifier '_' */
   140 /*  96 */ {   SDL_SCANCODE_GRAVE,  KMOD_SHIFT },        /* '`'
   141 /*  97 */ {   SDL_SCANCODE_A, 0    },    
   142 /*  98 */ {   SDL_SCANCODE_B, 0 },
   143 /*  99 */ {   SDL_SCANCODE_C, 0 },
   144 /*  100 */{    SDL_SCANCODE_D, 0 },
   145 /*  101 */{    SDL_SCANCODE_E, 0 },
   146 /*  102 */{    SDL_SCANCODE_F, 0 },
   147 /*  103 */{    SDL_SCANCODE_G, 0 },
   148 /*  104 */{    SDL_SCANCODE_H, 0 },
   149 /*  105 */{    SDL_SCANCODE_I, 0 },
   150 /*  106 */{    SDL_SCANCODE_J, 0 },
   151 /*  107 */{    SDL_SCANCODE_K, 0 },
   152 /*  108 */{    SDL_SCANCODE_L, 0 },
   153 /*  109 */{    SDL_SCANCODE_M, 0 },
   154 /*  110 */{    SDL_SCANCODE_N, 0 },
   155 /*  111 */{    SDL_SCANCODE_O, 0 },
   156 /*  112 */{    SDL_SCANCODE_P, 0 },
   157 /*  113 */{    SDL_SCANCODE_Q, 0 },
   158 /*  114 */{    SDL_SCANCODE_R, 0 },
   159 /*  115 */{    SDL_SCANCODE_S, 0 },
   160 /*  116 */{    SDL_SCANCODE_T, 0 },
   161 /*  117 */{    SDL_SCANCODE_U, 0 },
   162 /*  118 */{    SDL_SCANCODE_V, 0 },
   163 /*  119 */{    SDL_SCANCODE_W, 0 },
   164 /*  120 */{    SDL_SCANCODE_X, 0 },
   165 /*  121 */{    SDL_SCANCODE_Y, 0 },
   166 /*  122 */{    SDL_SCANCODE_Z, 0 },
   167 /*  123 */{    SDL_SCANCODE_LEFTBRACKET, KMOD_SHIFT },    /* plus shift modifier '{' */
   168 /*  124 */{    SDL_SCANCODE_BACKSLASH, KMOD_SHIFT },    /* plus shift modifier '|' */
   169 /*  125 */{    SDL_SCANCODE_RIGHTBRACKET, KMOD_SHIFT },    /* plus shift modifier '}' */
   170 /*  126 */{    SDL_SCANCODE_GRAVE, KMOD_SHIFT },         /* plus shift modifier '~' */
   171 /*  127 */{    SDL_SCANCODE_DELETE, KMOD_SHIFT }
   172 /* *INDENT-ON* */
   173 };
   174 
   175 #endif /* UIKitKeyInfo */
   176 
   177 /* vi: set ts=4 sw=4 expandtab: */