textinput/ptienginev2/languages/PtiKeymappings_ITUT_50.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_50.h"
       
    34 
       
    35 //
       
    36 // Multitap keymap data table
       
    37 //
       
    38 const TUint16 MultitapData_table_Farsi[] =
       
    39     {
       
    40      0x2e,0x61f,0x3a,0x60c,0x21,0x31,
       
    41      0x628,0x67e,0x62a,0x629,0x62b,0x32,
       
    42      0x627,0x623,0x625,0x622,0x624,0x626,0x621,0x33,
       
    43      0x633,0x634,0x635,0x636,0x34,
       
    44      0x62f,0x630,0x631,0x632,0x698,0x35,
       
    45      0x62c,0x686,0x62d,0x62e,0x36,
       
    46      0x646,0x648,0x647,0x6cc,0x37,
       
    47      0x641,0x642,0x6a9,0x6af,0x644,0x645,0x38,
       
    48      0x637,0x638,0x639,0x63a,0x39,
       
    49      0x20,0x30,0x21b3,
       
    50      0x2e,0x61f,0x3a,0x60c,0x21,0x31,
       
    51      0x628,0x67e,0x62a,0x629,0x62b,0x32,
       
    52      0x627,0x623,0x625,0x622,0x624,0x626,0x621,0x33,
       
    53      0x633,0x634,0x635,0x636,0x34,
       
    54      0x62f,0x630,0x631,0x632,0x698,0x35,
       
    55      0x62c,0x686,0x62d,0x62e,0x36,
       
    56      0x646,0x648,0x647,0x6cc,0x37,
       
    57      0x641,0x642,0x6a9,0x6af,0x644,0x645,0x38,
       
    58      0x637,0x638,0x639,0x63a,0x39,
       
    59      0x20,0x30,0x21b3,
       
    60     };
       
    61 
       
    62 const TInt KMultitapDataSize_Farsi = 112;
       
    63 
       
    64 
       
    65 const TPtiKeyBinding MultitapKeyBindings_table_Farsi[] =
       
    66     {
       
    67         {EPtiKey1, EPtiCaseLower, 0, 6},
       
    68         {EPtiKey2, EPtiCaseLower, 6, 6},
       
    69         {EPtiKey3, EPtiCaseLower, 12, 8},
       
    70         {EPtiKey4, EPtiCaseLower, 20, 5},
       
    71         {EPtiKey5, EPtiCaseLower, 25, 6},
       
    72         {EPtiKey6, EPtiCaseLower, 31, 5},
       
    73         {EPtiKey7, EPtiCaseLower, 36, 5},
       
    74         {EPtiKey8, EPtiCaseLower, 41, 7},
       
    75         {EPtiKey9, EPtiCaseLower, 48, 5},
       
    76         {EPtiKeyStar, EPtiCaseLower, 53, 0},
       
    77         {EPtiKey0, EPtiCaseLower, 53, 3},
       
    78         {EPtiKeyHash, EPtiCaseLower, 56, 0},
       
    79         {EPtiKey1, EPtiCaseUpper, 56, 6},
       
    80         {EPtiKey2, EPtiCaseUpper, 62, 6},
       
    81         {EPtiKey3, EPtiCaseUpper, 68, 8},
       
    82         {EPtiKey4, EPtiCaseUpper, 76, 5},
       
    83         {EPtiKey5, EPtiCaseUpper, 81, 6},
       
    84         {EPtiKey6, EPtiCaseUpper, 87, 5},
       
    85         {EPtiKey7, EPtiCaseUpper, 92, 5},
       
    86         {EPtiKey8, EPtiCaseUpper, 97, 7},
       
    87         {EPtiKey9, EPtiCaseUpper, 104, 5},
       
    88         {EPtiKeyStar, EPtiCaseUpper, 109, 0},
       
    89         {EPtiKey0, EPtiCaseUpper, 109, 3},
       
    90         {EPtiKeyHash, EPtiCaseUpper, 112, 0},
       
    91     };
       
    92 
       
    93 const TInt KMaxMultitapIndex_Farsi = 24;
       
    94 
       
    95 //
       
    96 // StandardQwerty keymap data table
       
    97 //
       
    98 const TUint16 StandardQwertyData_table_Farsi[] =
       
    99     {
       
   100      0x6f1,
       
   101      0x6f2,
       
   102      0x6f3,
       
   103      0x6f4,
       
   104      0x6f5,
       
   105      0x6f6,
       
   106      0x6f7,
       
   107      0x6f8,
       
   108      0x6f9,
       
   109      0x6f0,
       
   110      0x636,
       
   111      0x635,
       
   112      0x62b,
       
   113      0x642,
       
   114      0x641,
       
   115      0x63a,
       
   116      0x639,
       
   117      0x647,
       
   118      0x62e,
       
   119      0x62d,
       
   120      0x62c,
       
   121      0x686,
       
   122      0x634,
       
   123      0x633,
       
   124      0x6cc,
       
   125      0x628,
       
   126      0x644,
       
   127      0x627,
       
   128      0x62a,
       
   129      0x646,
       
   130      0x645,
       
   131      0x6a9,
       
   132      0x6af,
       
   133      0x40,
       
   134      0x638,
       
   135      0x637,
       
   136      0x632,
       
   137      0x631,
       
   138      0x630,
       
   139      0x62f,
       
   140      0x67e,
       
   141      0x648,
       
   142      0x2e,
       
   143      0x2f,
       
   144      0x66c,
       
   145      0x66b,
       
   146      0xfdfc,
       
   147      0x66a,
       
   148      0x3d,
       
   149      0x21,
       
   150      0x2a,
       
   151      0x2d,
       
   152      0x2b,
       
   153      0x640,
       
   154      0x636,
       
   155      0x635,
       
   156      0x62b,
       
   157      0x642,
       
   158      0x641,
       
   159      0x63a,
       
   160      0x28,
       
   161      0x28,
       
   162      0x7d,
       
   163      0x7b,
       
   164      0x5c,
       
   165      0x7c,
       
   166      0x624,
       
   167      0x626,
       
   168      0x64a,
       
   169      0x625,
       
   170      0x623,
       
   171      0x622,
       
   172      0x629,
       
   173      0xbb,
       
   174      0xab,
       
   175      0x3a,
       
   176      0x61b,
       
   177      0x60c,
       
   178      0x643,
       
   179      0x637,
       
   180      0x698,
       
   181      0x631,
       
   182      0x200c,
       
   183      0x200d,
       
   184      0x621,
       
   185      0x3e,
       
   186      0x3c,
       
   187      0x61f,
       
   188     };
       
   189 
       
   190 const TInt KStandardQwertyDataSize_Farsi = 88;
       
   191 
       
   192 
       
   193 const TPtiKeyBinding StandardQwertyKeyBindings_table_Farsi[] =
       
   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, 1},
       
   209         {EPtiKeyQwertyR, EPtiCaseLower, 14, 1},
       
   210         {EPtiKeyQwertyT, EPtiCaseLower, 15, 1},
       
   211         {EPtiKeyQwertyY, EPtiCaseLower, 16, 1},
       
   212         {EPtiKeyQwertyU, EPtiCaseLower, 17, 1},
       
   213         {EPtiKeyQwertyI, EPtiCaseLower, 18, 1},
       
   214         {EPtiKeyQwertyO, EPtiCaseLower, 19, 1},
       
   215         {EPtiKeyQwertyP, EPtiCaseLower, 20, 1},
       
   216         {EPtiKeyQwertyMinus, EPtiCaseLower, 21, 1},
       
   217         {EPtiKeyQwertyHash, EPtiCaseLower, 22, 1},
       
   218         {EPtiKeyQwertyA, EPtiCaseLower, 23, 1},
       
   219         {EPtiKeyQwertyS, EPtiCaseLower, 24, 1},
       
   220         {EPtiKeyQwertyD, EPtiCaseLower, 25, 1},
       
   221         {EPtiKeyQwertyF, EPtiCaseLower, 26, 1},
       
   222         {EPtiKeyQwertyG, EPtiCaseLower, 27, 1},
       
   223         {EPtiKeyQwertyH, EPtiCaseLower, 28, 1},
       
   224         {EPtiKeyQwertyJ, EPtiCaseLower, 29, 1},
       
   225         {EPtiKeyQwertyK, EPtiCaseLower, 30, 1},
       
   226         {EPtiKeyQwertyL, EPtiCaseLower, 31, 1},
       
   227         {EPtiKeyQwertySemicolon, EPtiCaseLower, 32, 1},
       
   228         {EPtiKeyQwertyApostrophe, EPtiCaseLower, 33, 1},
       
   229         {EPtiKeyQwertyZ, EPtiCaseLower, 34, 1},
       
   230         {EPtiKeyQwertyX, EPtiCaseLower, 35, 1},
       
   231         {EPtiKeyQwertyC, EPtiCaseLower, 36, 1},
       
   232         {EPtiKeyQwertyV, EPtiCaseLower, 37, 1},
       
   233         {EPtiKeyQwertyB, EPtiCaseLower, 38, 1},
       
   234         {EPtiKeyQwertyN, EPtiCaseLower, 39, 1},
       
   235         {EPtiKeyQwertyM, EPtiCaseLower, 40, 1},
       
   236         {EPtiKeyQwertyComma, EPtiCaseLower, 41, 1},
       
   237         {EPtiKeyQwertyFullstop, EPtiCaseLower, 42, 1},
       
   238         {EPtiKeyQwertySlash, EPtiCaseLower, 43, 1},
       
   239         {EPtiKeyQwerty1, EPtiCaseUpper, 44, 1},
       
   240         {EPtiKeyQwerty2, EPtiCaseUpper, 45, 1},
       
   241         {EPtiKeyQwerty3, EPtiCaseUpper, 46, 1},
       
   242         {EPtiKeyQwerty4, EPtiCaseUpper, 47, 1},
       
   243         {EPtiKeyQwerty5, EPtiCaseUpper, 48, 1},
       
   244         {EPtiKeyQwerty6, EPtiCaseUpper, 49, 1},
       
   245         {EPtiKeyQwerty7, EPtiCaseUpper, 50, 1},
       
   246         {EPtiKeyQwerty8, EPtiCaseUpper, 51, 1},
       
   247         {EPtiKeyQwerty9, EPtiCaseUpper, 52, 1},
       
   248         {EPtiKeyQwerty0, EPtiCaseUpper, 53, 1},
       
   249         {EPtiKeyQwertyPlus, EPtiCaseUpper, 54, 1},
       
   250         {EPtiKeyQwertyQ, EPtiCaseUpper, 55, 1},
       
   251         {EPtiKeyQwertyW, EPtiCaseUpper, 56, 1},
       
   252         {EPtiKeyQwertyE, EPtiCaseUpper, 57, 1},
       
   253         {EPtiKeyQwertyR, EPtiCaseUpper, 58, 1},
       
   254         {EPtiKeyQwertyT, EPtiCaseUpper, 59, 1},
       
   255         {EPtiKeyQwertyY, EPtiCaseUpper, 60, 1},
       
   256         {EPtiKeyQwertyU, EPtiCaseUpper, 61, 1},
       
   257         {EPtiKeyQwertyI, EPtiCaseUpper, 62, 1},
       
   258         {EPtiKeyQwertyO, EPtiCaseUpper, 63, 1},
       
   259         {EPtiKeyQwertyP, EPtiCaseUpper, 64, 1},
       
   260         {EPtiKeyQwertyMinus, EPtiCaseUpper, 65, 1},
       
   261         {EPtiKeyQwertyHash, EPtiCaseUpper, 66, 1},
       
   262         {EPtiKeyQwertyA, EPtiCaseUpper, 67, 1},
       
   263         {EPtiKeyQwertyS, EPtiCaseUpper, 68, 1},
       
   264         {EPtiKeyQwertyD, EPtiCaseUpper, 69, 1},
       
   265         {EPtiKeyQwertyF, EPtiCaseUpper, 70, 1},
       
   266         {EPtiKeyQwertyG, EPtiCaseUpper, 71, 1},
       
   267         {EPtiKeyQwertyH, EPtiCaseUpper, 72, 1},
       
   268         {EPtiKeyQwertyJ, EPtiCaseUpper, 73, 1},
       
   269         {EPtiKeyQwertyK, EPtiCaseUpper, 74, 1},
       
   270         {EPtiKeyQwertyL, EPtiCaseUpper, 75, 1},
       
   271         {EPtiKeyQwertySemicolon, EPtiCaseUpper, 76, 1},
       
   272         {EPtiKeyQwertyApostrophe, EPtiCaseUpper, 77, 1},
       
   273         {EPtiKeyQwertyZ, EPtiCaseUpper, 78, 1},
       
   274         {EPtiKeyQwertyX, EPtiCaseUpper, 79, 1},
       
   275         {EPtiKeyQwertyC, EPtiCaseUpper, 80, 1},
       
   276         {EPtiKeyQwertyV, EPtiCaseUpper, 81, 1},
       
   277         {EPtiKeyQwertyB, EPtiCaseUpper, 82, 1},
       
   278         {EPtiKeyQwertyN, EPtiCaseUpper, 83, 1},
       
   279         {EPtiKeyQwertyM, EPtiCaseUpper, 84, 1},
       
   280         {EPtiKeyQwertyComma, EPtiCaseUpper, 85, 1},
       
   281         {EPtiKeyQwertyFullstop, EPtiCaseUpper, 86, 1},
       
   282         {EPtiKeyQwertySlash, EPtiCaseUpper, 87, 1},
       
   283     };
       
   284 
       
   285 const TInt KMaxStandardQwertyIndex_Farsi = 88;
       
   286 
       
   287 
       
   288 //
       
   289 // Numeric key data table for StandardQwerty
       
   290 //
       
   291 const TPtiNumericKeyBinding StandardQwertyNumericKeysData_table_Farsi[] =
       
   292 	{
       
   293 	{'#',EPtiKeyQwertyHash,EPtiCaseLower},
       
   294 	{'p',EPtiKeyQwertyP,EPtiCaseLower},
       
   295 	{'w',EPtiKeyQwertyW,EPtiCaseLower},
       
   296 	{'1',EPtiKeyQwerty1,EPtiCaseLower},
       
   297 	{'2',EPtiKeyQwerty2,EPtiCaseLower},
       
   298 	{'3',EPtiKeyQwerty3,EPtiCaseLower},
       
   299 	{'4',EPtiKeyQwerty4,EPtiCaseLower},
       
   300 	{'5',EPtiKeyQwerty5,EPtiCaseLower},
       
   301 	{'6',EPtiKeyQwerty6,EPtiCaseLower},
       
   302 	{'7',EPtiKeyQwerty7,EPtiCaseLower},
       
   303 	{'8',EPtiKeyQwerty8,EPtiCaseLower},
       
   304 	{'9',EPtiKeyQwerty9,EPtiCaseLower},
       
   305 	{'0',EPtiKeyQwerty0,EPtiCaseLower},
       
   306 	{'E',EPtiKeyQwertyE,EPtiCaseUpper},
       
   307 	};
       
   308 
       
   309 const TInt KNumStandardQwertyNumericKeysEntries_Farsi = 14;
       
   310 //
       
   311 // MiniQwerty keymap data table
       
   312 //
       
   313 const TUint16 MiniQwertyData_table_Farsi[] =
       
   314     {
       
   315      0x0636,
       
   316      0x0635,
       
   317      0x062B,
       
   318      0x0642,
       
   319      0x0641,
       
   320      0x0639,
       
   321      0x0647,
       
   322      0x062D,
       
   323      0x0686,
       
   324      0x067E,
       
   325      0x0634,
       
   326      0x0633,
       
   327      0x06CC,
       
   328      0x0628,
       
   329      0x0644,
       
   330      0x0627,
       
   331      0x062A,
       
   332      0x0646,
       
   333      0x0645,
       
   334      0x0638,
       
   335      0x0637,
       
   336      0x0632,
       
   337      0x0631,
       
   338      0x0630,
       
   339      0x062F,
       
   340      0x0626,
       
   341      0x0648,
       
   342      0x06AF,
       
   343      0x0040,
       
   344      0x0026,
       
   345      0x060C,
       
   346      0x002E,
       
   347      0x0636,
       
   348      0x0635,
       
   349      0x062B,
       
   350      0x0642,
       
   351      0x0641,
       
   352      0x063A,
       
   353      0x0647,
       
   354      0x062E,
       
   355      0x062C,
       
   356      0x067E,
       
   357      0x0634,
       
   358      0x0633,
       
   359      0x06CC,
       
   360      0x0628,
       
   361      0x06C0,
       
   362      0x0622,
       
   363      0x0640,
       
   364      0x00AB,
       
   365      0x00BB,
       
   366      0x0629,
       
   367      0x064A,
       
   368      0x0698,
       
   369      0x0624,
       
   370      0x0625,
       
   371      0x0623,
       
   372      0x0621,
       
   373      0x0648,
       
   374      0x06A9,
       
   375      0x061B,
       
   376      0x003A,
       
   377      0x0021,
       
   378      0x0022,
       
   379      0x0031,
       
   380      0x0031,
       
   381      0x0032,
       
   382      0x0032,
       
   383      0x0033,
       
   384      0x0033,
       
   385      0x002B,
       
   386      0x002F,
       
   387      0x0027,
       
   388      0x0034,
       
   389      0x0034,
       
   390      0x0035,
       
   391      0x0035,
       
   392      0x0036,
       
   393      0x0036,
       
   394      0x002D,
       
   395      0x0028,
       
   396      0x0029,
       
   397      0x0037,
       
   398      0x0037,
       
   399      0x0038,
       
   400      0x0038,
       
   401      0x0039,
       
   402      0x0039,
       
   403      0x061F,
       
   404      0x002A,
       
   405      0x002A,
       
   406      0x0030,
       
   407      0x0030,
       
   408      0x0023,
       
   409      0x0023,
       
   410     };
       
   411 
       
   412 const TInt KMiniQwertyDataSize_Farsi = 95;
       
   413 
       
   414 
       
   415 const TPtiKeyBinding MiniQwertyKeyBindings_table_Farsi[] =
       
   416     {
       
   417         {EPtiKeyQwerty1, EPtiCaseLower, 0, 1},
       
   418         {EPtiKeyQwerty2, EPtiCaseLower, 1, 1},
       
   419         {EPtiKeyQwerty3, EPtiCaseLower, 2, 1},
       
   420         {EPtiKeyQwerty4, EPtiCaseLower, 3, 1},
       
   421         {EPtiKeyQwerty5, EPtiCaseLower, 4, 1},
       
   422         {EPtiKeyQwerty6, EPtiCaseLower, 5, 1},
       
   423         {EPtiKeyQwerty7, EPtiCaseLower, 6, 1},
       
   424         {EPtiKeyQwerty8, EPtiCaseLower, 7, 1},
       
   425         {EPtiKeyQwerty9, EPtiCaseLower, 8, 1},
       
   426         {EPtiKeyQwerty0, EPtiCaseLower, 9, 1},
       
   427         {EPtiKeyQwertyA, EPtiCaseLower, 10, 1},
       
   428         {EPtiKeyQwertyS, EPtiCaseLower, 11, 1},
       
   429         {EPtiKeyQwertyD, EPtiCaseLower, 12, 1},
       
   430         {EPtiKeyQwertyF, EPtiCaseLower, 13, 1},
       
   431         {EPtiKeyQwertyG, EPtiCaseLower, 14, 1},
       
   432         {EPtiKeyQwertyH, EPtiCaseLower, 15, 1},
       
   433         {EPtiKeyQwertyJ, EPtiCaseLower, 16, 1},
       
   434         {EPtiKeyQwertyK, EPtiCaseLower, 17, 1},
       
   435         {EPtiKeyQwertyL, EPtiCaseLower, 18, 1},
       
   436         {EPtiKeyQwertyZ, EPtiCaseLower, 19, 1},
       
   437         {EPtiKeyQwertyX, EPtiCaseLower, 20, 1},
       
   438         {EPtiKeyQwertyC, EPtiCaseLower, 21, 1},
       
   439         {EPtiKeyQwertyV, EPtiCaseLower, 22, 1},
       
   440         {EPtiKeyQwertyB, EPtiCaseLower, 23, 1},
       
   441         {EPtiKeyQwertyN, EPtiCaseLower, 24, 1},
       
   442         {EPtiKeyQwertyM, EPtiCaseLower, 25, 1},
       
   443         {EPtiKeyQwertyComma, EPtiCaseLower, 26, 1},
       
   444         {EPtiKeyQwertyFullstop, EPtiCaseLower, 27, 1},
       
   445         {EPtiKeyQwerty1, EPtiCaseUpper, 32, 1},
       
   446         {EPtiKeyQwerty2, EPtiCaseUpper, 33, 1},
       
   447         {EPtiKeyQwerty3, EPtiCaseUpper, 34, 1},
       
   448         {EPtiKeyQwerty4, EPtiCaseUpper, 35, 1},
       
   449         {EPtiKeyQwerty5, EPtiCaseUpper, 36, 1},
       
   450         {EPtiKeyQwerty6, EPtiCaseUpper, 37, 1},
       
   451         {EPtiKeyQwerty7, EPtiCaseUpper, 38, 1},
       
   452         {EPtiKeyQwerty8, EPtiCaseUpper, 39, 1},
       
   453         {EPtiKeyQwerty9, EPtiCaseUpper, 40, 1},
       
   454         {EPtiKeyQwerty0, EPtiCaseUpper, 41, 1},
       
   455         {EPtiKeyQwertyA, EPtiCaseUpper, 42, 1},
       
   456         {EPtiKeyQwertyS, EPtiCaseUpper, 43, 1},
       
   457         {EPtiKeyQwertyD, EPtiCaseUpper, 44, 1},
       
   458         {EPtiKeyQwertyF, EPtiCaseUpper, 45, 1},
       
   459         {EPtiKeyQwertyG, EPtiCaseUpper, 46, 1},
       
   460         {EPtiKeyQwertyH, EPtiCaseUpper, 47, 1},
       
   461         {EPtiKeyQwertyJ, EPtiCaseUpper, 48, 1},
       
   462         {EPtiKeyQwertyK, EPtiCaseUpper, 49, 1},
       
   463         {EPtiKeyQwertyL, EPtiCaseUpper, 50, 1},
       
   464         {EPtiKeyQwertyZ, EPtiCaseUpper, 51, 1},
       
   465         {EPtiKeyQwertyX, EPtiCaseUpper, 52, 1},
       
   466         {EPtiKeyQwertyC, EPtiCaseUpper, 53, 1},
       
   467         {EPtiKeyQwertyV, EPtiCaseUpper, 54, 1},
       
   468         {EPtiKeyQwertyB, EPtiCaseUpper, 55, 1},
       
   469         {EPtiKeyQwertyN, EPtiCaseUpper, 56, 1},
       
   470         {EPtiKeyQwertyM, EPtiCaseUpper, 57, 1},
       
   471         {EPtiKeyQwertyComma, EPtiCaseUpper, 58, 1},
       
   472         {EPtiKeyQwertyFullstop, EPtiCaseUpper, 59, 1},
       
   473         {EPtiKeyQwerty1, EPtiCaseFnLower, 62, 1},
       
   474         {EPtiKeyQwerty2, EPtiCaseFnLower, 63, 1},
       
   475         {EPtiKeyQwerty3, EPtiCaseFnLower, 64, 1},
       
   476         {EPtiKeyQwerty4, EPtiCaseFnLower, 65, 1},
       
   477         {EPtiKeyQwerty5, EPtiCaseFnLower, 66, 1},
       
   478         {EPtiKeyQwerty6, EPtiCaseFnLower, 67, 1},
       
   479         {EPtiKeyQwerty7, EPtiCaseFnLower, 68, 1},
       
   480         {EPtiKeyQwerty8, EPtiCaseFnLower, 69, 1},
       
   481         {EPtiKeyQwerty9, EPtiCaseFnLower, 70, 1},
       
   482         {EPtiKeyQwertyA, EPtiCaseFnLower, 71, 1},
       
   483         {EPtiKeyQwertyS, EPtiCaseFnLower, 72, 1},
       
   484         {EPtiKeyQwertyD, EPtiCaseFnLower, 73, 1},
       
   485         {EPtiKeyQwertyF, EPtiCaseFnLower, 74, 1},
       
   486         {EPtiKeyQwertyG, EPtiCaseFnLower, 75, 1},
       
   487         {EPtiKeyQwertyH, EPtiCaseFnLower, 76, 1},
       
   488         {EPtiKeyQwertyJ, EPtiCaseFnLower, 77, 1},
       
   489         {EPtiKeyQwertyK, EPtiCaseFnLower, 78, 1},
       
   490         {EPtiKeyQwertyL, EPtiCaseFnLower, 79, 1},
       
   491         {EPtiKeyQwertyZ, EPtiCaseFnLower, 80, 1},
       
   492         {EPtiKeyQwertyX, EPtiCaseFnLower, 81, 1},
       
   493         {EPtiKeyQwertyC, EPtiCaseFnLower, 82, 1},
       
   494         {EPtiKeyQwertyV, EPtiCaseFnLower, 83, 1},
       
   495         {EPtiKeyQwertyB, EPtiCaseFnLower, 84, 1},
       
   496         {EPtiKeyQwertyN, EPtiCaseFnLower, 85, 1},
       
   497         {EPtiKeyQwertyM, EPtiCaseFnLower, 86, 1},
       
   498         {EPtiKeyQwertyComma, EPtiCaseFnLower, 87, 1},
       
   499         {EPtiKeyQwertyFullstop, EPtiCaseFnLower, 88, 1},
       
   500     };
       
   501 
       
   502 const TInt KMaxMiniQwertyIndex_Farsi = 83;
       
   503 
       
   504 
       
   505 //
       
   506 // Numeric key data table for MiniQwerty
       
   507 //
       
   508 const TPtiNumericKeyBinding MiniQwertyNumericKeysData_table_Farsi[] =
       
   509 	{
       
   510 	{'p',EPtiKeyQwerty0,EPtiCaseLower},
       
   511 	{'w',EPtiKeyQwerty2,EPtiCaseLower},
       
   512 	{'E',EPtiKeyQwerty3,EPtiCaseUpper},
       
   513 	};
       
   514 
       
   515 const TInt KNumMiniQwertyNumericKeysEntries_Farsi = 3;
       
   516 //
       
   517 // Class implementation.
       
   518 //
       
   519 
       
   520 CPtiLangDataImplFarsi* CPtiLangDataImplFarsi::NewL()
       
   521     {
       
   522     return new (ELeave) CPtiLangDataImplFarsi();
       
   523     }
       
   524 
       
   525 
       
   526 TInt CPtiLangDataImplFarsi::LanguageCode() const
       
   527     {
       
   528     return ELangFarsi;
       
   529     }
       
   530 
       
   531 
       
   532 const TUint16* CPtiLangDataImplFarsi::KeyData(TPtiKeyboardType aKeyboardType, TInt& aDataSize) const
       
   533     {
       
   534     if (aKeyboardType == EPtiKeyboard12Key)
       
   535         {
       
   536         aDataSize = KMultitapDataSize_Farsi;
       
   537         return MultitapData_table_Farsi;
       
   538         }
       
   539     if (aKeyboardType == EPtiKeyboardQwerty4x12)
       
   540         {
       
   541         aDataSize = KStandardQwertyDataSize_Farsi;
       
   542         return StandardQwertyData_table_Farsi;
       
   543         }
       
   544 
       
   545     if (aKeyboardType == EPtiKeyboardQwerty4x10)
       
   546         {
       
   547         aDataSize = KMiniQwertyDataSize_Farsi;
       
   548         return MiniQwertyData_table_Farsi;
       
   549         }
       
   550 
       
   551     aDataSize = 0;
       
   552     return NULL;
       
   553     }
       
   554 
       
   555 
       
   556 const TPtiKeyBinding* CPtiLangDataImplFarsi::KeyBindingTable(TPtiKeyboardType aKeyboardType, TInt& aNumItems) const
       
   557     {
       
   558     if (aKeyboardType == EPtiKeyboard12Key)
       
   559         {
       
   560         aNumItems = KMaxMultitapIndex_Farsi;
       
   561         return MultitapKeyBindings_table_Farsi;
       
   562         }
       
   563     if (aKeyboardType == EPtiKeyboardQwerty4x12)
       
   564         {
       
   565         aNumItems = KMaxStandardQwertyIndex_Farsi;
       
   566         return StandardQwertyKeyBindings_table_Farsi;
       
   567         }
       
   568     if (aKeyboardType == EPtiKeyboardQwerty4x10)
       
   569         {
       
   570         aNumItems = KMaxMiniQwertyIndex_Farsi;
       
   571         return MiniQwertyKeyBindings_table_Farsi;
       
   572         }
       
   573 
       
   574     aNumItems = 0;
       
   575     return NULL;
       
   576     }
       
   577 
       
   578 
       
   579 const TPtiNumericKeyBinding* CPtiLangDataImplFarsi::NumericModeKeysTable(TPtiKeyboardType aKeyboardType, TInt& aNumEntries) const
       
   580     {
       
   581     if (aKeyboardType == EPtiKeyboardQwerty4x12)
       
   582         {
       
   583         aNumEntries = KNumStandardQwertyNumericKeysEntries_Farsi;
       
   584         return StandardQwertyNumericKeysData_table_Farsi;
       
   585         }
       
   586 
       
   587     if (aKeyboardType == EPtiKeyboardQwerty4x10)
       
   588         {
       
   589         aNumEntries = KNumMiniQwertyNumericKeysEntries_Farsi;
       
   590         return MiniQwertyNumericKeysData_table_Farsi;
       
   591         }
       
   592 
       
   593     aNumEntries = 0;
       
   594     return NULL;
       
   595     }
       
   596 
       
   597 
       
   598 
       
   599 TBool CPtiLangDataImplFarsi::SuitableForLatinOnlyMode() const
       
   600     {
       
   601     return EFalse;
       
   602     }
       
   603 
       
   604