textinput/ptienginev2/languages/PtiKeymappings_ITUT_83.cpp
branchRCL_3
changeset 11 c8fb4cf7b3ae
equal deleted inserted replaced
9:e6a39382bb9c 11:c8fb4cf7b3ae
       
     1 /*
       
     2 * Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of the License "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: Keymapping data implementation for 
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 
       
    21 
       
    22 
       
    23 
       
    24 
       
    25 
       
    26 
       
    27 
       
    28 
       
    29 #include <PtiKeyMapData.h>
       
    30 
       
    31 #include <languages.hrh>
       
    32 
       
    33 #include "PtiKeymappings_ITUT_83.h"
       
    34 
       
    35 //
       
    36 // Multitap keymap data table
       
    37 //
       
    38 const TUint16 MultitapData_table_Spanish[] =
       
    39     {
       
    40      0x2e,0x2c,0x3f,0x21,0x31,0x40,0x27,0x2d,0x5f,0x28,0x29,0x3a,0x3b,0x26,0x2f,0x25,0x2a,0x23,0x2b,0x3c,0x3d,0x3e,0x22,0x24,0xa3,0xa7,0xa5,0xa4,0xa1,0xbf,
       
    41      0x61,0x62,0x63,0x32,0xe1,0xe0,0xaa,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
       
    42      0x64,0x65,0x66,0x33,0xe9,0xe8,0xeb,0xea,0xf0,
       
    43      0x67,0x68,0x69,0x34,0xed,0xee,0xef,0xec,
       
    44      0x6a,0x6b,0x6c,0x35,0xa3,
       
    45      0x6d,0x6e,0x6f,0x36,0xf1,0xf3,0xba,0xf6,0xf4,0xf2,0xf5,0xf8,
       
    46      0x70,0x71,0x72,0x73,0x37,0xdf,0x24,
       
    47      0x74,0x75,0x76,0x38,0xfa,0xfc,0xf9,0xfb,
       
    48      0x77,0x78,0x79,0x7a,0x39,0xfd,0xfe,
       
    49      0x20,0x30,0x21b2,
       
    50      0x2e,0x2c,0x3f,0x21,0x31,0x40,0x27,0x2d,0x5f,0x28,0x29,0x3a,0x3b,0x26,0x2f,0x25,0x2a,0x23,0x2b,0x3c,0x3d,0x3e,0x22,0x24,0xa3,0xa7,0xa5,0xa4,0xa1,0xbf,
       
    51      0x41,0x42,0x43,0x32,0xc1,0xc0,0xaa,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,
       
    52      0x44,0x45,0x46,0x33,0xc9,0xc8,0xcb,0xca,0xd0,
       
    53      0x47,0x48,0x49,0x34,0xcd,0xce,0xcf,0xcc,
       
    54      0x4a,0x4b,0x4c,0x35,0xa3,
       
    55      0x4d,0x4e,0x4f,0x36,0xd1,0xd3,0xba,0xd6,0xd4,0xd2,0xd5,0xd8,
       
    56      0x50,0x51,0x52,0x53,0x37,0x24,
       
    57      0x54,0x55,0x56,0x38,0xda,0xdc,0xd9,0xdb,
       
    58      0x57,0x58,0x59,0x5a,0x39,0xdd,0xde,
       
    59      0x20,0x30,0x21b2,
       
    60     };
       
    61 
       
    62 const TInt KMultitapDataSize_Spanish = 203;
       
    63 
       
    64 
       
    65 const TPtiKeyBinding MultitapKeyBindings_table_Spanish[] =
       
    66     {
       
    67         {EPtiKey1, EPtiCaseLower, 0, 30},
       
    68         {EPtiKey2, EPtiCaseLower, 30, 13},
       
    69         {EPtiKey3, EPtiCaseLower, 43, 9},
       
    70         {EPtiKey4, EPtiCaseLower, 52, 8},
       
    71         {EPtiKey5, EPtiCaseLower, 60, 5},
       
    72         {EPtiKey6, EPtiCaseLower, 65, 12},
       
    73         {EPtiKey7, EPtiCaseLower, 77, 7},
       
    74         {EPtiKey8, EPtiCaseLower, 84, 8},
       
    75         {EPtiKey9, EPtiCaseLower, 92, 7},
       
    76         {EPtiKeyStar, EPtiCaseLower, 99, 0},
       
    77         {EPtiKey0, EPtiCaseLower, 99, 3},
       
    78         {EPtiKeyHash, EPtiCaseLower, 102, 0},
       
    79         {EPtiKey1, EPtiCaseUpper, 102, 30},
       
    80         {EPtiKey2, EPtiCaseUpper, 132, 13},
       
    81         {EPtiKey3, EPtiCaseUpper, 145, 9},
       
    82         {EPtiKey4, EPtiCaseUpper, 154, 8},
       
    83         {EPtiKey5, EPtiCaseUpper, 162, 5},
       
    84         {EPtiKey6, EPtiCaseUpper, 167, 12},
       
    85         {EPtiKey7, EPtiCaseUpper, 179, 6},
       
    86         {EPtiKey8, EPtiCaseUpper, 185, 8},
       
    87         {EPtiKey9, EPtiCaseUpper, 193, 7},
       
    88         {EPtiKeyStar, EPtiCaseUpper, 200, 0},
       
    89         {EPtiKey0, EPtiCaseUpper, 200, 3},
       
    90         {EPtiKeyHash, EPtiCaseUpper, 203, 0},
       
    91     };
       
    92 
       
    93 const TInt KMaxMultitapIndex_Spanish = 24;
       
    94 
       
    95 //
       
    96 // StandardQwerty keymap data table
       
    97 //
       
    98 const TUint16 StandardQwertyData_table_Spanish[] =
       
    99     {
       
   100      0x0071,
       
   101      0x0077,
       
   102      0x0065,0x00E9,
       
   103      0x0072,0x0155,
       
   104      0x0074,
       
   105      0x0079,0x00FD,
       
   106      0x0075,0x00FA,
       
   107      0x0069,0x00ED,
       
   108      0x006F,0x00F3,
       
   109      0x0070,
       
   110      0xF001,0x00B4,
       
   111      0x0061,0x00E1,
       
   112      0x0073,0x015B,
       
   113      0x0064,
       
   114      0x0066,
       
   115      0x0067,
       
   116      0x0068,
       
   117      0x006A,
       
   118      0x006B,
       
   119      0x006C,0x013A,
       
   120      0x00F1,
       
   121      0x00E7,
       
   122      0x007A,0x017A,
       
   123      0x0078,
       
   124      0x0063,0x0107,
       
   125      0x0076,
       
   126      0x0062,
       
   127      0x006E,0x0144,
       
   128      0x006D,
       
   129      0x002C,
       
   130      0x002E,
       
   131      0x003F,
       
   132      0x0021,
       
   133      0x0051,
       
   134      0x0057,
       
   135      0x0045,0x00C9,
       
   136      0x0052,0x0154,
       
   137      0x0054,
       
   138      0x0059,0x00DD,
       
   139      0x0055,0x00DA,
       
   140      0x0049,0x00CD,
       
   141      0x004F,0x00D3,
       
   142      0x0050,
       
   143      0xF001,0x00B4,
       
   144      0x0041,0x00C1,
       
   145      0x0053,0x015A,
       
   146      0x0044,
       
   147      0x0046,
       
   148      0x0047,
       
   149      0x0048,
       
   150      0x004A,
       
   151      0x004B,
       
   152      0x004C,0x0139,
       
   153      0x00D1,
       
   154      0x00C7,
       
   155      0x005A,0x0179,
       
   156      0x0058,
       
   157      0x0043,0x0106,
       
   158      0x0056,
       
   159      0x0042,
       
   160      0x004E,0x0143,
       
   161      0x004D,
       
   162      0x0027,
       
   163      0x002D,
       
   164      0x00BF,
       
   165      0x00A1,
       
   166     };
       
   167 
       
   168 const TInt KStandardQwertyDataSize_Spanish = 92;
       
   169 
       
   170 
       
   171 const TPtiKeyBinding StandardQwertyKeyBindings_table_Spanish[] =
       
   172     {
       
   173         {EPtiKeyQwertyAtCharacter, EPtiCaseLower, 0, 1},
       
   174         {EPtiKeyQwerty1, EPtiCaseLower, 1, 1},
       
   175         {EPtiKeyQwerty2, EPtiCaseLower, 2, 2},
       
   176         {EPtiKeyQwerty3, EPtiCaseLower, 4, 2},
       
   177         {EPtiKeyQwerty4, EPtiCaseLower, 6, 1},
       
   178         {EPtiKeyQwerty5, EPtiCaseLower, 7, 2},
       
   179         {EPtiKeyQwerty6, EPtiCaseLower, 9, 2},
       
   180         {EPtiKeyQwerty7, EPtiCaseLower, 11, 2},
       
   181         {EPtiKeyQwerty8, EPtiCaseLower, 13, 2},
       
   182         {EPtiKeyQwerty9, EPtiCaseLower, 15, 1},
       
   183         {EPtiKeyQwerty0, EPtiCaseLower, 16, 2},
       
   184         {EPtiKeyQwertyPlus, EPtiCaseLower, 18, 2},
       
   185         {EPtiKeyQwertyQ, EPtiCaseLower, 20, 2},
       
   186         {EPtiKeyQwertyW, EPtiCaseLower, 22, 1},
       
   187         {EPtiKeyQwertyE, EPtiCaseLower, 23, 1},
       
   188         {EPtiKeyQwertyR, EPtiCaseLower, 24, 1},
       
   189         {EPtiKeyQwertyT, EPtiCaseLower, 25, 1},
       
   190         {EPtiKeyQwertyY, EPtiCaseLower, 26, 1},
       
   191         {EPtiKeyQwertyU, EPtiCaseLower, 27, 1},
       
   192         {EPtiKeyQwertyI, EPtiCaseLower, 28, 2},
       
   193         {EPtiKeyQwertyO, EPtiCaseLower, 30, 1},
       
   194         {EPtiKeyQwertyP, EPtiCaseLower, 31, 1},
       
   195         {EPtiKeyQwertyMinus, EPtiCaseLower, 32, 0},
       
   196         {EPtiKeyQwertyHash, EPtiCaseLower, 32, 2},
       
   197         {EPtiKeyQwertyA, EPtiCaseLower, 34, 1},
       
   198         {EPtiKeyQwertyS, EPtiCaseLower, 35, 2},
       
   199         {EPtiKeyQwertyD, EPtiCaseLower, 37, 1},
       
   200         {EPtiKeyQwertyF, EPtiCaseLower, 38, 1},
       
   201         {EPtiKeyQwertyG, EPtiCaseLower, 39, 2},
       
   202         {EPtiKeyQwertyH, EPtiCaseLower, 41, 1},
       
   203         {EPtiKeyQwertyJ, EPtiCaseLower, 42, 1},
       
   204         {EPtiKeyQwertyK, EPtiCaseLower, 43, 1},
       
   205         {EPtiKeyQwertyL, EPtiCaseLower, 44, 1},
       
   206         {EPtiKeyQwertySemicolon, EPtiCaseLower, 45, 1},
       
   207         {EPtiKeyQwertyApostrophe, EPtiCaseLower, 46, 0},
       
   208         {0x5b, EPtiCaseLower, 46, 0},
       
   209         {EPtiKeyQwertyZ, EPtiCaseLower, 46, 0},
       
   210         {EPtiKeyQwertyX, EPtiCaseLower, 46, 0},
       
   211         {EPtiKeyQwertyC, EPtiCaseLower, 46, 0},
       
   212         {EPtiKeyQwertyV, EPtiCaseLower, 46, 0},
       
   213         {EPtiKeyQwertyB, EPtiCaseLower, 46, 0},
       
   214         {EPtiKeyQwertyN, EPtiCaseLower, 46, 0},
       
   215         {EPtiKeyQwertyM, EPtiCaseLower, 46, 0},
       
   216         {EPtiKeyQwertyComma, EPtiCaseLower, 46, 0},
       
   217         {EPtiKeyQwertyFullstop, EPtiCaseLower, 46, 0},
       
   218         {EPtiKeyQwertySlash, EPtiCaseLower, 46, 0},
       
   219         {EPtiKeyQwertyAtCharacter, EPtiCaseUpper, 46, 1},
       
   220         {EPtiKeyQwerty1, EPtiCaseUpper, 47, 1},
       
   221         {EPtiKeyQwerty2, EPtiCaseUpper, 48, 2},
       
   222         {EPtiKeyQwerty3, EPtiCaseUpper, 50, 2},
       
   223         {EPtiKeyQwerty4, EPtiCaseUpper, 52, 1},
       
   224         {EPtiKeyQwerty5, EPtiCaseUpper, 53, 2},
       
   225         {EPtiKeyQwerty6, EPtiCaseUpper, 55, 2},
       
   226         {EPtiKeyQwerty7, EPtiCaseUpper, 57, 2},
       
   227         {EPtiKeyQwerty8, EPtiCaseUpper, 59, 2},
       
   228         {EPtiKeyQwerty9, EPtiCaseUpper, 61, 1},
       
   229         {EPtiKeyQwerty0, EPtiCaseUpper, 62, 2},
       
   230         {EPtiKeyQwertyPlus, EPtiCaseUpper, 64, 2},
       
   231         {EPtiKeyQwertyQ, EPtiCaseUpper, 66, 2},
       
   232         {EPtiKeyQwertyW, EPtiCaseUpper, 68, 1},
       
   233         {EPtiKeyQwertyE, EPtiCaseUpper, 69, 1},
       
   234         {EPtiKeyQwertyR, EPtiCaseUpper, 70, 1},
       
   235         {EPtiKeyQwertyT, EPtiCaseUpper, 71, 1},
       
   236         {EPtiKeyQwertyY, EPtiCaseUpper, 72, 1},
       
   237         {EPtiKeyQwertyU, EPtiCaseUpper, 73, 1},
       
   238         {EPtiKeyQwertyI, EPtiCaseUpper, 74, 2},
       
   239         {EPtiKeyQwertyO, EPtiCaseUpper, 76, 1},
       
   240         {EPtiKeyQwertyP, EPtiCaseUpper, 77, 1},
       
   241         {EPtiKeyQwertyMinus, EPtiCaseUpper, 78, 0},
       
   242         {EPtiKeyQwertyHash, EPtiCaseUpper, 78, 2},
       
   243         {EPtiKeyQwertyA, EPtiCaseUpper, 80, 1},
       
   244         {EPtiKeyQwertyS, EPtiCaseUpper, 81, 2},
       
   245         {EPtiKeyQwertyD, EPtiCaseUpper, 83, 1},
       
   246         {EPtiKeyQwertyF, EPtiCaseUpper, 84, 1},
       
   247         {EPtiKeyQwertyG, EPtiCaseUpper, 85, 2},
       
   248         {EPtiKeyQwertyH, EPtiCaseUpper, 87, 1},
       
   249         {EPtiKeyQwertyJ, EPtiCaseUpper, 88, 1},
       
   250         {EPtiKeyQwertyK, EPtiCaseUpper, 89, 1},
       
   251         {EPtiKeyQwertyL, EPtiCaseUpper, 90, 1},
       
   252         {EPtiKeyQwertySemicolon, EPtiCaseUpper, 91, 1},
       
   253         {EPtiKeyQwertyApostrophe, EPtiCaseUpper, 92, 0},
       
   254         {0x5b, EPtiCaseUpper, 92, 0},
       
   255         {EPtiKeyQwertyZ, EPtiCaseUpper, 92, 0},
       
   256         {EPtiKeyQwertyX, EPtiCaseUpper, 92, 0},
       
   257         {EPtiKeyQwertyC, EPtiCaseUpper, 92, 0},
       
   258         {EPtiKeyQwertyV, EPtiCaseUpper, 92, 0},
       
   259         {EPtiKeyQwertyB, EPtiCaseUpper, 92, 0},
       
   260         {EPtiKeyQwertyN, EPtiCaseUpper, 92, 0},
       
   261         {EPtiKeyQwertyM, EPtiCaseUpper, 92, 0},
       
   262         {EPtiKeyQwertyComma, EPtiCaseUpper, 92, 0},
       
   263         {EPtiKeyQwertyFullstop, EPtiCaseUpper, 92, 0},
       
   264         {EPtiKeyQwertySlash, EPtiCaseUpper, 92, 0},
       
   265     };
       
   266 
       
   267 const TInt KMaxStandardQwertyIndex_Spanish = 92;
       
   268 
       
   269 
       
   270 //
       
   271 // Dead key data table for StandardQwerty
       
   272 //
       
   273 const TUint16 StandardQwertyDeadKeyData_table_Spanish[] =
       
   274     {
       
   275     2,  0x00E9,0xf000,0xf000,0xf000,0xf000,
       
   276     3,  0x0155,0xf000,0xf000,0xf000,0xf000,
       
   277     5,  0x00FD,0xf000,0xf000,0xf000,0xf000,
       
   278     6,  0x00FA,0xf000,0xf000,0xf000,0xf000,
       
   279     7,  0x00ED,0xf000,0xf000,0xf000,0xf000,
       
   280     8,  0x00F3,0xf000,0xf000,0xf000,0xf000,
       
   281     11,  0x00E1,0xf000,0xf000,0xf000,0xf000,
       
   282     12,  0x015B,0xf000,0xf000,0xf000,0xf000,
       
   283     19,  0x013A,0xf000,0xf000,0xf000,0xf000,
       
   284     22,  0x017A,0xf000,0xf000,0xf000,0xf000,
       
   285     24,  0x0107,0xf000,0xf000,0xf000,0xf000,
       
   286     27,  0x0144,0xf000,0xf000,0xf000,0xf000,
       
   287     35,  0x00C9,0xf000,0xf000,0xf000,0xf000,
       
   288     36,  0x0154,0xf000,0xf000,0xf000,0xf000,
       
   289     38,  0x00DD,0xf000,0xf000,0xf000,0xf000,
       
   290     39,  0x00DA,0xf000,0xf000,0xf000,0xf000,
       
   291     40,  0x00CD,0xf000,0xf000,0xf000,0xf000,
       
   292     41,  0x00D3,0xf000,0xf000,0xf000,0xf000,
       
   293     44,  0x00C1,0xf000,0xf000,0xf000,0xf000,
       
   294     45,  0x015A,0xf000,0xf000,0xf000,0xf000,
       
   295     52,  0x0139,0xf000,0xf000,0xf000,0xf000,
       
   296     55,  0x0179,0xf000,0xf000,0xf000,0xf000,
       
   297     57,  0x0106,0xf000,0xf000,0xf000,0xf000,
       
   298     60,  0x0143,0xf000,0xf000,0xf000,0xf000,
       
   299     };
       
   300 
       
   301 const TInt KStandardQwertyDeadKeyTableRows_Spanish = 24;
       
   302 
       
   303 //
       
   304 // MiniQwerty keymap data table
       
   305 //
       
   306 const TUint16 MiniQwertyData_table_Spanish[] =
       
   307     {
       
   308      0x0071,
       
   309      0x0077,
       
   310      0x0065,0x00E9,0x00EB,0x00E8,0x00EA,
       
   311      0x0072,
       
   312      0x0074,0x00FE,
       
   313      0x0079,0x00FD,
       
   314      0x0075,0x00FC,0x00FA,0x00F9,0x00FB,
       
   315      0x0069,0x00ED,0x00EF,0x00EC,0x00EE,
       
   316      0x006F,0x00F3,0x00F6,0x00F2,0x00F4,0x00F5,0x00BA,0x00F8,
       
   317      0x0070,
       
   318      0x0061,0x00E1,0x00AA,0x00E4,0x00E0,0x00E2,0x00E3,0x00E5,0x00E6,
       
   319      0x0073,0x00DF,
       
   320      0x0064,0x00F0,
       
   321      0x0066,
       
   322      0x0067,
       
   323      0x0068,
       
   324      0x006A,
       
   325      0x006B,
       
   326      0x006C,
       
   327      0x007A,
       
   328      0x0078,
       
   329      0x0063,0x00E7,
       
   330      0x0076,
       
   331      0x0062,
       
   332      0x006E,0x00F1,
       
   333      0x006D,
       
   334      0x00F1,
       
   335      0x00E7,
       
   336      0x0040,
       
   337      0x0027,
       
   338      0x002C,
       
   339      0x002E,
       
   340      0x0051,
       
   341      0x0057,
       
   342      0x0045,0x00C9,0x00CB,0x00C8,0x00CA,
       
   343      0x0052,
       
   344      0x0054,0x00DE,
       
   345      0x0059,0x00DD,
       
   346      0x0055,0x00DC,0x00DA,0x00D9,0x00DB,
       
   347      0x0049,0x00CD,0x00CF,0x00CC,0x00CE,
       
   348      0x004F,0x00D3,0x00D6,0x00D2,0x00D4,0x00D5,0x00BA,0x00D8,
       
   349      0x0050,
       
   350      0x0041,0x00C1,0x00AA,0x00C4,0x00C0,0x00C2,0x00C3,0x00C5,0x00C6,
       
   351      0x0053,
       
   352      0x0044,0x00D0,
       
   353      0x0046,
       
   354      0x0047,
       
   355      0x0048,
       
   356      0x004A,
       
   357      0x004B,
       
   358      0x004C,
       
   359      0x005A,
       
   360      0x0058,
       
   361      0x0043,0x00C7,
       
   362      0x0056,
       
   363      0x0042,
       
   364      0x004E,0x00D1,
       
   365      0x004D,
       
   366      0x00D1,
       
   367      0x00C7,
       
   368      0x003B,
       
   369      0x003A,
       
   370      0x0021,
       
   371      0x003F,
       
   372      0x0031,
       
   373      0x0031,
       
   374      0x0032,
       
   375      0x0032,
       
   376      0x0033,
       
   377      0x0033,
       
   378      0x002B,
       
   379      0x00A1,
       
   380      0x00BF,
       
   381      0x0034,
       
   382      0x0034,
       
   383      0x0035,
       
   384      0x0035,
       
   385      0x0036,
       
   386      0x0036,
       
   387      0x002D,
       
   388      0x002F,
       
   389      0x0022,
       
   390      0x0037,
       
   391      0x0037,
       
   392      0x0038,
       
   393      0x0038,
       
   394      0x0039,
       
   395      0x0039,
       
   396      0x003D,
       
   397      0x002A,
       
   398      0x002A,
       
   399      0x0030,
       
   400      0x0030,
       
   401      0x0023,
       
   402      0x0023,
       
   403     };
       
   404 
       
   405 const TInt KMiniQwertyDataSize_Spanish = 160;
       
   406 
       
   407 
       
   408 const TPtiKeyBinding MiniQwertyKeyBindings_table_Spanish[] =
       
   409     {
       
   410         {EPtiKeyQwerty1, EPtiCaseLower, 0, 1},
       
   411         {EPtiKeyQwerty2, EPtiCaseLower, 1, 1},
       
   412         {EPtiKeyQwerty3, EPtiCaseLower, 2, 5},
       
   413         {EPtiKeyQwerty4, EPtiCaseLower, 7, 1},
       
   414         {EPtiKeyQwerty5, EPtiCaseLower, 8, 2},
       
   415         {EPtiKeyQwerty6, EPtiCaseLower, 10, 2},
       
   416         {EPtiKeyQwerty7, EPtiCaseLower, 12, 5},
       
   417         {EPtiKeyQwerty8, EPtiCaseLower, 17, 5},
       
   418         {EPtiKeyQwerty9, EPtiCaseLower, 22, 8},
       
   419         {EPtiKeyQwerty0, EPtiCaseLower, 30, 1},
       
   420         {EPtiKeyQwertyA, EPtiCaseLower, 31, 9},
       
   421         {EPtiKeyQwertyS, EPtiCaseLower, 40, 2},
       
   422         {EPtiKeyQwertyD, EPtiCaseLower, 42, 2},
       
   423         {EPtiKeyQwertyF, EPtiCaseLower, 44, 1},
       
   424         {EPtiKeyQwertyG, EPtiCaseLower, 45, 1},
       
   425         {EPtiKeyQwertyH, EPtiCaseLower, 46, 1},
       
   426         {EPtiKeyQwertyJ, EPtiCaseLower, 47, 1},
       
   427         {EPtiKeyQwertyK, EPtiCaseLower, 48, 1},
       
   428         {EPtiKeyQwertyL, EPtiCaseLower, 49, 1},
       
   429         {EPtiKeyQwertyZ, EPtiCaseLower, 50, 1},
       
   430         {EPtiKeyQwertyX, EPtiCaseLower, 51, 1},
       
   431         {EPtiKeyQwertyC, EPtiCaseLower, 52, 2},
       
   432         {EPtiKeyQwertyV, EPtiCaseLower, 54, 1},
       
   433         {EPtiKeyQwertyB, EPtiCaseLower, 55, 1},
       
   434         {EPtiKeyQwertyN, EPtiCaseLower, 56, 2},
       
   435         {EPtiKeyQwertyM, EPtiCaseLower, 58, 1},
       
   436         {EPtiKeyQwertyComma, EPtiCaseLower, 59, 1},
       
   437         {EPtiKeyQwertyFullstop, EPtiCaseLower, 60, 1},
       
   438         {EPtiKeyQwerty1, EPtiCaseUpper, 65, 1},
       
   439         {EPtiKeyQwerty2, EPtiCaseUpper, 66, 1},
       
   440         {EPtiKeyQwerty3, EPtiCaseUpper, 67, 5},
       
   441         {EPtiKeyQwerty4, EPtiCaseUpper, 72, 1},
       
   442         {EPtiKeyQwerty5, EPtiCaseUpper, 73, 2},
       
   443         {EPtiKeyQwerty6, EPtiCaseUpper, 75, 2},
       
   444         {EPtiKeyQwerty7, EPtiCaseUpper, 77, 5},
       
   445         {EPtiKeyQwerty8, EPtiCaseUpper, 82, 5},
       
   446         {EPtiKeyQwerty9, EPtiCaseUpper, 87, 8},
       
   447         {EPtiKeyQwerty0, EPtiCaseUpper, 95, 1},
       
   448         {EPtiKeyQwertyA, EPtiCaseUpper, 96, 9},
       
   449         {EPtiKeyQwertyS, EPtiCaseUpper, 105, 1},
       
   450         {EPtiKeyQwertyD, EPtiCaseUpper, 106, 2},
       
   451         {EPtiKeyQwertyF, EPtiCaseUpper, 108, 1},
       
   452         {EPtiKeyQwertyG, EPtiCaseUpper, 109, 1},
       
   453         {EPtiKeyQwertyH, EPtiCaseUpper, 110, 1},
       
   454         {EPtiKeyQwertyJ, EPtiCaseUpper, 111, 1},
       
   455         {EPtiKeyQwertyK, EPtiCaseUpper, 112, 1},
       
   456         {EPtiKeyQwertyL, EPtiCaseUpper, 113, 1},
       
   457         {EPtiKeyQwertyZ, EPtiCaseUpper, 114, 1},
       
   458         {EPtiKeyQwertyX, EPtiCaseUpper, 115, 1},
       
   459         {EPtiKeyQwertyC, EPtiCaseUpper, 116, 2},
       
   460         {EPtiKeyQwertyV, EPtiCaseUpper, 118, 1},
       
   461         {EPtiKeyQwertyB, EPtiCaseUpper, 119, 1},
       
   462         {EPtiKeyQwertyN, EPtiCaseUpper, 120, 2},
       
   463         {EPtiKeyQwertyM, EPtiCaseUpper, 122, 1},
       
   464         {EPtiKeyQwertyComma, EPtiCaseUpper, 123, 1},
       
   465         {EPtiKeyQwertyFullstop, EPtiCaseUpper, 124, 1},
       
   466         {EPtiKeyQwerty1, EPtiCaseFnLower, 127, 1},
       
   467         {EPtiKeyQwerty2, EPtiCaseFnLower, 128, 1},
       
   468         {EPtiKeyQwerty3, EPtiCaseFnLower, 129, 1},
       
   469         {EPtiKeyQwerty4, EPtiCaseFnLower, 130, 1},
       
   470         {EPtiKeyQwerty5, EPtiCaseFnLower, 131, 1},
       
   471         {EPtiKeyQwerty6, EPtiCaseFnLower, 132, 1},
       
   472         {EPtiKeyQwerty7, EPtiCaseFnLower, 133, 1},
       
   473         {EPtiKeyQwerty8, EPtiCaseFnLower, 134, 1},
       
   474         {EPtiKeyQwerty9, EPtiCaseFnLower, 135, 1},
       
   475         {EPtiKeyQwertyA, EPtiCaseFnLower, 136, 1},
       
   476         {EPtiKeyQwertyS, EPtiCaseFnLower, 137, 1},
       
   477         {EPtiKeyQwertyD, EPtiCaseFnLower, 138, 1},
       
   478         {EPtiKeyQwertyF, EPtiCaseFnLower, 139, 1},
       
   479         {EPtiKeyQwertyG, EPtiCaseFnLower, 140, 1},
       
   480         {EPtiKeyQwertyH, EPtiCaseFnLower, 141, 1},
       
   481         {EPtiKeyQwertyJ, EPtiCaseFnLower, 142, 1},
       
   482         {EPtiKeyQwertyK, EPtiCaseFnLower, 143, 1},
       
   483         {EPtiKeyQwertyL, EPtiCaseFnLower, 144, 1},
       
   484         {EPtiKeyQwertyZ, EPtiCaseFnLower, 145, 1},
       
   485         {EPtiKeyQwertyX, EPtiCaseFnLower, 146, 1},
       
   486         {EPtiKeyQwertyC, EPtiCaseFnLower, 147, 1},
       
   487         {EPtiKeyQwertyV, EPtiCaseFnLower, 148, 1},
       
   488         {EPtiKeyQwertyB, EPtiCaseFnLower, 149, 1},
       
   489         {EPtiKeyQwertyN, EPtiCaseFnLower, 150, 1},
       
   490         {EPtiKeyQwertyM, EPtiCaseFnLower, 151, 1},
       
   491         {EPtiKeyQwertyComma, EPtiCaseFnLower, 152, 1},
       
   492         {EPtiKeyQwertyFullstop, EPtiCaseFnLower, 153, 1},
       
   493     };
       
   494 
       
   495 const TInt KMaxMiniQwertyIndex_Spanish = 83;
       
   496 
       
   497 //
       
   498 // MiniQwerty3x11 keymap data table
       
   499 //
       
   500 const TUint16 MiniQwerty3x11Data_table_Spanish[] =
       
   501     {
       
   502      0x0071,
       
   503      0x0077,
       
   504      0x0065,0x00E9,0x00E8,0x00EA,0x00EB,
       
   505      0x0072,
       
   506      0x0074,
       
   507      0x0079,
       
   508      0x0075,0x00FA,0x00FC,0x00F9,0x00FB,
       
   509      0x0069,0x00ED,0x00EF,0x00EC,0x00EE,
       
   510      0x006F,0x00F3,0x00BA,0x00F2,0x00F4,0x00F5,
       
   511      0x0070,
       
   512      0x0061,0x00E1,0x00AA,0x00E4,0x00E0,0x00E2,0x00E3,0x00E6,
       
   513      0x0073,0x00DF,
       
   514      0x0064,
       
   515      0x0066,
       
   516      0x0067,
       
   517      0x0068,
       
   518      0x006A,
       
   519      0x006B,
       
   520      0x006C,
       
   521      0x002E,
       
   522      0x007A,
       
   523      0x0078,
       
   524      0x0063,0x00E7,
       
   525      0x0076,
       
   526      0x0062,
       
   527      0x006E,0x00F1,
       
   528      0x006D,
       
   529      0x0051,
       
   530      0x0057,
       
   531      0x0045,0x00C9,0x00C8,0x00CA,0x00CB,
       
   532      0x0052,
       
   533      0x0054,
       
   534      0x0059,
       
   535      0x0055,0x00DA,0x00DC,0x00D9,0x00DB,
       
   536      0x0049,0x00CD,0x00CF,0x00CC,0x00CE,
       
   537      0x004F,0x00D3,0x00BA,0x00D2,0x00D4,0x00D5,
       
   538      0x0050,
       
   539      0x0041,0x00C1,0x00AA,0x00C4,0x00C0,0x00C2,0x00C3,0x00C6,
       
   540      0x0053,
       
   541      0x0044,
       
   542      0x0046,
       
   543      0x0047,
       
   544      0x0048,
       
   545      0x004A,
       
   546      0x004B,
       
   547      0x004C,
       
   548      0x002C,
       
   549      0x005A,
       
   550      0x0058,
       
   551      0x0043,0x00C7,
       
   552      0x0056,
       
   553      0x0042,
       
   554      0x004E,0x00D1,
       
   555      0x004D,
       
   556      0x0031,
       
   557      0x0032,
       
   558      0x0033,
       
   559      0x0034,
       
   560      0x0035,
       
   561      0x0036,
       
   562      0x0037,
       
   563      0x0038,
       
   564      0x0039,
       
   565      0x0030,
       
   566      0x0040,
       
   567      0x002F,
       
   568      0x002D,
       
   569      0x002B,
       
   570      0x003D,
       
   571      0x0023,
       
   572      0x002A,
       
   573      0x003B,
       
   574      0x003A,
       
   575      0x0027,
       
   576      0x0028,
       
   577      0x0029,
       
   578      0x0025,
       
   579      0x0026,
       
   580      0x0022,
       
   581      0x003F,
       
   582      0x0021,
       
   583     };
       
   584 
       
   585 const TInt KMiniQwerty3x11DataSize_Spanish = 134;
       
   586 
       
   587 
       
   588 const TPtiKeyBinding MiniQwerty3x11KeyBindings_table_Spanish[] =
       
   589     {
       
   590         {EPtiKeyQwertyQ, EPtiCaseLower, 0, 1},
       
   591         {EPtiKeyQwertyW, EPtiCaseLower, 1, 1},
       
   592         {EPtiKeyQwertyE, EPtiCaseLower, 2, 5},
       
   593         {EPtiKeyQwertyR, EPtiCaseLower, 7, 1},
       
   594         {EPtiKeyQwertyT, EPtiCaseLower, 8, 1},
       
   595         {EPtiKeyQwertyY, EPtiCaseLower, 9, 1},
       
   596         {EPtiKeyQwertyU, EPtiCaseLower, 10, 5},
       
   597         {EPtiKeyQwertyI, EPtiCaseLower, 15, 5},
       
   598         {EPtiKeyQwertyO, EPtiCaseLower, 20, 6},
       
   599         {EPtiKeyQwertyP, EPtiCaseLower, 26, 1},
       
   600         {EPtiKeyQwertyA, EPtiCaseLower, 27, 8},
       
   601         {EPtiKeyQwertyS, EPtiCaseLower, 35, 2},
       
   602         {EPtiKeyQwertyD, EPtiCaseLower, 37, 1},
       
   603         {EPtiKeyQwertyF, EPtiCaseLower, 38, 1},
       
   604         {EPtiKeyQwertyG, EPtiCaseLower, 39, 1},
       
   605         {EPtiKeyQwertyH, EPtiCaseLower, 40, 1},
       
   606         {EPtiKeyQwertyJ, EPtiCaseLower, 41, 1},
       
   607         {EPtiKeyQwertyK, EPtiCaseLower, 42, 1},
       
   608         {EPtiKeyQwertyL, EPtiCaseLower, 43, 1},
       
   609         {EPtiKeyQwertyComma, EPtiCaseLower, 44, 1},
       
   610         {EPtiKeyQwertyZ, EPtiCaseLower, 45, 1},
       
   611         {EPtiKeyQwertyX, EPtiCaseLower, 46, 1},
       
   612         {EPtiKeyQwertyC, EPtiCaseLower, 47, 2},
       
   613         {EPtiKeyQwertyV, EPtiCaseLower, 49, 1},
       
   614         {EPtiKeyQwertyB, EPtiCaseLower, 50, 1},
       
   615         {EPtiKeyQwertyN, EPtiCaseLower, 51, 2},
       
   616         {EPtiKeyQwertyM, EPtiCaseLower, 53, 1},
       
   617         {EStdKeySpace, EPtiCaseLower, 54, 0},
       
   618         {EPtiKeyQwertyQ, EPtiCaseUpper, 54, 1},
       
   619         {EPtiKeyQwertyW, EPtiCaseUpper, 55, 1},
       
   620         {EPtiKeyQwertyE, EPtiCaseUpper, 56, 5},
       
   621         {EPtiKeyQwertyR, EPtiCaseUpper, 61, 1},
       
   622         {EPtiKeyQwertyT, EPtiCaseUpper, 62, 1},
       
   623         {EPtiKeyQwertyY, EPtiCaseUpper, 63, 1},
       
   624         {EPtiKeyQwertyU, EPtiCaseUpper, 64, 5},
       
   625         {EPtiKeyQwertyI, EPtiCaseUpper, 69, 5},
       
   626         {EPtiKeyQwertyO, EPtiCaseUpper, 74, 6},
       
   627         {EPtiKeyQwertyP, EPtiCaseUpper, 80, 1},
       
   628         {EPtiKeyQwertyA, EPtiCaseUpper, 81, 8},
       
   629         {EPtiKeyQwertyS, EPtiCaseUpper, 89, 1},
       
   630         {EPtiKeyQwertyD, EPtiCaseUpper, 90, 1},
       
   631         {EPtiKeyQwertyF, EPtiCaseUpper, 91, 1},
       
   632         {EPtiKeyQwertyG, EPtiCaseUpper, 92, 1},
       
   633         {EPtiKeyQwertyH, EPtiCaseUpper, 93, 1},
       
   634         {EPtiKeyQwertyJ, EPtiCaseUpper, 94, 1},
       
   635         {EPtiKeyQwertyK, EPtiCaseUpper, 95, 1},
       
   636         {EPtiKeyQwertyL, EPtiCaseUpper, 96, 1},
       
   637         {EPtiKeyQwertyComma, EPtiCaseUpper, 97, 1},
       
   638         {EPtiKeyQwertyZ, EPtiCaseUpper, 98, 1},
       
   639         {EPtiKeyQwertyX, EPtiCaseUpper, 99, 1},
       
   640         {EPtiKeyQwertyC, EPtiCaseUpper, 100, 2},
       
   641         {EPtiKeyQwertyV, EPtiCaseUpper, 102, 1},
       
   642         {EPtiKeyQwertyB, EPtiCaseUpper, 103, 1},
       
   643         {EPtiKeyQwertyN, EPtiCaseUpper, 104, 2},
       
   644         {EPtiKeyQwertyM, EPtiCaseUpper, 106, 1},
       
   645         {EStdKeySpace, EPtiCaseUpper, 107, 0},
       
   646         {EPtiKeyQwertyQ, EPtiCaseFnLower, 107, 1},
       
   647         {EPtiKeyQwertyW, EPtiCaseFnLower, 108, 1},
       
   648         {EPtiKeyQwertyE, EPtiCaseFnLower, 109, 1},
       
   649         {EPtiKeyQwertyR, EPtiCaseFnLower, 110, 1},
       
   650         {EPtiKeyQwertyT, EPtiCaseFnLower, 111, 1},
       
   651         {EPtiKeyQwertyY, EPtiCaseFnLower, 112, 1},
       
   652         {EPtiKeyQwertyU, EPtiCaseFnLower, 113, 1},
       
   653         {EPtiKeyQwertyI, EPtiCaseFnLower, 114, 1},
       
   654         {EPtiKeyQwertyO, EPtiCaseFnLower, 115, 1},
       
   655         {EPtiKeyQwertyP, EPtiCaseFnLower, 116, 1},
       
   656         {EPtiKeyQwertyA, EPtiCaseFnLower, 117, 1},
       
   657         {EPtiKeyQwertyS, EPtiCaseFnLower, 118, 1},
       
   658         {EPtiKeyQwertyD, EPtiCaseFnLower, 119, 1},
       
   659         {EPtiKeyQwertyF, EPtiCaseFnLower, 120, 1},
       
   660         {EPtiKeyQwertyG, EPtiCaseFnLower, 121, 1},
       
   661         {EPtiKeyQwertyH, EPtiCaseFnLower, 122, 1},
       
   662         {EPtiKeyQwertyJ, EPtiCaseFnLower, 123, 1},
       
   663         {EPtiKeyQwertyK, EPtiCaseFnLower, 124, 1},
       
   664         {EPtiKeyQwertyL, EPtiCaseFnLower, 125, 1},
       
   665         {EPtiKeyQwertyComma, EPtiCaseFnLower, 126, 1},
       
   666         {EPtiKeyQwertyZ, EPtiCaseFnLower, 127, 1},
       
   667         {EPtiKeyQwertyX, EPtiCaseFnLower, 128, 1},
       
   668         {EPtiKeyQwertyC, EPtiCaseFnLower, 129, 1},
       
   669         {EPtiKeyQwertyV, EPtiCaseFnLower, 130, 1},
       
   670         {EPtiKeyQwertyB, EPtiCaseFnLower, 131, 1},
       
   671         {EPtiKeyQwertyN, EPtiCaseFnLower, 132, 1},
       
   672         {EPtiKeyQwertyM, EPtiCaseFnLower, 133, 1},
       
   673     };
       
   674 
       
   675 const TInt KMaxMiniQwerty3x11Index_Spanish = 83;
       
   676 
       
   677 //
       
   678 // Class implementation.
       
   679 //
       
   680 
       
   681 CPtiLangDataImplSpanish* CPtiLangDataImplSpanish::NewL()
       
   682     {
       
   683     return new (ELeave) CPtiLangDataImplSpanish();
       
   684     }
       
   685 
       
   686 
       
   687 TInt CPtiLangDataImplSpanish::LanguageCode() const
       
   688     {
       
   689     return ELangSpanish;
       
   690     }
       
   691 
       
   692 
       
   693 const TUint16* CPtiLangDataImplSpanish::KeyData(TPtiKeyboardType aKeyboardType, TInt& aDataSize) const
       
   694     {
       
   695     if (aKeyboardType == EPtiKeyboard12Key)
       
   696         {
       
   697         aDataSize = KMultitapDataSize_Spanish;
       
   698         return MultitapData_table_Spanish;
       
   699         }
       
   700     if (aKeyboardType == EPtiKeyboardQwerty4x12)
       
   701         {
       
   702         aDataSize = KStandardQwertyDataSize_Spanish;
       
   703         return StandardQwertyData_table_Spanish;
       
   704         }
       
   705 
       
   706     if (aKeyboardType == EPtiKeyboardQwerty4x10)
       
   707         {
       
   708         aDataSize = KMiniQwertyDataSize_Spanish;
       
   709         return MiniQwertyData_table_Spanish;
       
   710         }
       
   711 
       
   712     if (aKeyboardType == EPtiKeyboardQwerty3x11)
       
   713         {
       
   714         aDataSize = KMiniQwerty3x11DataSize_Spanish;
       
   715         return MiniQwerty3x11Data_table_Spanish;
       
   716         }
       
   717 
       
   718     aDataSize = 0;
       
   719     return NULL;
       
   720     }
       
   721 
       
   722 
       
   723 const TPtiKeyBinding* CPtiLangDataImplSpanish::KeyBindingTable(TPtiKeyboardType aKeyboardType, TInt& aNumItems) const
       
   724     {
       
   725     if (aKeyboardType == EPtiKeyboard12Key)
       
   726         {
       
   727         aNumItems = KMaxMultitapIndex_Spanish;
       
   728         return MultitapKeyBindings_table_Spanish;
       
   729         }
       
   730     if (aKeyboardType == EPtiKeyboardQwerty4x12)
       
   731         {
       
   732         aNumItems = KMaxStandardQwertyIndex_Spanish;
       
   733         return StandardQwertyKeyBindings_table_Spanish;
       
   734         }
       
   735     if (aKeyboardType == EPtiKeyboardQwerty4x10)
       
   736         {
       
   737         aNumItems = KMaxMiniQwertyIndex_Spanish;
       
   738         return MiniQwertyKeyBindings_table_Spanish;
       
   739         }
       
   740     if (aKeyboardType == EPtiKeyboardQwerty3x11)
       
   741         {
       
   742         aNumItems = KMaxMiniQwerty3x11Index_Spanish;
       
   743         return MiniQwerty3x11KeyBindings_table_Spanish;
       
   744         }
       
   745 
       
   746     aNumItems = 0;
       
   747     return NULL;
       
   748     }
       
   749 
       
   750 
       
   751 const TUint16* CPtiLangDataImplSpanish::DeadKeyDataArray(TPtiKeyboardType aKeyboardType, TInt& aNumRowsInArray) const
       
   752     {
       
   753     if (aKeyboardType == EPtiKeyboardQwerty4x12)
       
   754         {
       
   755         aNumRowsInArray = KStandardQwertyDeadKeyTableRows_Spanish;
       
   756         return StandardQwertyDeadKeyData_table_Spanish;
       
   757         }
       
   758 
       
   759     aNumRowsInArray = 0;
       
   760     return NULL;
       
   761     }
       
   762 
       
   763