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