textinput/ptienginev2/languages/PtiKeymappings_ITUT_31.cpp
changeset 0 eb1f2e154e89
child 18 c8fb4cf7b3ae
equal deleted inserted replaced
-1:000000000000 0:eb1f2e154e89
       
     1 /*
       
     2 * Copyright (c) 2002-2004 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 "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_31.h"
       
    34 
       
    35 //
       
    36 // Multitap keymap data table
       
    37 //
       
    38 const TUint16 MultitapData_table_PrcChinese[] =
       
    39     {
       
    40      0x3002,0xFF0C,0xFF1F,0xFF01,0x3001,0xFF1A,0x0031,0x0040,0x002D,0x005F,0x0028,0x0029,0x300A,0x300B,0x002F,0x0025,0x00A5,
       
    41      0x0020,0x0030,0x21b2,
       
    42      0x3002,0xFF0C,0xFF1F,0xFF01,0x3001,0xFF1A,0x0031,0x0040,0x002D,0x005F,0x0028,0x0029,0x300A,0x300B,0x002F,0x0025,0x00A5,
       
    43      0xFF0C,
       
    44      0x3002,
       
    45      0xFF1F,
       
    46      0x0020,0x0030,0x21b2,
       
    47     };
       
    48 
       
    49 const TInt KMultitapDataSize_PrcChinese = 43;
       
    50 
       
    51 
       
    52 const TPtiKeyBinding MultitapKeyBindings_table_PrcChinese[] =
       
    53     {
       
    54         {EPtiKey1, EPtiCaseLower, 0, 17},
       
    55         {EPtiKey2, EPtiCaseLower, 17, 0},
       
    56         {EPtiKey3, EPtiCaseLower, 17, 0},
       
    57         {EPtiKey4, EPtiCaseLower, 17, 0},
       
    58         {EPtiKey5, EPtiCaseLower, 17, 0},
       
    59         {EPtiKey6, EPtiCaseLower, 17, 0},
       
    60         {EPtiKey7, EPtiCaseLower, 17, 0},
       
    61         {EPtiKey8, EPtiCaseLower, 17, 0},
       
    62         {EPtiKey9, EPtiCaseLower, 17, 0},
       
    63         {EPtiKeyStar, EPtiCaseLower, 17, 0},
       
    64         {EPtiKey0, EPtiCaseLower, 17, 3},
       
    65         {EPtiKeyHash, EPtiCaseLower, 20, 0},
       
    66         {EPtiKey1, EPtiCaseUpper, 20, 17},
       
    67         {EPtiKey2, EPtiCaseUpper, 37, 0},
       
    68         {EPtiKey3, EPtiCaseUpper, 37, 0},
       
    69         {EPtiKey4, EPtiCaseUpper, 37, 0},
       
    70         {EPtiKey5, EPtiCaseUpper, 37, 0},
       
    71         {EPtiKey6, EPtiCaseUpper, 37, 0},
       
    72         {EPtiKey7, EPtiCaseUpper, 37, 1},
       
    73         {EPtiKey8, EPtiCaseUpper, 38, 1},
       
    74         {EPtiKey9, EPtiCaseUpper, 39, 1},
       
    75         {EPtiKeyStar, EPtiCaseUpper, 40, 0},
       
    76         {EPtiKey0, EPtiCaseUpper, 40, 3},
       
    77         {EPtiKeyHash, EPtiCaseUpper, 43, 0},
       
    78     };
       
    79 
       
    80 const TInt KMaxMultitapIndex_PrcChinese = 24;
       
    81 
       
    82 //
       
    83 // StandardQwerty keymap data table
       
    84 //
       
    85 const TUint16 StandardQwertyData_table_PrcChinese[] =
       
    86     {
       
    87      0x0031,
       
    88      0x0032,
       
    89      0x0033,
       
    90      0x0034,
       
    91      0x0035,
       
    92      0x0036,
       
    93      0x0037,
       
    94      0x0038,
       
    95      0x0039,
       
    96      0x0030,
       
    97      0x2460,0x002b,0x2460,0x002b,0x2461,0x002b,0x2461,0x002b ,
       
    98      0x2460,0x0071,0x2461,0x4e00,
       
    99      0x2460,0x0077,0x2461,0x4e28,
       
   100      0x2460,0x0065,0x2461,0x4e3f,
       
   101      0x2460,0x0072 ,
       
   102      0x2460,0x0074 ,
       
   103      0x2460,0x0079,
       
   104      0x2460,0x0075 ,
       
   105      0x2460,0x0069,0x2461,0x4e00,
       
   106      0x2460,0x006f,0x2461,0x4e28,
       
   107      0x2460,0x0070,0x2461,0x4e3f,
       
   108      0x2460,0xff0d,0x2460,0x002d,0x2461,0xff0d,0x2461,0x002d,
       
   109      0x2460,0x0023,0x2460,0x0023,0x2461,0x0023,0x2461,0x0023 ,
       
   110      0x2460,0x0061,0x2461,0x4e36,
       
   111      0x2460,0x0073,0x2461,0x4e5b ,
       
   112      0x2460,0x0064,0x2461,0x003f,
       
   113      0x2460,0x0066,
       
   114      0x2460,0x0067,
       
   115      0x2460,0x0068,
       
   116      0x2460,0x006a,0x2461,0x003f,
       
   117      0x2460,0x006b,0x2461,0x4e36 ,
       
   118      0x2460,0x006c,0x2461,0x4e5b,
       
   119      0x2460,0xff1a,0x2460,0x003a,0x2461,0xff1a,0x2461,0x003a,
       
   120      0x2460,0xff07,0x2460,0x0027,0x2461,0xff07,0x2461,0x0027 ,
       
   121      0x2460,0x007a,
       
   122      0x2460,0x0078,
       
   123      0x2460,0x0063,
       
   124      0x2460,0x0076 ,
       
   125      0x2460,0x0062,
       
   126      0x2460,0x006e,
       
   127      0x2460,0x006d,
       
   128      0x2460,0xff0c,0x2460,0x002c,0x2461,0xff0c,0x2461,0x002c ,
       
   129      0x2460,0x3002,0x2460,0x002e,0x2461,0x3002,0x2461,0x002e,
       
   130      0x2460,0x002f,0x2460,0x002f,0x2461,0x002f,0x2461,0x002f ,
       
   131      0xff01,
       
   132      0xff02,
       
   133      0x0024,
       
   134      0x20ac,
       
   135      0x0025,
       
   136      0x0026,
       
   137      0x002a,
       
   138      0xff08,
       
   139      0xff09,
       
   140      0xff1d,
       
   141      0x0051,
       
   142      0x0057,
       
   143      0x0045,
       
   144      0x0052,
       
   145      0x0054,
       
   146      0x0059,
       
   147      0x0055,
       
   148      0x0049,
       
   149      0x004f,
       
   150      0x0050,
       
   151      0x3001,
       
   152      0x007e,
       
   153      0x0041,
       
   154      0x0053,
       
   155      0x0044,
       
   156      0x0046,
       
   157      0x0047,
       
   158      0x0048,
       
   159      0x004a,
       
   160      0x004b,
       
   161      0x004c,
       
   162      0xff1b,
       
   163      0xff20,
       
   164      0x005a,
       
   165      0x0058,
       
   166      0x0043,
       
   167      0x0056,
       
   168      0x0042,
       
   169      0x004e,
       
   170      0x004d,
       
   171      0xff1c,
       
   172      0xff1e,
       
   173      0xff1f,
       
   174     };
       
   175 
       
   176 const TInt KStandardQwertyDataSize_PrcChinese = 193;
       
   177 
       
   178 
       
   179 const TPtiKeyBinding StandardQwertyKeyBindings_table_PrcChinese[] =
       
   180     {
       
   181         {EPtiKeyQwerty1, EPtiCaseLower, 0, 1},
       
   182         {EPtiKeyQwerty2, EPtiCaseLower, 1, 1},
       
   183         {EPtiKeyQwerty3, EPtiCaseLower, 2, 1},
       
   184         {EPtiKeyQwerty4, EPtiCaseLower, 3, 1},
       
   185         {EPtiKeyQwerty5, EPtiCaseLower, 4, 1},
       
   186         {EPtiKeyQwerty6, EPtiCaseLower, 5, 1},
       
   187         {EPtiKeyQwerty7, EPtiCaseLower, 6, 1},
       
   188         {EPtiKeyQwerty8, EPtiCaseLower, 7, 1},
       
   189         {EPtiKeyQwerty9, EPtiCaseLower, 8, 1},
       
   190         {EPtiKeyQwerty0, EPtiCaseLower, 9, 1},
       
   191         {EPtiKeyQwertyPlus, EPtiCaseLower, 10, 8},
       
   192         {EPtiKeyQwertyQ, EPtiCaseLower, 18, 4},
       
   193         {EPtiKeyQwertyW, EPtiCaseLower, 22, 4},
       
   194         {EPtiKeyQwertyE, EPtiCaseLower, 26, 4},
       
   195         {EPtiKeyQwertyR, EPtiCaseLower, 30, 2},
       
   196         {EPtiKeyQwertyT, EPtiCaseLower, 32, 2},
       
   197         {EPtiKeyQwertyY, EPtiCaseLower, 34, 2},
       
   198         {EPtiKeyQwertyU, EPtiCaseLower, 36, 2},
       
   199         {EPtiKeyQwertyI, EPtiCaseLower, 38, 4},
       
   200         {EPtiKeyQwertyO, EPtiCaseLower, 42, 4},
       
   201         {EPtiKeyQwertyP, EPtiCaseLower, 46, 4},
       
   202         {EPtiKeyQwertyMinus, EPtiCaseLower, 50, 8},
       
   203         {EPtiKeyQwertyHash, EPtiCaseLower, 58, 8},
       
   204         {EPtiKeyQwertyA, EPtiCaseLower, 66, 4},
       
   205         {EPtiKeyQwertyS, EPtiCaseLower, 70, 4},
       
   206         {EPtiKeyQwertyD, EPtiCaseLower, 74, 4},
       
   207         {EPtiKeyQwertyF, EPtiCaseLower, 78, 2},
       
   208         {EPtiKeyQwertyG, EPtiCaseLower, 80, 2},
       
   209         {EPtiKeyQwertyH, EPtiCaseLower, 82, 2},
       
   210         {EPtiKeyQwertyJ, EPtiCaseLower, 84, 4},
       
   211         {EPtiKeyQwertyK, EPtiCaseLower, 88, 4},
       
   212         {EPtiKeyQwertyL, EPtiCaseLower, 92, 4},
       
   213         {EPtiKeyQwertySemicolon, EPtiCaseLower, 96, 8},
       
   214         {EPtiKeyQwertyApostrophe, EPtiCaseLower, 104, 8},
       
   215         {EPtiKeyQwertyZ, EPtiCaseLower, 112, 2},
       
   216         {EPtiKeyQwertyX, EPtiCaseLower, 114, 2},
       
   217         {EPtiKeyQwertyC, EPtiCaseLower, 116, 2},
       
   218         {EPtiKeyQwertyV, EPtiCaseLower, 118, 2},
       
   219         {EPtiKeyQwertyB, EPtiCaseLower, 120, 2},
       
   220         {EPtiKeyQwertyN, EPtiCaseLower, 122, 2},
       
   221         {EPtiKeyQwertyM, EPtiCaseLower, 124, 2},
       
   222         {EPtiKeyQwertyComma, EPtiCaseLower, 126, 8},
       
   223         {EPtiKeyQwertyFullstop, EPtiCaseLower, 134, 8},
       
   224         {EPtiKeyQwertySlash, EPtiCaseLower, 142, 8},
       
   225         {EPtiKeyQwerty1, EPtiCaseUpper, 150, 1},
       
   226         {EPtiKeyQwerty2, EPtiCaseUpper, 151, 1},
       
   227         {EPtiKeyQwerty3, EPtiCaseUpper, 152, 1},
       
   228         {EPtiKeyQwerty4, EPtiCaseUpper, 153, 1},
       
   229         {EPtiKeyQwerty5, EPtiCaseUpper, 154, 1},
       
   230         {EPtiKeyQwerty6, EPtiCaseUpper, 155, 1},
       
   231         {EPtiKeyQwerty7, EPtiCaseUpper, 156, 1},
       
   232         {EPtiKeyQwerty8, EPtiCaseUpper, 157, 1},
       
   233         {EPtiKeyQwerty9, EPtiCaseUpper, 158, 1},
       
   234         {EPtiKeyQwerty0, EPtiCaseUpper, 159, 0},
       
   235         {EPtiKeyQwertyPlus, EPtiCaseUpper, 159, 1},
       
   236         {EPtiKeyQwertyQ, EPtiCaseUpper, 160, 1},
       
   237         {EPtiKeyQwertyW, EPtiCaseUpper, 161, 1},
       
   238         {EPtiKeyQwertyE, EPtiCaseUpper, 162, 1},
       
   239         {EPtiKeyQwertyR, EPtiCaseUpper, 163, 1},
       
   240         {EPtiKeyQwertyT, EPtiCaseUpper, 164, 1},
       
   241         {EPtiKeyQwertyY, EPtiCaseUpper, 165, 1},
       
   242         {EPtiKeyQwertyU, EPtiCaseUpper, 166, 1},
       
   243         {EPtiKeyQwertyI, EPtiCaseUpper, 167, 1},
       
   244         {EPtiKeyQwertyO, EPtiCaseUpper, 168, 1},
       
   245         {EPtiKeyQwertyP, EPtiCaseUpper, 169, 1},
       
   246         {EPtiKeyQwertyMinus, EPtiCaseUpper, 170, 1},
       
   247         {EPtiKeyQwertyHash, EPtiCaseUpper, 171, 1},
       
   248         {EPtiKeyQwertyA, EPtiCaseUpper, 172, 1},
       
   249         {EPtiKeyQwertyS, EPtiCaseUpper, 173, 1},
       
   250         {EPtiKeyQwertyD, EPtiCaseUpper, 174, 1},
       
   251         {EPtiKeyQwertyF, EPtiCaseUpper, 175, 1},
       
   252         {EPtiKeyQwertyG, EPtiCaseUpper, 176, 1},
       
   253         {EPtiKeyQwertyH, EPtiCaseUpper, 177, 1},
       
   254         {EPtiKeyQwertyJ, EPtiCaseUpper, 178, 1},
       
   255         {EPtiKeyQwertyK, EPtiCaseUpper, 179, 1},
       
   256         {EPtiKeyQwertyL, EPtiCaseUpper, 180, 1},
       
   257         {EPtiKeyQwertySemicolon, EPtiCaseUpper, 181, 1},
       
   258         {EPtiKeyQwertyApostrophe, EPtiCaseUpper, 182, 1},
       
   259         {EPtiKeyQwertyZ, EPtiCaseUpper, 183, 1},
       
   260         {EPtiKeyQwertyX, EPtiCaseUpper, 184, 1},
       
   261         {EPtiKeyQwertyC, EPtiCaseUpper, 185, 1},
       
   262         {EPtiKeyQwertyV, EPtiCaseUpper, 186, 1},
       
   263         {EPtiKeyQwertyB, EPtiCaseUpper, 187, 1},
       
   264         {EPtiKeyQwertyN, EPtiCaseUpper, 188, 1},
       
   265         {EPtiKeyQwertyM, EPtiCaseUpper, 189, 1},
       
   266         {EPtiKeyQwertyComma, EPtiCaseUpper, 190, 1},
       
   267         {EPtiKeyQwertyFullstop, EPtiCaseUpper, 191, 1},
       
   268         {EPtiKeyQwertySlash, EPtiCaseUpper, 192, 1},
       
   269     };
       
   270 
       
   271 const TInt KMaxStandardQwertyIndex_PrcChinese = 88;
       
   272 
       
   273 
       
   274 //
       
   275 // Numeric key data table for StandardQwerty
       
   276 //
       
   277 const TPtiNumericKeyBinding StandardQwertyNumericKeysData_table_PrcChinese[] =
       
   278 	{
       
   279 	{'*',EPtiKeyQwerty6,EPtiCaseUpper},
       
   280 	{'p',EPtiKeyQwertyP,EPtiCaseLower},
       
   281 	{'w',EPtiKeyQwertyW,EPtiCaseLower},
       
   282 	{'E',EPtiKeyQwertyE,EPtiCaseUpper},
       
   283 	{'?',EPtiKeyQwertySlash,EPtiCaseUpper},
       
   284 	};
       
   285 
       
   286 const TInt KNumStandardQwertyNumericKeysEntries_PrcChinese = 5;
       
   287 //
       
   288 // MiniQwerty keymap data table
       
   289 //
       
   290 const TUint16 MiniQwertyData_table_PrcChinese[] =
       
   291     {
       
   292      0x2460,0x0071,
       
   293      0x2460,0x0077,
       
   294      0x2460,0x0065,0x2461,0x4e00,
       
   295      0x2460,0x0072,0x2461,0x4e00,
       
   296      0x2460,0x0074,0x2461,0x4e28,
       
   297      0x2460,0x0079,0x2461,0x4e28,
       
   298      0x2460,0x0075,0x2461,0x4e3f,
       
   299      0x2460,0x0069,0x2461,0x4e3f,
       
   300      0x2460,0x006F,
       
   301      0x2460,0x0070,
       
   302      0x2460,0x0061,
       
   303      0x2460,0x0073,
       
   304      0x2460,0x0064,0x2461,0x4e36,
       
   305      0x2460,0x0066,0x2461,0x4e36,
       
   306      0x2460,0x0067,0x2461,0x4e5b,
       
   307      0x2460,0x0068,0x2461,0x4e5b,
       
   308      0x2460,0x006A,0x2461,0x003f,
       
   309      0x2460,0x006B,0x2461,0x003f,
       
   310      0x2460,0x006C,
       
   311      0x2460,0x007A,
       
   312      0x2460,0x0078,
       
   313      0x2460,0x0063,
       
   314      0x2460,0x0076,
       
   315      0x2460,0x0062,
       
   316      0x2460,0x006E,
       
   317      0x2460,0x006D,
       
   318      0x2460,0xFF0C,0x2460,0x002c,0x2461,0xFF0C,0x2461,0x002c,
       
   319      0x2460,0x3002,0x2460,0x002e,0x2461,0x3002,0x2461,0x002e,
       
   320      0x2460,0x002F,0x2460,0x002F,0x2461,0x002F,0x2461,0x002F,
       
   321      0x2460,0x0040,0x2460,0x0040,0x2461,0x0040,0x2461,0x0040,
       
   322      0x2461,0x2022,
       
   323      0x2460,0x003F,0x2460,0x003F,0x2461,0x003f,0x2461,0x003f,
       
   324      0x0051,
       
   325      0x0057,
       
   326      0x0045,
       
   327      0x0052,
       
   328      0x0054,
       
   329      0x0059,
       
   330      0x0055,
       
   331      0x0049,
       
   332      0x004F,
       
   333      0x0050,
       
   334      0x0041,
       
   335      0x0053,
       
   336      0x0044,
       
   337      0x0046,
       
   338      0x0047,
       
   339      0x0048,
       
   340      0x004A,
       
   341      0x004B,
       
   342      0x004C,
       
   343      0x005A,
       
   344      0x0058,
       
   345      0x0043,
       
   346      0x0056,
       
   347      0x0042,
       
   348      0x004E,
       
   349      0x004D,
       
   350      0x2460,0xFF1B,0x2460,0x003b,0x2461,0xff1b,0x2461,0x003b,
       
   351      0x2460,0xFF1A,0x2460,0x003a,0x2461,0xff1a,0x2461,0x003a,
       
   352      0x2460,0xFF07,0x2460,0x0027,0x2461,0xFF07,0x2461,0x0027,
       
   353      0x2460,0xff02,0x2460,0x0022,0x2461,0xff02,0x2461,0x0022,
       
   354      0x2460,0x005e,0x2460,0x005E,0x2461,0x005e,0x2461,0x005e,
       
   355      0x0031,
       
   356      0x0031,
       
   357      0x0032,
       
   358      0x0032,
       
   359      0x0033,
       
   360      0x0033,
       
   361      0x0034,
       
   362      0x0034,
       
   363      0x0035,
       
   364      0x0035,
       
   365      0x0036,
       
   366      0x0036,
       
   367      0x0037,
       
   368      0x0037,
       
   369      0x0038,
       
   370      0x0038,
       
   371      0x0039,
       
   372      0x0039,
       
   373      0x002A,
       
   374      0x002A,
       
   375      0x0030,
       
   376      0x0023,
       
   377      0x0031,
       
   378      0x0031,
       
   379      0x0032,
       
   380      0x0032,
       
   381      0x0033,
       
   382      0x0033,
       
   383      0x0034,
       
   384      0x0034,
       
   385      0x0035,
       
   386      0x0035,
       
   387      0x0036,
       
   388      0x0036,
       
   389      0x0037,
       
   390      0x0037,
       
   391      0x0038,
       
   392      0x0038,
       
   393      0x0039,
       
   394      0x0039,
       
   395      0x002A,
       
   396      0x002A,
       
   397      0x0030,
       
   398      0x0023,
       
   399     };
       
   400 
       
   401 const TInt KMiniQwertyDataSize_PrcChinese = 228;
       
   402 
       
   403 
       
   404 const TPtiKeyBinding MiniQwertyKeyBindings_table_PrcChinese[] =
       
   405     {
       
   406         {EPtiKeyQwerty1, EPtiCaseLower, 0, 2},
       
   407         {EPtiKeyQwerty2, EPtiCaseLower, 2, 2},
       
   408         {EPtiKeyQwerty3, EPtiCaseLower, 4, 4},
       
   409         {EPtiKeyQwerty4, EPtiCaseLower, 8, 4},
       
   410         {EPtiKeyQwerty5, EPtiCaseLower, 12, 4},
       
   411         {EPtiKeyQwerty6, EPtiCaseLower, 16, 4},
       
   412         {EPtiKeyQwerty7, EPtiCaseLower, 20, 4},
       
   413         {EPtiKeyQwerty8, EPtiCaseLower, 24, 4},
       
   414         {EPtiKeyQwerty9, EPtiCaseLower, 28, 2},
       
   415         {EPtiKeyQwerty0, EPtiCaseLower, 30, 2},
       
   416         {EPtiKeyQwertyA, EPtiCaseLower, 32, 2},
       
   417         {EPtiKeyQwertyS, EPtiCaseLower, 34, 2},
       
   418         {EPtiKeyQwertyD, EPtiCaseLower, 36, 4},
       
   419         {EPtiKeyQwertyF, EPtiCaseLower, 40, 4},
       
   420         {EPtiKeyQwertyG, EPtiCaseLower, 44, 4},
       
   421         {EPtiKeyQwertyH, EPtiCaseLower, 48, 4},
       
   422         {EPtiKeyQwertyJ, EPtiCaseLower, 52, 4},
       
   423         {EPtiKeyQwertyK, EPtiCaseLower, 56, 4},
       
   424         {EPtiKeyQwertyL, EPtiCaseLower, 60, 2},
       
   425         {EPtiKeyQwertyZ, EPtiCaseLower, 62, 2},
       
   426         {EPtiKeyQwertyX, EPtiCaseLower, 64, 2},
       
   427         {EPtiKeyQwertyC, EPtiCaseLower, 66, 2},
       
   428         {EPtiKeyQwertyV, EPtiCaseLower, 68, 2},
       
   429         {EPtiKeyQwertyB, EPtiCaseLower, 70, 2},
       
   430         {EPtiKeyQwertyN, EPtiCaseLower, 72, 2},
       
   431         {EPtiKeyQwertyM, EPtiCaseLower, 74, 2},
       
   432         {EPtiKeyQwertyComma, EPtiCaseLower, 76, 8},
       
   433         {EPtiKeyQwertyFullstop, EPtiCaseLower, 84, 8},
       
   434         {EPtiKeyQwerty1, EPtiCaseUpper, 118, 1},
       
   435         {EPtiKeyQwerty2, EPtiCaseUpper, 119, 1},
       
   436         {EPtiKeyQwerty3, EPtiCaseUpper, 120, 1},
       
   437         {EPtiKeyQwerty4, EPtiCaseUpper, 121, 1},
       
   438         {EPtiKeyQwerty5, EPtiCaseUpper, 122, 1},
       
   439         {EPtiKeyQwerty6, EPtiCaseUpper, 123, 1},
       
   440         {EPtiKeyQwerty7, EPtiCaseUpper, 124, 1},
       
   441         {EPtiKeyQwerty8, EPtiCaseUpper, 125, 1},
       
   442         {EPtiKeyQwerty9, EPtiCaseUpper, 126, 1},
       
   443         {EPtiKeyQwerty0, EPtiCaseUpper, 127, 1},
       
   444         {EPtiKeyQwertyA, EPtiCaseUpper, 128, 1},
       
   445         {EPtiKeyQwertyS, EPtiCaseUpper, 129, 1},
       
   446         {EPtiKeyQwertyD, EPtiCaseUpper, 130, 1},
       
   447         {EPtiKeyQwertyF, EPtiCaseUpper, 131, 1},
       
   448         {EPtiKeyQwertyG, EPtiCaseUpper, 132, 1},
       
   449         {EPtiKeyQwertyH, EPtiCaseUpper, 133, 1},
       
   450         {EPtiKeyQwertyJ, EPtiCaseUpper, 134, 1},
       
   451         {EPtiKeyQwertyK, EPtiCaseUpper, 135, 1},
       
   452         {EPtiKeyQwertyL, EPtiCaseUpper, 136, 1},
       
   453         {EPtiKeyQwertyZ, EPtiCaseUpper, 137, 1},
       
   454         {EPtiKeyQwertyX, EPtiCaseUpper, 138, 1},
       
   455         {EPtiKeyQwertyC, EPtiCaseUpper, 139, 1},
       
   456         {EPtiKeyQwertyV, EPtiCaseUpper, 140, 1},
       
   457         {EPtiKeyQwertyB, EPtiCaseUpper, 141, 1},
       
   458         {EPtiKeyQwertyN, EPtiCaseUpper, 142, 1},
       
   459         {EPtiKeyQwertyM, EPtiCaseUpper, 143, 1},
       
   460         {EPtiKeyQwertyComma, EPtiCaseUpper, 144, 8},
       
   461         {EPtiKeyQwertyFullstop, EPtiCaseUpper, 152, 8},
       
   462         {EPtiKeyQwerty3, EPtiCaseFnLower, 184, 1},
       
   463         {EPtiKeyQwerty4, EPtiCaseFnLower, 185, 1},
       
   464         {EPtiKeyQwerty5, EPtiCaseFnLower, 186, 1},
       
   465         {EPtiKeyQwerty6, EPtiCaseFnLower, 187, 1},
       
   466         {EPtiKeyQwerty7, EPtiCaseFnLower, 188, 1},
       
   467         {EPtiKeyQwerty8, EPtiCaseFnLower, 189, 1},
       
   468         {EPtiKeyQwertyD, EPtiCaseFnLower, 190, 1},
       
   469         {EPtiKeyQwertyF, EPtiCaseFnLower, 191, 1},
       
   470         {EPtiKeyQwertyG, EPtiCaseFnLower, 192, 1},
       
   471         {EPtiKeyQwertyH, EPtiCaseFnLower, 193, 1},
       
   472         {EPtiKeyQwertyJ, EPtiCaseFnLower, 194, 1},
       
   473         {EPtiKeyQwertyK, EPtiCaseFnLower, 195, 1},
       
   474         {EPtiKeyQwertyC, EPtiCaseFnLower, 196, 1},
       
   475         {EPtiKeyQwertyV, EPtiCaseFnLower, 197, 1},
       
   476         {EPtiKeyQwertyB, EPtiCaseFnLower, 198, 1},
       
   477         {EPtiKeyQwertyN, EPtiCaseFnLower, 199, 1},
       
   478         {EPtiKeyQwertyM, EPtiCaseFnLower, 200, 1},
       
   479         {EPtiKeyQwertyComma, EPtiCaseFnLower, 201, 1},
       
   480         {EPtiKeyQwerty3, EPtiCaseFnUpper, 206, 1},
       
   481         {EPtiKeyQwerty4, EPtiCaseFnUpper, 207, 1},
       
   482         {EPtiKeyQwerty5, EPtiCaseFnUpper, 208, 1},
       
   483         {EPtiKeyQwerty6, EPtiCaseFnUpper, 209, 1},
       
   484         {EPtiKeyQwerty7, EPtiCaseFnUpper, 210, 1},
       
   485         {EPtiKeyQwerty8, EPtiCaseFnUpper, 211, 1},
       
   486         {EPtiKeyQwertyD, EPtiCaseFnUpper, 212, 1},
       
   487         {EPtiKeyQwertyF, EPtiCaseFnUpper, 213, 1},
       
   488         {EPtiKeyQwertyG, EPtiCaseFnUpper, 214, 1},
       
   489         {EPtiKeyQwertyH, EPtiCaseFnUpper, 215, 1},
       
   490         {EPtiKeyQwertyJ, EPtiCaseFnUpper, 216, 1},
       
   491         {EPtiKeyQwertyK, EPtiCaseFnUpper, 217, 1},
       
   492         {EPtiKeyQwertyC, EPtiCaseFnUpper, 218, 1},
       
   493         {EPtiKeyQwertyV, EPtiCaseFnUpper, 219, 1},
       
   494         {EPtiKeyQwertyB, EPtiCaseFnUpper, 220, 1},
       
   495         {EPtiKeyQwertyN, EPtiCaseFnUpper, 221, 1},
       
   496         {EPtiKeyQwertyM, EPtiCaseFnUpper, 222, 1},
       
   497         {EPtiKeyQwertyComma, EPtiCaseFnUpper, 223, 1},
       
   498     };
       
   499 
       
   500 const TInt KMaxMiniQwertyIndex_PrcChinese = 92;
       
   501 
       
   502 //
       
   503 // MiniQwerty3x11 keymap data table
       
   504 //
       
   505 const TUint16 MiniQwerty3x11Data_table_PrcChinese[] =
       
   506     {
       
   507      0x2460,0x0071,0x2461,0x4e00,
       
   508      0x2460,0x0077,0x2461,0x4e28,
       
   509      0x2460,0x0065,0x2461,0x4e3f,
       
   510      0x2460,0x0072,0x2461,0x4e36,
       
   511      0x2460,0x0074,0x2461,0x4e5b,
       
   512      0x2460,0x0079,0x2461,0x003f,
       
   513      0x2460,0x0075,
       
   514      0x2460,0x0069,
       
   515      0x2460,0x006f,
       
   516      0x2460,0x0070,
       
   517      0x2460,0x0061,
       
   518      0x2460,0x0073,
       
   519      0x2460,0x0064,
       
   520      0x2460,0x0066,
       
   521      0x2460,0x0067,
       
   522      0x2460,0x0068,
       
   523      0x2460,0x006a,
       
   524      0x2460,0x006b,
       
   525      0x2460,0x006c,
       
   526      0x2460,0xFF0C,0x2460,0x002C,0x2461,0xFF0C,0x2461,0x002C,
       
   527      0x2460,0x007a,
       
   528      0x2460,0x0078,
       
   529      0x2460,0x0063,
       
   530      0x2460,0x0076,
       
   531      0x2460,0x0062,
       
   532      0x2460,0x006e,
       
   533      0x2460,0x006d,
       
   534      0x2461,0x2022,
       
   535      0x0051 ,
       
   536      0x0057,
       
   537      0x0045,
       
   538      0x0052,
       
   539      0x0054 ,
       
   540      0x0059,
       
   541      0x0055,
       
   542      0x0049,
       
   543      0x004f,
       
   544      0x0050,
       
   545      0x0041,
       
   546      0x0053,
       
   547      0x0044,
       
   548      0x0046,
       
   549      0x0047,
       
   550      0x0048,
       
   551      0x004a,
       
   552      0x004b,
       
   553      0x004c,
       
   554      0x2460,0x3002,0x2460,0x002E,0x2461,0x3002,0x2461,0x002E,
       
   555      0x005a,
       
   556      0x0058,
       
   557      0x0043,
       
   558      0x0056,
       
   559      0x0042,
       
   560      0x004e,
       
   561      0x004d,
       
   562      0x0031,
       
   563      0x0032,
       
   564      0x0033,
       
   565      0x0034,
       
   566      0x0035,
       
   567      0x0036,
       
   568      0x0037,
       
   569      0x0038,
       
   570      0x0039,
       
   571      0x0030 ,
       
   572      0x0040,
       
   573      0x002f,
       
   574      0x002b,
       
   575      0x002d,
       
   576      0x003d,
       
   577      0x0023,
       
   578      0x002a,
       
   579      0xFF1B,
       
   580      0xFF1A,
       
   581      0x0027 ,
       
   582      0x0028,
       
   583      0x0029,
       
   584      0x0025,
       
   585      0x0026,
       
   586      0x0022,
       
   587      0x003f,
       
   588      0x0021,
       
   589      0x0031,
       
   590      0x0032,
       
   591      0x0033,
       
   592      0x0034,
       
   593      0x0035,
       
   594      0x0036,
       
   595      0x0037,
       
   596      0x0038,
       
   597      0x0039,
       
   598      0x0030  ,
       
   599      0x0040,
       
   600      0x002f,
       
   601      0x002b,
       
   602      0x002d,
       
   603      0x003d,
       
   604      0x0023,
       
   605      0x002a,
       
   606      0xFF1B,
       
   607      0xFF1A,
       
   608      0x0027  ,
       
   609      0x0028,
       
   610      0x0029,
       
   611      0x0025,
       
   612      0x0026,
       
   613      0x0022,
       
   614      0x003f,
       
   615      0x0021,
       
   616     };
       
   617 
       
   618 const TInt KMiniQwerty3x11DataSize_PrcChinese = 162;
       
   619 
       
   620 
       
   621 const TPtiKeyBinding MiniQwerty3x11KeyBindings_table_PrcChinese[] =
       
   622     {
       
   623         {EPtiKeyQwertyQ, EPtiCaseLower, 0, 4},
       
   624         {EPtiKeyQwertyW, EPtiCaseLower, 4, 4},
       
   625         {EPtiKeyQwertyE, EPtiCaseLower, 8, 4},
       
   626         {EPtiKeyQwertyR, EPtiCaseLower, 12, 4},
       
   627         {EPtiKeyQwertyT, EPtiCaseLower, 16, 4},
       
   628         {EPtiKeyQwertyY, EPtiCaseLower, 20, 4},
       
   629         {EPtiKeyQwertyU, EPtiCaseLower, 24, 2},
       
   630         {EPtiKeyQwertyI, EPtiCaseLower, 26, 2},
       
   631         {EPtiKeyQwertyO, EPtiCaseLower, 28, 2},
       
   632         {EPtiKeyQwertyP, EPtiCaseLower, 30, 2},
       
   633         {EPtiKeyQwertyA, EPtiCaseLower, 32, 2},
       
   634         {EPtiKeyQwertyS, EPtiCaseLower, 34, 2},
       
   635         {EPtiKeyQwertyD, EPtiCaseLower, 36, 2},
       
   636         {EPtiKeyQwertyF, EPtiCaseLower, 38, 2},
       
   637         {EPtiKeyQwertyG, EPtiCaseLower, 40, 2},
       
   638         {EPtiKeyQwertyH, EPtiCaseLower, 42, 2},
       
   639         {EPtiKeyQwertyJ, EPtiCaseLower, 44, 2},
       
   640         {EPtiKeyQwertyK, EPtiCaseLower, 46, 2},
       
   641         {EPtiKeyQwertyL, EPtiCaseLower, 48, 2},
       
   642         {EPtiKeyQwertyComma, EPtiCaseLower, 50, 8},
       
   643         {EPtiKeyQwertyZ, EPtiCaseLower, 58, 2},
       
   644         {EPtiKeyQwertyX, EPtiCaseLower, 60, 2},
       
   645         {EPtiKeyQwertyC, EPtiCaseLower, 62, 2},
       
   646         {EPtiKeyQwertyV, EPtiCaseLower, 64, 2},
       
   647         {EPtiKeyQwertyB, EPtiCaseLower, 66, 2},
       
   648         {EPtiKeyQwertyN, EPtiCaseLower, 68, 2},
       
   649         {EPtiKeyQwertyM, EPtiCaseLower, 70, 2},
       
   650         {EStdKeySpace, EPtiCaseLower, 72, 2},
       
   651         {EPtiKeyQwertyQ, EPtiCaseUpper, 74, 1},
       
   652         {EPtiKeyQwertyW, EPtiCaseUpper, 75, 1},
       
   653         {EPtiKeyQwertyE, EPtiCaseUpper, 76, 1},
       
   654         {EPtiKeyQwertyR, EPtiCaseUpper, 77, 1},
       
   655         {EPtiKeyQwertyT, EPtiCaseUpper, 78, 1},
       
   656         {EPtiKeyQwertyY, EPtiCaseUpper, 79, 1},
       
   657         {EPtiKeyQwertyU, EPtiCaseUpper, 80, 1},
       
   658         {EPtiKeyQwertyI, EPtiCaseUpper, 81, 1},
       
   659         {EPtiKeyQwertyO, EPtiCaseUpper, 82, 1},
       
   660         {EPtiKeyQwertyP, EPtiCaseUpper, 83, 1},
       
   661         {EPtiKeyQwertyA, EPtiCaseUpper, 84, 1},
       
   662         {EPtiKeyQwertyS, EPtiCaseUpper, 85, 1},
       
   663         {EPtiKeyQwertyD, EPtiCaseUpper, 86, 1},
       
   664         {EPtiKeyQwertyF, EPtiCaseUpper, 87, 1},
       
   665         {EPtiKeyQwertyG, EPtiCaseUpper, 88, 1},
       
   666         {EPtiKeyQwertyH, EPtiCaseUpper, 89, 1},
       
   667         {EPtiKeyQwertyJ, EPtiCaseUpper, 90, 1},
       
   668         {EPtiKeyQwertyK, EPtiCaseUpper, 91, 1},
       
   669         {EPtiKeyQwertyL, EPtiCaseUpper, 92, 1},
       
   670         {EPtiKeyQwertyComma, EPtiCaseUpper, 93, 8},
       
   671         {EPtiKeyQwertyZ, EPtiCaseUpper, 101, 1},
       
   672         {EPtiKeyQwertyX, EPtiCaseUpper, 102, 1},
       
   673         {EPtiKeyQwertyC, EPtiCaseUpper, 103, 1},
       
   674         {EPtiKeyQwertyV, EPtiCaseUpper, 104, 1},
       
   675         {EPtiKeyQwertyB, EPtiCaseUpper, 105, 1},
       
   676         {EPtiKeyQwertyN, EPtiCaseUpper, 106, 1},
       
   677         {EPtiKeyQwertyM, EPtiCaseUpper, 107, 1},
       
   678         {EStdKeySpace, EPtiCaseUpper, 108, 0},
       
   679         {EPtiKeyQwertyQ, EPtiCaseFnLower, 108, 1},
       
   680         {EPtiKeyQwertyW, EPtiCaseFnLower, 109, 1},
       
   681         {EPtiKeyQwertyE, EPtiCaseFnLower, 110, 1},
       
   682         {EPtiKeyQwertyR, EPtiCaseFnLower, 111, 1},
       
   683         {EPtiKeyQwertyT, EPtiCaseFnLower, 112, 1},
       
   684         {EPtiKeyQwertyY, EPtiCaseFnLower, 113, 1},
       
   685         {EPtiKeyQwertyU, EPtiCaseFnLower, 114, 1},
       
   686         {EPtiKeyQwertyI, EPtiCaseFnLower, 115, 1},
       
   687         {EPtiKeyQwertyO, EPtiCaseFnLower, 116, 1},
       
   688         {EPtiKeyQwertyP, EPtiCaseFnLower, 117, 1},
       
   689         {EPtiKeyQwertyA, EPtiCaseFnLower, 118, 1},
       
   690         {EPtiKeyQwertyS, EPtiCaseFnLower, 119, 1},
       
   691         {EPtiKeyQwertyD, EPtiCaseFnLower, 120, 1},
       
   692         {EPtiKeyQwertyF, EPtiCaseFnLower, 121, 1},
       
   693         {EPtiKeyQwertyG, EPtiCaseFnLower, 122, 1},
       
   694         {EPtiKeyQwertyH, EPtiCaseFnLower, 123, 1},
       
   695         {EPtiKeyQwertyJ, EPtiCaseFnLower, 124, 1},
       
   696         {EPtiKeyQwertyK, EPtiCaseFnLower, 125, 1},
       
   697         {EPtiKeyQwertyL, EPtiCaseFnLower, 126, 1},
       
   698         {EPtiKeyQwertyComma, EPtiCaseFnLower, 127, 1},
       
   699         {EPtiKeyQwertyZ, EPtiCaseFnLower, 128, 1},
       
   700         {EPtiKeyQwertyX, EPtiCaseFnLower, 129, 1},
       
   701         {EPtiKeyQwertyC, EPtiCaseFnLower, 130, 1},
       
   702         {EPtiKeyQwertyV, EPtiCaseFnLower, 131, 1},
       
   703         {EPtiKeyQwertyB, EPtiCaseFnLower, 132, 1},
       
   704         {EPtiKeyQwertyN, EPtiCaseFnLower, 133, 1},
       
   705         {EPtiKeyQwertyM, EPtiCaseFnLower, 134, 1},
       
   706         {EPtiKeyQwertyQ, EPtiCaseFnUpper, 135, 1},
       
   707         {EPtiKeyQwertyW, EPtiCaseFnUpper, 136, 1},
       
   708         {EPtiKeyQwertyE, EPtiCaseFnUpper, 137, 1},
       
   709         {EPtiKeyQwertyR, EPtiCaseFnUpper, 138, 1},
       
   710         {EPtiKeyQwertyT, EPtiCaseFnUpper, 139, 1},
       
   711         {EPtiKeyQwertyY, EPtiCaseFnUpper, 140, 1},
       
   712         {EPtiKeyQwertyU, EPtiCaseFnUpper, 141, 1},
       
   713         {EPtiKeyQwertyI, EPtiCaseFnUpper, 142, 1},
       
   714         {EPtiKeyQwertyO, EPtiCaseFnUpper, 143, 1},
       
   715         {EPtiKeyQwertyP, EPtiCaseFnUpper, 144, 1},
       
   716         {EPtiKeyQwertyA, EPtiCaseFnUpper, 145, 1},
       
   717         {EPtiKeyQwertyS, EPtiCaseFnUpper, 146, 1},
       
   718         {EPtiKeyQwertyD, EPtiCaseFnUpper, 147, 1},
       
   719         {EPtiKeyQwertyF, EPtiCaseFnUpper, 148, 1},
       
   720         {EPtiKeyQwertyG, EPtiCaseFnUpper, 149, 1},
       
   721         {EPtiKeyQwertyH, EPtiCaseFnUpper, 150, 1},
       
   722         {EPtiKeyQwertyJ, EPtiCaseFnUpper, 151, 1},
       
   723         {EPtiKeyQwertyK, EPtiCaseFnUpper, 152, 1},
       
   724         {EPtiKeyQwertyL, EPtiCaseFnUpper, 153, 1},
       
   725         {EPtiKeyQwertyComma, EPtiCaseFnUpper, 154, 1},
       
   726         {EPtiKeyQwertyZ, EPtiCaseFnUpper, 155, 1},
       
   727         {EPtiKeyQwertyX, EPtiCaseFnUpper, 156, 1},
       
   728         {EPtiKeyQwertyC, EPtiCaseFnUpper, 157, 1},
       
   729         {EPtiKeyQwertyV, EPtiCaseFnUpper, 158, 1},
       
   730         {EPtiKeyQwertyB, EPtiCaseFnUpper, 159, 1},
       
   731         {EPtiKeyQwertyN, EPtiCaseFnUpper, 160, 1},
       
   732         {EPtiKeyQwertyM, EPtiCaseFnUpper, 161, 1},
       
   733     };
       
   734 
       
   735 const TInt KMaxMiniQwerty3x11Index_PrcChinese = 110;
       
   736 
       
   737 //
       
   738 // HalfQwerty keymap data table
       
   739 //
       
   740 const TUint16 HalfQwertyData_table_PrcChinese[] =
       
   741     {
       
   742      0x0071,0x0077,
       
   743      0x0065,0x0072,0x2461,0x4e00,
       
   744      0x0074,0x0079,0x2461,0x4e28,
       
   745      0x0075,0x0069,0x2461,0x4e3f,
       
   746      0x006f,0x0070,
       
   747      0x0061,0x0073,
       
   748      0x0064,0x0066,0x2461,0x4e36,
       
   749      0x0067,0x0068,0x2461,0x4e5b,
       
   750      0x006a,0x006b,0x2461,0x003f,
       
   751      0x006c,
       
   752      0x007a,0x0078,
       
   753      0x0063,0x0076,
       
   754      0x0062,0x006e,
       
   755      0x006d,
       
   756      0x3002,0xFF0C,0xFF1A,0xFF1B,
       
   757      0x0020,
       
   758      0x005e,
       
   759      0x0051,0x0057,
       
   760      0x0045,0x0052,
       
   761      0x0054,0x0059,
       
   762      0x0055,0x0049,
       
   763      0x004f,0x0050,
       
   764      0x0041,0x0053,
       
   765      0x0044,0x0046,
       
   766      0x0047,0x0048,
       
   767      0x004a,0x004b,
       
   768      0x004c,
       
   769      0x005a,0x0058,
       
   770      0x0043,0x0056,
       
   771      0x0042,0x004e,
       
   772      0x004d,
       
   773      0x3002,0xFF0C,0xFF1A,0xFF1B,
       
   774      0x0020,
       
   775      0x005e,
       
   776      0xFF01,
       
   777      0x0031,
       
   778      0x0032,
       
   779      0x0033,
       
   780      0x002d,
       
   781      0xFF1F,
       
   782      0x0034,
       
   783      0x0035,
       
   784      0x0036,
       
   785      0x0027,
       
   786      0x0040,
       
   787      0x0037,
       
   788      0x0038,
       
   789      0x0039,
       
   790      0xFF1A, 0xFF1B, 0x3002, 0xFF0C,
       
   791      0x002a, 0x002b,
       
   792      0x0030,
       
   793      0x0023, 0x002f,
       
   794      0xFF01,
       
   795      0x0031,
       
   796      0x0032,
       
   797      0x0033,
       
   798      0x002d,
       
   799      0xFF1F,
       
   800      0x0034,
       
   801      0x0035,
       
   802      0x0036,
       
   803      0x0027,
       
   804      0x0040,
       
   805      0x0037,
       
   806      0x0038,
       
   807      0x0039,
       
   808      0xFF1A, 0xFF1B, 0x3002, 0xFF0C,
       
   809      0x002a, 0x002b,
       
   810      0x0030,
       
   811      0x0023, 0x002f,
       
   812     };
       
   813 
       
   814 const TInt KHalfQwertyDataSize_PrcChinese = 122;
       
   815 
       
   816 
       
   817 const TPtiKeyBinding HalfQwertyKeyBindings_table_PrcChinese[] =
       
   818     {
       
   819         {EPtiKeyQwertyQ, EPtiCaseLower, 0, 2},
       
   820         {EPtiKeyQwerty1, EPtiCaseLower, 2, 4},
       
   821         {EPtiKeyQwerty2, EPtiCaseLower, 6, 4},
       
   822         {EPtiKeyQwerty3, EPtiCaseLower, 10, 4},
       
   823         {EPtiKeyQwertyO, EPtiCaseLower, 14, 2},
       
   824         {EPtiKeyQwertyA, EPtiCaseLower, 16, 2},
       
   825         {EPtiKeyQwerty4, EPtiCaseLower, 18, 4},
       
   826         {EPtiKeyQwerty5, EPtiCaseLower, 22, 4},
       
   827         {EPtiKeyQwerty6, EPtiCaseLower, 26, 4},
       
   828         {EPtiKeyQwertyL, EPtiCaseLower, 30, 1},
       
   829         {EPtiKeyQwertyZ, EPtiCaseLower, 31, 2},
       
   830         {EPtiKeyQwerty7, EPtiCaseLower, 33, 2},
       
   831         {EPtiKeyQwerty8, EPtiCaseLower, 35, 2},
       
   832         {EPtiKeyQwerty9, EPtiCaseLower, 37, 1},
       
   833         {EPtiKeyQwertyFullstop, EPtiCaseLower, 38, 4},
       
   834         {EPtiKeyQwertyChr, EPtiCaseLower, 42, 0},
       
   835         {EPtiKeyQwertySpace, EPtiCaseLower, 42, 1},
       
   836         {EPtiKeyQwertyLeftShift, EPtiCaseLower, 43, 1},
       
   837         {EPtiKeyQwertyQ, EPtiCaseUpper, 44, 2},
       
   838         {EPtiKeyQwerty1, EPtiCaseUpper, 46, 2},
       
   839         {EPtiKeyQwerty2, EPtiCaseUpper, 48, 2},
       
   840         {EPtiKeyQwerty3, EPtiCaseUpper, 50, 2},
       
   841         {EPtiKeyQwertyO, EPtiCaseUpper, 52, 2},
       
   842         {EPtiKeyQwertyA, EPtiCaseUpper, 54, 2},
       
   843         {EPtiKeyQwerty4, EPtiCaseUpper, 56, 2},
       
   844         {EPtiKeyQwerty5, EPtiCaseUpper, 58, 2},
       
   845         {EPtiKeyQwerty6, EPtiCaseUpper, 60, 2},
       
   846         {EPtiKeyQwertyL, EPtiCaseUpper, 62, 1},
       
   847         {EPtiKeyQwertyZ, EPtiCaseUpper, 63, 2},
       
   848         {EPtiKeyQwerty7, EPtiCaseUpper, 65, 2},
       
   849         {EPtiKeyQwerty8, EPtiCaseUpper, 67, 2},
       
   850         {EPtiKeyQwerty9, EPtiCaseUpper, 69, 1},
       
   851         {EPtiKeyQwertyFullstop, EPtiCaseUpper, 70, 4},
       
   852         {EPtiKeyQwertyChr, EPtiCaseUpper, 74, 0},
       
   853         {EPtiKeyQwertySpace, EPtiCaseUpper, 74, 1},
       
   854         {EPtiKeyQwertyLeftShift, EPtiCaseUpper, 75, 1},
       
   855         {EPtiKeyQwertyQ, EPtiCaseFnLower, 76, 1},
       
   856         {EPtiKeyQwerty1, EPtiCaseFnLower, 77, 1},
       
   857         {EPtiKeyQwerty2, EPtiCaseFnLower, 78, 1},
       
   858         {EPtiKeyQwerty3, EPtiCaseFnLower, 79, 1},
       
   859         {EPtiKeyQwertyO, EPtiCaseFnLower, 80, 1},
       
   860         {EPtiKeyQwertyA, EPtiCaseFnLower, 81, 1},
       
   861         {EPtiKeyQwerty4, EPtiCaseFnLower, 82, 1},
       
   862         {EPtiKeyQwerty5, EPtiCaseFnLower, 83, 1},
       
   863         {EPtiKeyQwerty6, EPtiCaseFnLower, 84, 1},
       
   864         {EPtiKeyQwertyL, EPtiCaseFnLower, 85, 1},
       
   865         {EPtiKeyQwertyZ, EPtiCaseFnLower, 86, 1},
       
   866         {EPtiKeyQwerty7, EPtiCaseFnLower, 87, 1},
       
   867         {EPtiKeyQwerty8, EPtiCaseFnLower, 88, 1},
       
   868         {EPtiKeyQwerty9, EPtiCaseFnLower, 89, 1},
       
   869         {EPtiKeyQwertyFullstop, EPtiCaseFnLower, 90, 4},
       
   870         {EPtiKeyQwertyChr, EPtiCaseFnLower, 94, 2},
       
   871         {EPtiKeyQwertySpace, EPtiCaseFnLower, 96, 1},
       
   872         {EPtiKeyQwertyLeftShift, EPtiCaseFnLower, 97, 2},
       
   873         {EPtiKeyQwertyQ, EPtiCaseFnUpper, 99, 1},
       
   874         {EPtiKeyQwerty1, EPtiCaseFnUpper, 100, 1},
       
   875         {EPtiKeyQwerty2, EPtiCaseFnUpper, 101, 1},
       
   876         {EPtiKeyQwerty3, EPtiCaseFnUpper, 102, 1},
       
   877         {EPtiKeyQwertyO, EPtiCaseFnUpper, 103, 1},
       
   878         {EPtiKeyQwertyA, EPtiCaseFnUpper, 104, 1},
       
   879         {EPtiKeyQwerty4, EPtiCaseFnUpper, 105, 1},
       
   880         {EPtiKeyQwerty5, EPtiCaseFnUpper, 106, 1},
       
   881         {EPtiKeyQwerty6, EPtiCaseFnUpper, 107, 1},
       
   882         {EPtiKeyQwertyL, EPtiCaseFnUpper, 108, 1},
       
   883         {EPtiKeyQwertyZ, EPtiCaseFnUpper, 109, 1},
       
   884         {EPtiKeyQwerty7, EPtiCaseFnUpper, 110, 1},
       
   885         {EPtiKeyQwerty8, EPtiCaseFnUpper, 111, 1},
       
   886         {EPtiKeyQwerty9, EPtiCaseFnUpper, 112, 1},
       
   887         {EPtiKeyQwertyFullstop, EPtiCaseFnUpper, 113, 4},
       
   888         {EPtiKeyQwertyChr, EPtiCaseFnUpper, 117, 2},
       
   889         {EPtiKeyQwertySpace, EPtiCaseFnUpper, 119, 1},
       
   890         {EPtiKeyQwertyLeftShift, EPtiCaseFnUpper, 120, 2},
       
   891     };
       
   892 
       
   893 const TInt KMaxHalfQwertyIndex_PrcChinese = 72;
       
   894 
       
   895 //
       
   896 // CustomQwerty keymap data table
       
   897 //
       
   898 const TUint16 CustomQwertyData_table_PrcChinese[] =
       
   899     {
       
   900      0x0061,
       
   901      0x0062 ,
       
   902      0x0063,
       
   903      0x0064,
       
   904      0x0065,
       
   905      0x0066,
       
   906      0x0067,
       
   907      0x0068,
       
   908      0x0069,
       
   909      0x006A,
       
   910      0x006B,
       
   911      0x006C,
       
   912      0x0031 ,
       
   913      0x0032,
       
   914      0x0033,
       
   915      0x0034,
       
   916      0x0035,
       
   917      0x0036,
       
   918      0x0037,
       
   919      0x0038,
       
   920      0x0039,
       
   921      0x0030,
       
   922      0x003f,
       
   923      0x003e,
       
   924      0x0041,
       
   925      0x0042,
       
   926      0x0043,
       
   927      0x0044,
       
   928      0x0045,
       
   929      0x0046,
       
   930      0x0047,
       
   931      0x0048,
       
   932      0x0049,
       
   933      0x004A,
       
   934      0x004B,
       
   935      0x004C,
       
   936      0x0021 ,
       
   937      0x0022,
       
   938      0x0023,
       
   939      0x0024,
       
   940      0x0025,
       
   941      0x0026,
       
   942      0x0027,
       
   943      0x0028,
       
   944      0x0029,
       
   945      0x002A,
       
   946      0x002B,
       
   947      0x002C,
       
   948     };
       
   949 
       
   950 const TInt KCustomQwertyDataSize_PrcChinese = 48;
       
   951 
       
   952 
       
   953 const TPtiKeyBinding CustomQwertyKeyBindings_table_PrcChinese[] =
       
   954     {
       
   955         { EPtiKeyQwerty1, EPtiCaseLower, 0, 1},
       
   956         { EPtiKeyQwerty2, EPtiCaseLower, 1, 1},
       
   957         { EPtiKeyQwerty3, EPtiCaseLower, 2, 1},
       
   958         { EPtiKeyQwerty4, EPtiCaseLower, 3, 1},
       
   959         { EPtiKeyQwerty5, EPtiCaseLower, 4, 1},
       
   960         { EPtiKeyQwerty6, EPtiCaseLower, 5, 1},
       
   961         { EPtiKeyQwerty7, EPtiCaseLower, 6, 1},
       
   962         { EPtiKeyQwerty8, EPtiCaseLower, 7, 1},
       
   963         { EPtiKeyQwerty9, EPtiCaseLower, 8, 1},
       
   964         { EPtiKeyQwerty0, EPtiCaseLower, 9, 1},
       
   965         { EPtiKeyQwerty1, EPtiCaseUpper, 24, 1},
       
   966         { EPtiKeyQwerty2, EPtiCaseUpper, 25, 1},
       
   967         { EPtiKeyQwerty3, EPtiCaseUpper, 26, 1},
       
   968         { EPtiKeyQwerty4, EPtiCaseUpper, 27, 1},
       
   969         { EPtiKeyQwerty5, EPtiCaseUpper, 28, 1},
       
   970         { EPtiKeyQwerty6, EPtiCaseUpper, 29, 1},
       
   971         { EPtiKeyQwerty7, EPtiCaseUpper, 30, 1},
       
   972         { EPtiKeyQwerty8, EPtiCaseUpper, 31, 1},
       
   973         { EPtiKeyQwerty9, EPtiCaseUpper, 32, 1},
       
   974         { EPtiKeyQwerty0, EPtiCaseUpper, 33, 1},
       
   975     };
       
   976 
       
   977 const TInt KMaxCustomQwertyIndex_PrcChinese = 20;
       
   978 
       
   979 //
       
   980 // Class implementation.
       
   981 //
       
   982 
       
   983 CPtiLangDataImplPrcChinese* CPtiLangDataImplPrcChinese::NewL()
       
   984     {
       
   985     return new (ELeave) CPtiLangDataImplPrcChinese();
       
   986     }
       
   987 
       
   988 
       
   989 TInt CPtiLangDataImplPrcChinese::LanguageCode() const
       
   990     {
       
   991     return ELangPrcChinese;
       
   992     }
       
   993 
       
   994 
       
   995 const TUint16* CPtiLangDataImplPrcChinese::KeyData(TPtiKeyboardType aKeyboardType, TInt& aDataSize) const
       
   996     {
       
   997     if (aKeyboardType == EPtiKeyboard12Key)
       
   998         {
       
   999         aDataSize = KMultitapDataSize_PrcChinese;
       
  1000         return MultitapData_table_PrcChinese;
       
  1001         }
       
  1002     if (aKeyboardType == EPtiKeyboardQwerty4x12)
       
  1003         {
       
  1004         aDataSize = KStandardQwertyDataSize_PrcChinese;
       
  1005         return StandardQwertyData_table_PrcChinese;
       
  1006         }
       
  1007 
       
  1008     if (aKeyboardType == EPtiKeyboardQwerty4x10)
       
  1009         {
       
  1010         aDataSize = KMiniQwertyDataSize_PrcChinese;
       
  1011         return MiniQwertyData_table_PrcChinese;
       
  1012         }
       
  1013 
       
  1014     if (aKeyboardType == EPtiKeyboardQwerty3x11)
       
  1015         {
       
  1016         aDataSize = KMiniQwerty3x11DataSize_PrcChinese;
       
  1017         return MiniQwerty3x11Data_table_PrcChinese;
       
  1018         }
       
  1019 
       
  1020     if (aKeyboardType == EPtiKeyboardHalfQwerty)
       
  1021         {
       
  1022         aDataSize = KHalfQwertyDataSize_PrcChinese;
       
  1023         return HalfQwertyData_table_PrcChinese;
       
  1024         }
       
  1025 
       
  1026     if (aKeyboardType == EPtiKeyboardCustomQwerty)
       
  1027         {
       
  1028         aDataSize = KCustomQwertyDataSize_PrcChinese;
       
  1029         return CustomQwertyData_table_PrcChinese;
       
  1030         }
       
  1031 
       
  1032     aDataSize = 0;
       
  1033     return NULL;
       
  1034     }
       
  1035 
       
  1036 
       
  1037 const TPtiKeyBinding* CPtiLangDataImplPrcChinese::KeyBindingTable(TPtiKeyboardType aKeyboardType, TInt& aNumItems) const
       
  1038     {
       
  1039     if (aKeyboardType == EPtiKeyboard12Key)
       
  1040         {
       
  1041         aNumItems = KMaxMultitapIndex_PrcChinese;
       
  1042         return MultitapKeyBindings_table_PrcChinese;
       
  1043         }
       
  1044     if (aKeyboardType == EPtiKeyboardQwerty4x12)
       
  1045         {
       
  1046         aNumItems = KMaxStandardQwertyIndex_PrcChinese;
       
  1047         return StandardQwertyKeyBindings_table_PrcChinese;
       
  1048         }
       
  1049     if (aKeyboardType == EPtiKeyboardQwerty4x10)
       
  1050         {
       
  1051         aNumItems = KMaxMiniQwertyIndex_PrcChinese;
       
  1052         return MiniQwertyKeyBindings_table_PrcChinese;
       
  1053         }
       
  1054     if (aKeyboardType == EPtiKeyboardQwerty3x11)
       
  1055         {
       
  1056         aNumItems = KMaxMiniQwerty3x11Index_PrcChinese;
       
  1057         return MiniQwerty3x11KeyBindings_table_PrcChinese;
       
  1058         }
       
  1059     if (aKeyboardType == EPtiKeyboardHalfQwerty)
       
  1060         {
       
  1061         aNumItems = KMaxHalfQwertyIndex_PrcChinese;
       
  1062         return HalfQwertyKeyBindings_table_PrcChinese;
       
  1063         }
       
  1064     if (aKeyboardType == EPtiKeyboardCustomQwerty)
       
  1065         {
       
  1066         aNumItems = KMaxCustomQwertyIndex_PrcChinese;
       
  1067         return CustomQwertyKeyBindings_table_PrcChinese;
       
  1068         }
       
  1069 
       
  1070     aNumItems = 0;
       
  1071     return NULL;
       
  1072     }
       
  1073 
       
  1074 
       
  1075 const TPtiNumericKeyBinding* CPtiLangDataImplPrcChinese::NumericModeKeysTable(TPtiKeyboardType aKeyboardType, TInt& aNumEntries) const
       
  1076     {
       
  1077     if (aKeyboardType == EPtiKeyboardQwerty4x12)
       
  1078         {
       
  1079         aNumEntries = KNumStandardQwertyNumericKeysEntries_PrcChinese;
       
  1080         return StandardQwertyNumericKeysData_table_PrcChinese;
       
  1081         }
       
  1082 
       
  1083     aNumEntries = 0;
       
  1084     return NULL;
       
  1085     }
       
  1086 
       
  1087 
       
  1088 
       
  1089 TBool CPtiLangDataImplPrcChinese::SuitableForLatinOnlyMode() const
       
  1090     {
       
  1091     return EFalse;
       
  1092     }
       
  1093 
       
  1094