textinput/ptienginev2/languages/PtiKeymappings_ITUT_96.cpp
changeset 0 eb1f2e154e89
child 11 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_96.h"
       
    34 
       
    35 //
       
    36 // Multitap keymap data table
       
    37 //
       
    38 const TUint16 MultitapData_table_Vietnamese[] =
       
    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,0x103,0xe2,0x62,0x63,0x32, 0x301,
       
    42      0x64,0x111,0x65,0xea,0x66,0x33, 0x300,
       
    43      0x67,0x68,0x69,0x34, 0x309,
       
    44      0x6a,0x6b,0x6c,0x35, 0x303,
       
    45      0x6d,0x6e,0x6f,0xf4,0x1a1,0x36,0x323,
       
    46      0x70,0x71,0x72,0x73,0x37,
       
    47      0x74,0x75,0x1b0,0x76,0x38,
       
    48      0x77,0x78,0x79,0x7a,0x39,
       
    49      0x0020,0x0030,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,0x102,0xc2,0x42,0x43,0x32, 0x301,
       
    52      0x44,0x110,0x45,0xca,0x46,0x33, 0x300,
       
    53      0x47,0x48,0x49,0x34, 0x309,
       
    54      0x4a,0x4b,0x4c,0x35, 0x303,
       
    55      0x4d,0x4e,0x4f,0xd4,0x1a0,0x36,0x323,
       
    56      0x50,0x51,0x52,0x53,0x37,
       
    57      0x54,0x55,0x1af,0x56,0x38,
       
    58      0x57,0x58,0x59,0x5a,0x39,
       
    59      0x0020,0x0030,0x21b2,
       
    60     };
       
    61 
       
    62 const TInt KMultitapDataSize_Vietnamese = 158;
       
    63 
       
    64 
       
    65 const TPtiKeyBinding MultitapKeyBindings_table_Vietnamese[] =
       
    66     {
       
    67         {EPtiKey1, EPtiCaseLower, 0, 30},
       
    68         {EPtiKey2, EPtiCaseLower, 30, 7},
       
    69         {EPtiKey3, EPtiCaseLower, 37, 7},
       
    70         {EPtiKey4, EPtiCaseLower, 44, 5},
       
    71         {EPtiKey5, EPtiCaseLower, 49, 5},
       
    72         {EPtiKey6, EPtiCaseLower, 54, 7},
       
    73         {EPtiKey7, EPtiCaseLower, 61, 5},
       
    74         {EPtiKey8, EPtiCaseLower, 66, 5},
       
    75         {EPtiKey9, EPtiCaseLower, 71, 5},
       
    76         {EPtiKeyStar, EPtiCaseLower, 76, 0},
       
    77         {EPtiKey0, EPtiCaseLower, 76, 3},
       
    78         {EPtiKeyHash, EPtiCaseLower, 79, 0},
       
    79         {EPtiKey1, EPtiCaseUpper, 79, 30},
       
    80         {EPtiKey2, EPtiCaseUpper, 109, 7},
       
    81         {EPtiKey3, EPtiCaseUpper, 116, 7},
       
    82         {EPtiKey4, EPtiCaseUpper, 123, 5},
       
    83         {EPtiKey5, EPtiCaseUpper, 128, 5},
       
    84         {EPtiKey6, EPtiCaseUpper, 133, 7},
       
    85         {EPtiKey7, EPtiCaseUpper, 140, 5},
       
    86         {EPtiKey8, EPtiCaseUpper, 145, 5},
       
    87         {EPtiKey9, EPtiCaseUpper, 150, 5},
       
    88         {EPtiKeyStar, EPtiCaseUpper, 155, 0},
       
    89         {EPtiKey0, EPtiCaseUpper, 155, 3},
       
    90         {EPtiKeyHash, EPtiCaseUpper, 158, 0},
       
    91     };
       
    92 
       
    93 const TInt KMaxMultitapIndex_Vietnamese = 24;
       
    94 
       
    95 //
       
    96 // StandardQwerty keymap data table
       
    97 //
       
    98 const TUint16 StandardQwertyData_table_Vietnamese[] =
       
    99     {
       
   100      0x31,
       
   101      0x32,
       
   102      0x33,
       
   103      0x34,
       
   104      0x35,
       
   105      0x36,
       
   106      0x37,
       
   107      0x38,
       
   108      0x39,
       
   109      0x30,
       
   110      0x2b,
       
   111      0x71,
       
   112      0x1b0,
       
   113      0x65,0xe8,0xe9,0xea,0xeb,
       
   114      0x72,
       
   115      0x74,0xfe,
       
   116      0x79,0xfd,
       
   117      0x75,0xf9,0xfa,0xfb,0xfc,
       
   118      0x69,0xec,0xed,0xee,0xef,
       
   119      0x6f,0xf6,0xf8,0xf2,0xf3,0xf4,0xf5,
       
   120      0x70,
       
   121      0x2d,
       
   122      0x23,
       
   123      0x61,0xe4,0xe6,0xe5,0xe0,0xe1,0xe2,0xe3,
       
   124      0x73,0xdf,
       
   125      0x64,0xf0,
       
   126      0x66,
       
   127      0x67,
       
   128      0x68,
       
   129      0x6a,
       
   130      0x6b,
       
   131      0x6c,
       
   132      0x3b,
       
   133      0x27,
       
   134      0x7a,
       
   135      0x78,
       
   136      0x63,0xe7,
       
   137      0x76,
       
   138      0x62,
       
   139      0x6e,0xf1,
       
   140      0x6d,
       
   141      0x2c,
       
   142      0x2e,
       
   143      0x2f,
       
   144      0x21,
       
   145      0x22,
       
   146      0xa3,
       
   147      0x24,
       
   148      0x20ac,
       
   149      0x25,
       
   150      0x26,
       
   151      0x2a,
       
   152      0x28,
       
   153      0x29,
       
   154      0x3d,
       
   155      0x51,
       
   156      0x1af,
       
   157      0x45,0xc8,0xc9,0xca,0xcb,
       
   158      0x52,
       
   159      0x54,0xde,
       
   160      0x59,0xdd,
       
   161      0x55,0xd9,0xda,0xdb,0xdc,
       
   162      0x49,0xcc,0xcd,0xce,0xcf,
       
   163      0x4f,0xd6,0xd8,0xd2,0xd3,0xd4,0xd5,
       
   164      0x50,
       
   165      0x5f,
       
   166      0x7e,
       
   167      0x41,0xc4,0xc6,0xc5,0xc0,0xc1,0xc2,0xc3,
       
   168      0x53,
       
   169      0x44,0xd0,
       
   170      0x46,
       
   171      0x47,
       
   172      0x48,
       
   173      0x4a,
       
   174      0x4b,
       
   175      0x4c,
       
   176      0x3a,
       
   177      0x40,
       
   178      0x5a,
       
   179      0x58,
       
   180      0x43,0xc7,
       
   181      0x56,
       
   182      0x42,
       
   183      0x4e,0xd1,
       
   184      0x4d,
       
   185      0x3c,
       
   186      0x3e,
       
   187      0x3f,
       
   188     };
       
   189 
       
   190 const TInt KStandardQwertyDataSize_Vietnamese = 149;
       
   191 
       
   192 
       
   193 const TPtiKeyBinding StandardQwertyKeyBindings_table_Vietnamese[] =
       
   194     {
       
   195         {EPtiKeyQwerty1, EPtiCaseLower, 0, 1},
       
   196         {EPtiKeyQwerty2, EPtiCaseLower, 1, 1},
       
   197         {EPtiKeyQwerty3, EPtiCaseLower, 2, 1},
       
   198         {EPtiKeyQwerty4, EPtiCaseLower, 3, 1},
       
   199         {EPtiKeyQwerty5, EPtiCaseLower, 4, 1},
       
   200         {EPtiKeyQwerty6, EPtiCaseLower, 5, 1},
       
   201         {EPtiKeyQwerty7, EPtiCaseLower, 6, 1},
       
   202         {EPtiKeyQwerty8, EPtiCaseLower, 7, 1},
       
   203         {EPtiKeyQwerty9, EPtiCaseLower, 8, 1},
       
   204         {EPtiKeyQwerty0, EPtiCaseLower, 9, 1},
       
   205         {EPtiKeyQwertyPlus, EPtiCaseLower, 10, 1},
       
   206         {EPtiKeyQwertyQ, EPtiCaseLower, 11, 1},
       
   207         {EPtiKeyQwertyW, EPtiCaseLower, 12, 1},
       
   208         {EPtiKeyQwertyE, EPtiCaseLower, 13, 5},
       
   209         {EPtiKeyQwertyR, EPtiCaseLower, 18, 1},
       
   210         {EPtiKeyQwertyT, EPtiCaseLower, 19, 2},
       
   211         {EPtiKeyQwertyY, EPtiCaseLower, 21, 2},
       
   212         {EPtiKeyQwertyU, EPtiCaseLower, 23, 5},
       
   213         {EPtiKeyQwertyI, EPtiCaseLower, 28, 5},
       
   214         {EPtiKeyQwertyO, EPtiCaseLower, 33, 7},
       
   215         {EPtiKeyQwertyP, EPtiCaseLower, 40, 1},
       
   216         {EPtiKeyQwertyMinus, EPtiCaseLower, 41, 1},
       
   217         {EPtiKeyQwertyHash, EPtiCaseLower, 42, 1},
       
   218         {EPtiKeyQwertyA, EPtiCaseLower, 43, 8},
       
   219         {EPtiKeyQwertyS, EPtiCaseLower, 51, 2},
       
   220         {EPtiKeyQwertyD, EPtiCaseLower, 53, 2},
       
   221         {EPtiKeyQwertyF, EPtiCaseLower, 55, 1},
       
   222         {EPtiKeyQwertyG, EPtiCaseLower, 56, 1},
       
   223         {EPtiKeyQwertyH, EPtiCaseLower, 57, 1},
       
   224         {EPtiKeyQwertyJ, EPtiCaseLower, 58, 1},
       
   225         {EPtiKeyQwertyK, EPtiCaseLower, 59, 1},
       
   226         {EPtiKeyQwertyL, EPtiCaseLower, 60, 1},
       
   227         {EPtiKeyQwertySemicolon, EPtiCaseLower, 61, 1},
       
   228         {EPtiKeyQwertyApostrophe, EPtiCaseLower, 62, 1},
       
   229         {EPtiKeyQwertyZ, EPtiCaseLower, 63, 1},
       
   230         {EPtiKeyQwertyX, EPtiCaseLower, 64, 1},
       
   231         {EPtiKeyQwertyC, EPtiCaseLower, 65, 2},
       
   232         {EPtiKeyQwertyV, EPtiCaseLower, 67, 1},
       
   233         {EPtiKeyQwertyB, EPtiCaseLower, 68, 1},
       
   234         {EPtiKeyQwertyN, EPtiCaseLower, 69, 2},
       
   235         {EPtiKeyQwertyM, EPtiCaseLower, 71, 1},
       
   236         {EPtiKeyQwertyComma, EPtiCaseLower, 72, 1},
       
   237         {EPtiKeyQwertyFullstop, EPtiCaseLower, 73, 1},
       
   238         {EPtiKeyQwertySlash, EPtiCaseLower, 74, 1},
       
   239         {EPtiKeyQwerty1, EPtiCaseUpper, 75, 1},
       
   240         {EPtiKeyQwerty2, EPtiCaseUpper, 76, 1},
       
   241         {EPtiKeyQwerty3, EPtiCaseUpper, 77, 1},
       
   242         {EPtiKeyQwerty4, EPtiCaseUpper, 78, 1},
       
   243         {EPtiKeyQwerty5, EPtiCaseUpper, 79, 1},
       
   244         {EPtiKeyQwerty6, EPtiCaseUpper, 80, 1},
       
   245         {EPtiKeyQwerty7, EPtiCaseUpper, 81, 1},
       
   246         {EPtiKeyQwerty8, EPtiCaseUpper, 82, 1},
       
   247         {EPtiKeyQwerty9, EPtiCaseUpper, 83, 1},
       
   248         {EPtiKeyQwerty0, EPtiCaseUpper, 84, 1},
       
   249         {EPtiKeyQwertyPlus, EPtiCaseUpper, 85, 1},
       
   250         {EPtiKeyQwertyQ, EPtiCaseUpper, 86, 1},
       
   251         {EPtiKeyQwertyW, EPtiCaseUpper, 87, 1},
       
   252         {EPtiKeyQwertyE, EPtiCaseUpper, 88, 5},
       
   253         {EPtiKeyQwertyR, EPtiCaseUpper, 93, 1},
       
   254         {EPtiKeyQwertyT, EPtiCaseUpper, 94, 2},
       
   255         {EPtiKeyQwertyY, EPtiCaseUpper, 96, 2},
       
   256         {EPtiKeyQwertyU, EPtiCaseUpper, 98, 5},
       
   257         {EPtiKeyQwertyI, EPtiCaseUpper, 103, 5},
       
   258         {EPtiKeyQwertyO, EPtiCaseUpper, 108, 7},
       
   259         {EPtiKeyQwertyP, EPtiCaseUpper, 115, 1},
       
   260         {EPtiKeyQwertyMinus, EPtiCaseUpper, 116, 1},
       
   261         {EPtiKeyQwertyHash, EPtiCaseUpper, 117, 1},
       
   262         {EPtiKeyQwertyA, EPtiCaseUpper, 118, 8},
       
   263         {EPtiKeyQwertyS, EPtiCaseUpper, 126, 1},
       
   264         {EPtiKeyQwertyD, EPtiCaseUpper, 127, 2},
       
   265         {EPtiKeyQwertyF, EPtiCaseUpper, 129, 1},
       
   266         {EPtiKeyQwertyG, EPtiCaseUpper, 130, 1},
       
   267         {EPtiKeyQwertyH, EPtiCaseUpper, 131, 1},
       
   268         {EPtiKeyQwertyJ, EPtiCaseUpper, 132, 1},
       
   269         {EPtiKeyQwertyK, EPtiCaseUpper, 133, 1},
       
   270         {EPtiKeyQwertyL, EPtiCaseUpper, 134, 1},
       
   271         {EPtiKeyQwertySemicolon, EPtiCaseUpper, 135, 1},
       
   272         {EPtiKeyQwertyApostrophe, EPtiCaseUpper, 136, 1},
       
   273         {EPtiKeyQwertyZ, EPtiCaseUpper, 137, 1},
       
   274         {EPtiKeyQwertyX, EPtiCaseUpper, 138, 1},
       
   275         {EPtiKeyQwertyC, EPtiCaseUpper, 139, 2},
       
   276         {EPtiKeyQwertyV, EPtiCaseUpper, 141, 1},
       
   277         {EPtiKeyQwertyB, EPtiCaseUpper, 142, 1},
       
   278         {EPtiKeyQwertyN, EPtiCaseUpper, 143, 2},
       
   279         {EPtiKeyQwertyM, EPtiCaseUpper, 145, 1},
       
   280         {EPtiKeyQwertyComma, EPtiCaseUpper, 146, 1},
       
   281         {EPtiKeyQwertyFullstop, EPtiCaseUpper, 147, 1},
       
   282         {EPtiKeyQwertySlash, EPtiCaseUpper, 148, 1},
       
   283     };
       
   284 
       
   285 const TInt KMaxStandardQwertyIndex_Vietnamese = 88;
       
   286 
       
   287 
       
   288 const TVowelSequence StandardQwertyVowelSeq_table_Vietnamese[] =
       
   289 	{
       
   290 	{TPtiKey(0x0041), TPtiKey(0x01AF), {0x0103, 0x0102}},
       
   291 	{TPtiKey(0x0041), TPtiKey(0x0041), {0x00e2, 0x00c2}},
       
   292 	{TPtiKey(0x0045), TPtiKey(0x0045), {0x00ea, 0x00ca}},
       
   293 	{TPtiKey(0x004F), TPtiKey(0x01AF), {0x01a1, 0x01a0}},
       
   294 	{TPtiKey(0x004F), TPtiKey(0x004F), {0x00f4, 0x00d4}},
       
   295 	{TPtiKey(0x0055), TPtiKey(0x01AF), {0x01b0, 0x01af}},
       
   296 	{TPtiKey(0x0044), TPtiKey(0x0044), {0x0111, 0x0110}},
       
   297 	{TPtiKey(0x01AF), TPtiKey(0x01AF), {0x0077, 0x0057}}
       
   298 	};
       
   299 
       
   300 const TInt KNumStandardQwertyVowelSeqEntries_Vietnamese = 8;
       
   301 //
       
   302 // MiniQwerty keymap data table
       
   303 //
       
   304 const TUint16 MiniQwertyData_table_Vietnamese[] =
       
   305     {
       
   306      0x0071,
       
   307      0x01B0,
       
   308      0x0065,
       
   309      0x0072,
       
   310      0x0074,
       
   311      0x0079,
       
   312      0x0075,
       
   313      0x0069,
       
   314      0x006F,
       
   315      0x0070,
       
   316      0x0061,
       
   317      0x0073,
       
   318      0x0064,
       
   319      0x0066,
       
   320      0x0067,
       
   321      0x0068,
       
   322      0x006A,
       
   323      0x006B,
       
   324      0x006C,
       
   325      0x007A,
       
   326      0x0078,
       
   327      0x0063,
       
   328      0x0076,
       
   329      0x0062,
       
   330      0x006E,
       
   331      0x006D,
       
   332      0x002C,
       
   333      0x002E,
       
   334      0x0040,
       
   335      0x0026,
       
   336      0x0027,
       
   337      0x003F,
       
   338      0x0051,
       
   339      0x01AF,
       
   340      0x0045,
       
   341      0x0052,
       
   342      0x0054,
       
   343      0x0059,
       
   344      0x0055,
       
   345      0x0049,
       
   346      0x004F,
       
   347      0x0050,
       
   348      0x0041,
       
   349      0x0053,
       
   350      0x0044,
       
   351      0x0046,
       
   352      0x0047,
       
   353      0x0048,
       
   354      0x004A,
       
   355      0x004B,
       
   356      0x004C,
       
   357      0x005A,
       
   358      0x0058,
       
   359      0x0043,
       
   360      0x0056,
       
   361      0x0042,
       
   362      0x004E,
       
   363      0x004D,
       
   364      0x003B,
       
   365      0x003A,
       
   366      0x0021,
       
   367      0x0022,
       
   368      0x0031,
       
   369      0x0031,
       
   370      0x0032,
       
   371      0x0032,
       
   372      0x0033,
       
   373      0x0033,
       
   374      0x002B,
       
   375      0x002F,
       
   376      0x0025,
       
   377      0x0034,
       
   378      0x0034,
       
   379      0x0035,
       
   380      0x0035,
       
   381      0x0036,
       
   382      0x0036,
       
   383      0x002D,
       
   384      0x0028,
       
   385      0x0029,
       
   386      0x0037,
       
   387      0x0037,
       
   388      0x0038,
       
   389      0x0038,
       
   390      0x0039,
       
   391      0x0039,
       
   392      0x003D,
       
   393      0x002A,
       
   394      0x002A,
       
   395      0x0030,
       
   396      0x0030,
       
   397      0x0023,
       
   398      0x0023,
       
   399     };
       
   400 
       
   401 const TInt KMiniQwertyDataSize_Vietnamese = 93;
       
   402 
       
   403 
       
   404 const TPtiKeyBinding MiniQwertyKeyBindings_table_Vietnamese[] =
       
   405     {
       
   406         {EPtiKeyQwerty1, EPtiCaseLower, 0, 1},
       
   407         {EPtiKeyQwerty2, EPtiCaseLower, 1, 1},
       
   408         {EPtiKeyQwerty3, EPtiCaseLower, 2, 1},
       
   409         {EPtiKeyQwerty4, EPtiCaseLower, 3, 1},
       
   410         {EPtiKeyQwerty5, EPtiCaseLower, 4, 1},
       
   411         {EPtiKeyQwerty6, EPtiCaseLower, 5, 1},
       
   412         {EPtiKeyQwerty7, EPtiCaseLower, 6, 1},
       
   413         {EPtiKeyQwerty8, EPtiCaseLower, 7, 1},
       
   414         {EPtiKeyQwerty9, EPtiCaseLower, 8, 1},
       
   415         {EPtiKeyQwerty0, EPtiCaseLower, 9, 1},
       
   416         {EPtiKeyQwertyA, EPtiCaseLower, 10, 1},
       
   417         {EPtiKeyQwertyS, EPtiCaseLower, 11, 1},
       
   418         {EPtiKeyQwertyD, EPtiCaseLower, 12, 1},
       
   419         {EPtiKeyQwertyF, EPtiCaseLower, 13, 1},
       
   420         {EPtiKeyQwertyG, EPtiCaseLower, 14, 1},
       
   421         {EPtiKeyQwertyH, EPtiCaseLower, 15, 1},
       
   422         {EPtiKeyQwertyJ, EPtiCaseLower, 16, 1},
       
   423         {EPtiKeyQwertyK, EPtiCaseLower, 17, 1},
       
   424         {EPtiKeyQwertyL, EPtiCaseLower, 18, 1},
       
   425         {EPtiKeyQwertyZ, EPtiCaseLower, 19, 1},
       
   426         {EPtiKeyQwertyX, EPtiCaseLower, 20, 1},
       
   427         {EPtiKeyQwertyC, EPtiCaseLower, 21, 1},
       
   428         {EPtiKeyQwertyV, EPtiCaseLower, 22, 1},
       
   429         {EPtiKeyQwertyB, EPtiCaseLower, 23, 1},
       
   430         {EPtiKeyQwertyN, EPtiCaseLower, 24, 1},
       
   431         {EPtiKeyQwertyM, EPtiCaseLower, 25, 1},
       
   432         {EPtiKeyQwertyComma, EPtiCaseLower, 26, 1},
       
   433         {EPtiKeyQwertyFullstop, EPtiCaseLower, 27, 1},
       
   434         {EPtiKeyQwerty1, EPtiCaseUpper, 32, 1},
       
   435         {EPtiKeyQwerty2, EPtiCaseUpper, 33, 1},
       
   436         {EPtiKeyQwerty3, EPtiCaseUpper, 34, 1},
       
   437         {EPtiKeyQwerty4, EPtiCaseUpper, 35, 1},
       
   438         {EPtiKeyQwerty5, EPtiCaseUpper, 36, 1},
       
   439         {EPtiKeyQwerty6, EPtiCaseUpper, 37, 1},
       
   440         {EPtiKeyQwerty7, EPtiCaseUpper, 38, 1},
       
   441         {EPtiKeyQwerty8, EPtiCaseUpper, 39, 1},
       
   442         {EPtiKeyQwerty9, EPtiCaseUpper, 40, 1},
       
   443         {EPtiKeyQwerty0, EPtiCaseUpper, 41, 1},
       
   444         {EPtiKeyQwertyA, EPtiCaseUpper, 42, 1},
       
   445         {EPtiKeyQwertyS, EPtiCaseUpper, 43, 1},
       
   446         {EPtiKeyQwertyD, EPtiCaseUpper, 44, 1},
       
   447         {EPtiKeyQwertyF, EPtiCaseUpper, 45, 1},
       
   448         {EPtiKeyQwertyG, EPtiCaseUpper, 46, 1},
       
   449         {EPtiKeyQwertyH, EPtiCaseUpper, 47, 1},
       
   450         {EPtiKeyQwertyJ, EPtiCaseUpper, 48, 1},
       
   451         {EPtiKeyQwertyK, EPtiCaseUpper, 49, 1},
       
   452         {EPtiKeyQwertyL, EPtiCaseUpper, 50, 1},
       
   453         {EPtiKeyQwertyZ, EPtiCaseUpper, 51, 1},
       
   454         {EPtiKeyQwertyX, EPtiCaseUpper, 52, 1},
       
   455         {EPtiKeyQwertyC, EPtiCaseUpper, 53, 1},
       
   456         {EPtiKeyQwertyV, EPtiCaseUpper, 54, 1},
       
   457         {EPtiKeyQwertyB, EPtiCaseUpper, 55, 1},
       
   458         {EPtiKeyQwertyN, EPtiCaseUpper, 56, 1},
       
   459         {EPtiKeyQwertyM, EPtiCaseUpper, 57, 1},
       
   460         {EPtiKeyQwertyComma, EPtiCaseUpper, 58, 1},
       
   461         {EPtiKeyQwertyFullstop, EPtiCaseUpper, 59, 1},
       
   462         {EPtiKeyQwerty1, EPtiCaseFnLower, 60, 1},
       
   463         {EPtiKeyQwerty2, EPtiCaseFnLower, 61, 1},
       
   464         {EPtiKeyQwerty3, EPtiCaseFnLower, 62, 1},
       
   465         {EPtiKeyQwerty4, EPtiCaseFnLower, 63, 1},
       
   466         {EPtiKeyQwerty5, EPtiCaseFnLower, 64, 1},
       
   467         {EPtiKeyQwerty6, EPtiCaseFnLower, 65, 1},
       
   468         {EPtiKeyQwerty7, EPtiCaseFnLower, 66, 1},
       
   469         {EPtiKeyQwerty8, EPtiCaseFnLower, 67, 1},
       
   470         {EPtiKeyQwerty9, EPtiCaseFnLower, 68, 1},
       
   471         {EPtiKeyQwertyA, EPtiCaseFnLower, 69, 1},
       
   472         {EPtiKeyQwertyS, EPtiCaseFnLower, 70, 1},
       
   473         {EPtiKeyQwertyD, EPtiCaseFnLower, 71, 1},
       
   474         {EPtiKeyQwertyF, EPtiCaseFnLower, 72, 1},
       
   475         {EPtiKeyQwertyG, EPtiCaseFnLower, 73, 1},
       
   476         {EPtiKeyQwertyH, EPtiCaseFnLower, 74, 1},
       
   477         {EPtiKeyQwertyJ, EPtiCaseFnLower, 75, 1},
       
   478         {EPtiKeyQwertyK, EPtiCaseFnLower, 76, 1},
       
   479         {EPtiKeyQwertyL, EPtiCaseFnLower, 77, 1},
       
   480         {EPtiKeyQwertyZ, EPtiCaseFnLower, 78, 1},
       
   481         {EPtiKeyQwertyX, EPtiCaseFnLower, 79, 1},
       
   482         {EPtiKeyQwertyC, EPtiCaseFnLower, 80, 1},
       
   483         {EPtiKeyQwertyV, EPtiCaseFnLower, 81, 1},
       
   484         {EPtiKeyQwertyB, EPtiCaseFnLower, 82, 1},
       
   485         {EPtiKeyQwertyN, EPtiCaseFnLower, 83, 1},
       
   486         {EPtiKeyQwertyM, EPtiCaseFnLower, 84, 1},
       
   487         {EPtiKeyQwertyComma, EPtiCaseFnLower, 85, 1},
       
   488         {EPtiKeyQwertyFullstop, EPtiCaseFnLower, 86, 1},
       
   489     };
       
   490 
       
   491 const TInt KMaxMiniQwertyIndex_Vietnamese = 83;
       
   492 
       
   493 
       
   494 //
       
   495 // Numeric key data table for MiniQwerty
       
   496 //
       
   497 const TPtiNumericKeyBinding MiniQwertyNumericKeysData_table_Vietnamese[] =
       
   498 	{
       
   499 	{'w',EPtiKeyQwertyD,EPtiCaseLower},
       
   500 	};
       
   501 
       
   502 const TInt KNumMiniQwertyNumericKeysEntries_Vietnamese = 1;
       
   503 
       
   504 const TVowelSequence MiniQwertyVowelSeq_table_Vietnamese[] =
       
   505 	{
       
   506 	{TPtiKey(0x0041), TPtiKey(0x01AF), {0x0103, 0x0102}},
       
   507 	{TPtiKey(0x0041), TPtiKey(0x0041), {0x00e2, 0x00c2}},
       
   508 	{TPtiKey(0x0045), TPtiKey(0x0045), {0x00ea, 0x00ca}},
       
   509 	{TPtiKey(0x004F), TPtiKey(0x01AF), {0x01a1, 0x01a0}},
       
   510 	{TPtiKey(0x004F), TPtiKey(0x004F), {0x00f4, 0x00d4}},
       
   511 	{TPtiKey(0x0055), TPtiKey(0x01AF), {0x01b0, 0x01af}},
       
   512 	{TPtiKey(0x0044), TPtiKey(0x0044), {0x0111, 0x0110}},
       
   513 	{TPtiKey(0x01AF), TPtiKey(0x01AF), {0x0077, 0x0057}}
       
   514 	};
       
   515 
       
   516 const TInt KNumMiniQwertyVowelSeqEntries_Vietnamese = 8;
       
   517 //
       
   518 // Class implementation.
       
   519 //
       
   520 
       
   521 CPtiLangDataImplVietnamese* CPtiLangDataImplVietnamese::NewL()
       
   522     {
       
   523     return new (ELeave) CPtiLangDataImplVietnamese();
       
   524     }
       
   525 
       
   526 
       
   527 TInt CPtiLangDataImplVietnamese::LanguageCode() const
       
   528     {
       
   529     return ELangVietnamese;
       
   530     }
       
   531 
       
   532 
       
   533 const TUint16* CPtiLangDataImplVietnamese::KeyData(TPtiKeyboardType aKeyboardType, TInt& aDataSize) const
       
   534     {
       
   535     if (aKeyboardType == EPtiKeyboard12Key)
       
   536         {
       
   537         aDataSize = KMultitapDataSize_Vietnamese;
       
   538         return MultitapData_table_Vietnamese;
       
   539         }
       
   540     if (aKeyboardType == EPtiKeyboardQwerty4x12)
       
   541         {
       
   542         aDataSize = KStandardQwertyDataSize_Vietnamese;
       
   543         return StandardQwertyData_table_Vietnamese;
       
   544         }
       
   545 
       
   546     if (aKeyboardType == EPtiKeyboardQwerty4x10)
       
   547         {
       
   548         aDataSize = KMiniQwertyDataSize_Vietnamese;
       
   549         return MiniQwertyData_table_Vietnamese;
       
   550         }
       
   551 
       
   552     aDataSize = 0;
       
   553     return NULL;
       
   554     }
       
   555 
       
   556 
       
   557 const TPtiKeyBinding* CPtiLangDataImplVietnamese::KeyBindingTable(TPtiKeyboardType aKeyboardType, TInt& aNumItems) const
       
   558     {
       
   559     if (aKeyboardType == EPtiKeyboard12Key)
       
   560         {
       
   561         aNumItems = KMaxMultitapIndex_Vietnamese;
       
   562         return MultitapKeyBindings_table_Vietnamese;
       
   563         }
       
   564     if (aKeyboardType == EPtiKeyboardQwerty4x12)
       
   565         {
       
   566         aNumItems = KMaxStandardQwertyIndex_Vietnamese;
       
   567         return StandardQwertyKeyBindings_table_Vietnamese;
       
   568         }
       
   569     if (aKeyboardType == EPtiKeyboardQwerty4x10)
       
   570         {
       
   571         aNumItems = KMaxMiniQwertyIndex_Vietnamese;
       
   572         return MiniQwertyKeyBindings_table_Vietnamese;
       
   573         }
       
   574 
       
   575     aNumItems = 0;
       
   576     return NULL;
       
   577     }
       
   578 
       
   579 
       
   580 const TPtiNumericKeyBinding* CPtiLangDataImplVietnamese::NumericModeKeysTable(TPtiKeyboardType aKeyboardType, TInt& aNumEntries) const
       
   581     {
       
   582     if (aKeyboardType == EPtiKeyboardQwerty4x10)
       
   583         {
       
   584         aNumEntries = KNumMiniQwertyNumericKeysEntries_Vietnamese;
       
   585         return MiniQwertyNumericKeysData_table_Vietnamese;
       
   586         }
       
   587 
       
   588     aNumEntries = 0;
       
   589     return NULL;
       
   590     }
       
   591 
       
   592 
       
   593 const TVowelSequence* CPtiLangDataImplVietnamese::VowelSequenceTable(TPtiKeyboardType aKeyboardType, TInt& aNumEntries) const
       
   594     {
       
   595     if (aKeyboardType == EPtiKeyboardQwerty4x12)
       
   596         {
       
   597         aNumEntries = KNumStandardQwertyVowelSeqEntries_Vietnamese;
       
   598         return StandardQwertyVowelSeq_table_Vietnamese;
       
   599         }
       
   600 
       
   601     if (aKeyboardType == EPtiKeyboardQwerty4x10)
       
   602         {
       
   603         aNumEntries = KNumMiniQwertyVowelSeqEntries_Vietnamese;
       
   604         return MiniQwertyVowelSeq_table_Vietnamese;
       
   605         }
       
   606 
       
   607     aNumEntries = 0;
       
   608     return NULL;
       
   609     }
       
   610 
       
   611