textinput/ptienginev2/languages/PtiKeymappings_ITUT_37.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_37.h"
       
    34 
       
    35 //
       
    36 // Multitap keymap data table
       
    37 //
       
    38 const TUint16 MultitapData_table_Arabic[] =
       
    39     {
       
    40      0x5f,0x3a,0x2f,0x40,0x29,0x28,0x2d,0x31,0x22,0x27,0x21,0x61f,0x60c,0x2e,0x61b,
       
    41      0x628,0x62a,0x629,0x62b,0x32,
       
    42      0x627,0x623,0x625,0x622,0x649,0x624,0x626,0x621,0x33,
       
    43      0x633,0x634,0x635,0x636,0x34,
       
    44      0x62f,0x630,0x631,0x632,0x35,
       
    45      0x62c,0x62d,0x62e,0x36,
       
    46      0x646,0x647,0x648,0x64a,0x37,
       
    47      0x641,0x642,0x643,0x644,0x645,0x38,
       
    48      0x637,0x638,0x639,0x63a,0x39,
       
    49      0x20,0x30,0x21b3,
       
    50      0x5f,0x3a,0x2f,0x40,0x29,0x28,0x2d,0x31,0x22,0x27,0x21,0x61f,0x60c,0x2e,0x61b,
       
    51      0x628,0x62a,0x629,0x62b,0x32,
       
    52      0x627,0x623,0x625,0x622,0x649,0x624,0x626,0x621,0x33,
       
    53      0x633,0x634,0x635,0x636,0x34,
       
    54      0x62f,0x630,0x631,0x632,0x35,
       
    55      0x62c,0x62d,0x62e,0x36,
       
    56      0x646,0x647,0x648,0x64a,0x37,
       
    57      0x641,0x642,0x643,0x644,0x645,0x38,
       
    58      0x637,0x638,0x639,0x63a,0x39,
       
    59      0x20,0x30,0x21b3,
       
    60     };
       
    61 
       
    62 const TInt KMultitapDataSize_Arabic = 124;
       
    63 
       
    64 
       
    65 const TPtiKeyBinding MultitapKeyBindings_table_Arabic[] =
       
    66     {
       
    67         {EPtiKey1, EPtiCaseLower, 0, 15},
       
    68         {EPtiKey2, EPtiCaseLower, 15, 5},
       
    69         {EPtiKey3, EPtiCaseLower, 20, 9},
       
    70         {EPtiKey4, EPtiCaseLower, 29, 5},
       
    71         {EPtiKey5, EPtiCaseLower, 34, 5},
       
    72         {EPtiKey6, EPtiCaseLower, 39, 4},
       
    73         {EPtiKey7, EPtiCaseLower, 43, 5},
       
    74         {EPtiKey8, EPtiCaseLower, 48, 6},
       
    75         {EPtiKey9, EPtiCaseLower, 54, 5},
       
    76         {EPtiKeyStar, EPtiCaseLower, 59, 0},
       
    77         {EPtiKey0, EPtiCaseLower, 59, 3},
       
    78         {EPtiKeyHash, EPtiCaseLower, 62, 0},
       
    79         {EPtiKey1, EPtiCaseUpper, 62, 15},
       
    80         {EPtiKey2, EPtiCaseUpper, 77, 5},
       
    81         {EPtiKey3, EPtiCaseUpper, 82, 9},
       
    82         {EPtiKey4, EPtiCaseUpper, 91, 5},
       
    83         {EPtiKey5, EPtiCaseUpper, 96, 5},
       
    84         {EPtiKey6, EPtiCaseUpper, 101, 4},
       
    85         {EPtiKey7, EPtiCaseUpper, 105, 5},
       
    86         {EPtiKey8, EPtiCaseUpper, 110, 6},
       
    87         {EPtiKey9, EPtiCaseUpper, 116, 5},
       
    88         {EPtiKeyStar, EPtiCaseUpper, 121, 0},
       
    89         {EPtiKey0, EPtiCaseUpper, 121, 3},
       
    90         {EPtiKeyHash, EPtiCaseUpper, 124, 0},
       
    91     };
       
    92 
       
    93 const TInt KMaxMultitapIndex_Arabic = 24;
       
    94 
       
    95 //
       
    96 // StandardQwerty keymap data table
       
    97 //
       
    98 const TUint16 StandardQwertyData_table_Arabic[] =
       
    99     {
       
   100      0x0031,
       
   101      0x0032,
       
   102      0x0033,
       
   103      0x0034,
       
   104      0x0035,
       
   105      0x0036,
       
   106      0x0037,
       
   107      0x0038,
       
   108      0x0039,
       
   109      0x0030,
       
   110      0x002d,
       
   111      0x0636,
       
   112      0x0635,
       
   113      0x062b,
       
   114      0x0642,
       
   115      0x0641,
       
   116      0x063a,
       
   117      0x0639,
       
   118      0x0647,
       
   119      0x062e,
       
   120      0x062d,
       
   121      0x062c,
       
   122      0x002b,
       
   123      0x0634,
       
   124      0x0633,
       
   125      0x064a,
       
   126      0x0628,
       
   127      0x0644,
       
   128      0x0627,
       
   129      0x062a,
       
   130      0x0646,
       
   131      0x0645,
       
   132      0x0643,
       
   133      0x0637,
       
   134      0x0626,
       
   135      0x0621,
       
   136      0x0624,
       
   137      0x0631,
       
   138      0xfefb,
       
   139      0x0649,
       
   140      0x0629,
       
   141      0x0648,
       
   142      0x0632,
       
   143      0x0638,
       
   144      0x0021,
       
   145      0x0022,
       
   146      0x20ac,
       
   147      0x0024,
       
   148      0x0025,
       
   149      0x0026,
       
   150      0x002a,
       
   151      0x0029,
       
   152      0x0028,
       
   153      0x003d,
       
   154      0x0040,
       
   155      0x0636,
       
   156      0x0635,
       
   157      0x062b,
       
   158      0x0642,
       
   159      0xfef9,
       
   160      0x0625,
       
   161      0x0639,
       
   162      0x0647,
       
   163      0x062e,
       
   164      0x061b,
       
   165      0x062f,
       
   166      0x0023,
       
   167      0x0634,
       
   168      0x0633,
       
   169      0x064a,
       
   170      0x0628,
       
   171      0x0fef7,
       
   172      0x0623,
       
   173      0x062a,
       
   174      0x0646,
       
   175      0x0645,
       
   176      0x003a,
       
   177      0x0630,
       
   178      0x0626,
       
   179      0x0621,
       
   180      0x0624,
       
   181      0x0631,
       
   182      0xfef5,
       
   183      0x0622,
       
   184      0x0629,
       
   185      0x060c,
       
   186      0x002e,
       
   187      0x061f,
       
   188     };
       
   189 
       
   190 const TInt KStandardQwertyDataSize_Arabic = 88;
       
   191 
       
   192 
       
   193 const TPtiKeyBinding StandardQwertyKeyBindings_table_Arabic[] =
       
   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_Arabic = 88;
       
   286 
       
   287 
       
   288 //
       
   289 // Numeric key data table for StandardQwerty
       
   290 //
       
   291 const TPtiNumericKeyBinding StandardQwertyNumericKeysData_table_Arabic[] =
       
   292 	{
       
   293 	{'p',EPtiKeyQwertyP,EPtiCaseLower},
       
   294 	{'w',EPtiKeyQwertyW,EPtiCaseLower},
       
   295 	{';',EPtiKeyQwertySemicolon,EPtiCaseLower},
       
   296 	{',',EPtiKeyQwertyComma,EPtiCaseLower},
       
   297 	{'E',EPtiKeyQwertyE,EPtiCaseUpper},
       
   298 	{'?',EPtiKeyQwertySlash,EPtiCaseUpper},
       
   299 	{'/',EPtiKeyQwertySlash,EPtiCaseLower},
       
   300 	};
       
   301 
       
   302 const TInt KNumStandardQwertyNumericKeysEntries_Arabic = 7;
       
   303 //
       
   304 // MiniQwerty keymap data table
       
   305 //
       
   306 const TUint16 MiniQwertyData_table_Arabic[] =
       
   307     {
       
   308      0x0636,
       
   309      0x0635,
       
   310      0x062B,
       
   311      0x0642,
       
   312      0x0641,
       
   313      0x063A,
       
   314      0x0639,
       
   315      0x062E,
       
   316      0x062D,
       
   317      0x062C,
       
   318      0x0634,
       
   319      0x0633,
       
   320      0x064A,
       
   321      0x0628,
       
   322      0x0644,
       
   323      0x0627,
       
   324      0x062A,
       
   325      0x0646,
       
   326      0x0645,
       
   327      0x0621,
       
   328      0x062F,
       
   329      0x0647,
       
   330      0x0631,
       
   331      0xFEFB,
       
   332      0x0649,
       
   333      0x0643,
       
   334      0x0648,
       
   335      0x0637,
       
   336      0x0040,
       
   337      0x0026,
       
   338      0x060C,
       
   339      0x061B,
       
   340      0x0636,
       
   341      0x0635,
       
   342      0x062B,
       
   343      0x0642,
       
   344      0xFEF9,
       
   345      0x0625,
       
   346      0x0639,
       
   347      0x062E,
       
   348      0x062D,
       
   349      0x062C,
       
   350      0x0634,
       
   351      0x0633,
       
   352      0x0626,
       
   353      0x0628,
       
   354      0xFEF7,
       
   355      0x0623,
       
   356      0x062A,
       
   357      0x0646,
       
   358      0x0645,
       
   359      0x0621,
       
   360      0x0630,
       
   361      0x0629,
       
   362      0x0632,
       
   363      0xFEF5,
       
   364      0x0622,
       
   365      0x0643,
       
   366      0x0624,
       
   367      0x0638,
       
   368      0x002C,
       
   369      0x002E,
       
   370      0x0021,
       
   371      0x0022,
       
   372      0x0031,
       
   373      0x0031,
       
   374      0x0032,
       
   375      0x0032,
       
   376      0x0033,
       
   377      0x0033,
       
   378      0x002B,
       
   379      0x002F,
       
   380      0x0027,
       
   381      0x0034,
       
   382      0x0034,
       
   383      0x0035,
       
   384      0x0035,
       
   385      0x0036,
       
   386      0x0036,
       
   387      0x002D,
       
   388      0x0028,
       
   389      0x0029,
       
   390      0x0037,
       
   391      0x0037,
       
   392      0x0038,
       
   393      0x0038,
       
   394      0x0039,
       
   395      0x0039,
       
   396      0x061F,
       
   397      0x002A,
       
   398      0x002A,
       
   399      0x0030,
       
   400      0x0030,
       
   401      0x0023,
       
   402      0x0023,
       
   403     };
       
   404 
       
   405 const TInt KMiniQwertyDataSize_Arabic = 95;
       
   406 
       
   407 
       
   408 const TPtiKeyBinding MiniQwertyKeyBindings_table_Arabic[] =
       
   409     {
       
   410         {EPtiKeyQwerty1, EPtiCaseLower, 0, 1},
       
   411         {EPtiKeyQwerty2, EPtiCaseLower, 1, 1},
       
   412         {EPtiKeyQwerty3, EPtiCaseLower, 2, 1},
       
   413         {EPtiKeyQwerty4, EPtiCaseLower, 3, 1},
       
   414         {EPtiKeyQwerty5, EPtiCaseLower, 4, 1},
       
   415         {EPtiKeyQwerty6, EPtiCaseLower, 5, 1},
       
   416         {EPtiKeyQwerty7, EPtiCaseLower, 6, 1},
       
   417         {EPtiKeyQwerty8, EPtiCaseLower, 7, 1},
       
   418         {EPtiKeyQwerty9, EPtiCaseLower, 8, 1},
       
   419         {EPtiKeyQwerty0, EPtiCaseLower, 9, 1},
       
   420         {EPtiKeyQwertyA, EPtiCaseLower, 10, 1},
       
   421         {EPtiKeyQwertyS, EPtiCaseLower, 11, 1},
       
   422         {EPtiKeyQwertyD, EPtiCaseLower, 12, 1},
       
   423         {EPtiKeyQwertyF, EPtiCaseLower, 13, 1},
       
   424         {EPtiKeyQwertyG, EPtiCaseLower, 14, 1},
       
   425         {EPtiKeyQwertyH, EPtiCaseLower, 15, 1},
       
   426         {EPtiKeyQwertyJ, EPtiCaseLower, 16, 1},
       
   427         {EPtiKeyQwertyK, EPtiCaseLower, 17, 1},
       
   428         {EPtiKeyQwertyL, EPtiCaseLower, 18, 1},
       
   429         {EPtiKeyQwertyZ, EPtiCaseLower, 19, 1},
       
   430         {EPtiKeyQwertyX, EPtiCaseLower, 20, 1},
       
   431         {EPtiKeyQwertyC, EPtiCaseLower, 21, 1},
       
   432         {EPtiKeyQwertyV, EPtiCaseLower, 22, 1},
       
   433         {EPtiKeyQwertyB, EPtiCaseLower, 23, 1},
       
   434         {EPtiKeyQwertyN, EPtiCaseLower, 24, 1},
       
   435         {EPtiKeyQwertyM, EPtiCaseLower, 25, 1},
       
   436         {EPtiKeyQwertyComma, EPtiCaseLower, 26, 1},
       
   437         {EPtiKeyQwertyFullstop, EPtiCaseLower, 27, 1},
       
   438         {EPtiKeyQwerty1, EPtiCaseUpper, 32, 1},
       
   439         {EPtiKeyQwerty2, EPtiCaseUpper, 33, 1},
       
   440         {EPtiKeyQwerty3, EPtiCaseUpper, 34, 1},
       
   441         {EPtiKeyQwerty4, EPtiCaseUpper, 35, 1},
       
   442         {EPtiKeyQwerty5, EPtiCaseUpper, 36, 1},
       
   443         {EPtiKeyQwerty6, EPtiCaseUpper, 37, 1},
       
   444         {EPtiKeyQwerty7, EPtiCaseUpper, 38, 1},
       
   445         {EPtiKeyQwerty8, EPtiCaseUpper, 39, 1},
       
   446         {EPtiKeyQwerty9, EPtiCaseUpper, 40, 1},
       
   447         {EPtiKeyQwerty0, EPtiCaseUpper, 41, 1},
       
   448         {EPtiKeyQwertyA, EPtiCaseUpper, 42, 1},
       
   449         {EPtiKeyQwertyS, EPtiCaseUpper, 43, 1},
       
   450         {EPtiKeyQwertyD, EPtiCaseUpper, 44, 1},
       
   451         {EPtiKeyQwertyF, EPtiCaseUpper, 45, 1},
       
   452         {EPtiKeyQwertyG, EPtiCaseUpper, 46, 1},
       
   453         {EPtiKeyQwertyH, EPtiCaseUpper, 47, 1},
       
   454         {EPtiKeyQwertyJ, EPtiCaseUpper, 48, 1},
       
   455         {EPtiKeyQwertyK, EPtiCaseUpper, 49, 1},
       
   456         {EPtiKeyQwertyL, EPtiCaseUpper, 50, 1},
       
   457         {EPtiKeyQwertyZ, EPtiCaseUpper, 51, 1},
       
   458         {EPtiKeyQwertyX, EPtiCaseUpper, 52, 1},
       
   459         {EPtiKeyQwertyC, EPtiCaseUpper, 53, 1},
       
   460         {EPtiKeyQwertyV, EPtiCaseUpper, 54, 1},
       
   461         {EPtiKeyQwertyB, EPtiCaseUpper, 55, 1},
       
   462         {EPtiKeyQwertyN, EPtiCaseUpper, 56, 1},
       
   463         {EPtiKeyQwertyM, EPtiCaseUpper, 57, 1},
       
   464         {EPtiKeyQwertyComma, EPtiCaseUpper, 58, 1},
       
   465         {EPtiKeyQwertyFullstop, EPtiCaseUpper, 59, 1},
       
   466         {EPtiKeyQwerty1, EPtiCaseFnLower, 62, 1},
       
   467         {EPtiKeyQwerty2, EPtiCaseFnLower, 63, 1},
       
   468         {EPtiKeyQwerty3, EPtiCaseFnLower, 64, 1},
       
   469         {EPtiKeyQwerty4, EPtiCaseFnLower, 65, 1},
       
   470         {EPtiKeyQwerty5, EPtiCaseFnLower, 66, 1},
       
   471         {EPtiKeyQwerty6, EPtiCaseFnLower, 67, 1},
       
   472         {EPtiKeyQwerty7, EPtiCaseFnLower, 68, 1},
       
   473         {EPtiKeyQwerty8, EPtiCaseFnLower, 69, 1},
       
   474         {EPtiKeyQwerty9, EPtiCaseFnLower, 70, 1},
       
   475         {EPtiKeyQwertyA, EPtiCaseFnLower, 71, 1},
       
   476         {EPtiKeyQwertyS, EPtiCaseFnLower, 72, 1},
       
   477         {EPtiKeyQwertyD, EPtiCaseFnLower, 73, 1},
       
   478         {EPtiKeyQwertyF, EPtiCaseFnLower, 74, 1},
       
   479         {EPtiKeyQwertyG, EPtiCaseFnLower, 75, 1},
       
   480         {EPtiKeyQwertyH, EPtiCaseFnLower, 76, 1},
       
   481         {EPtiKeyQwertyJ, EPtiCaseFnLower, 77, 1},
       
   482         {EPtiKeyQwertyK, EPtiCaseFnLower, 78, 1},
       
   483         {EPtiKeyQwertyL, EPtiCaseFnLower, 79, 1},
       
   484         {EPtiKeyQwertyZ, EPtiCaseFnLower, 80, 1},
       
   485         {EPtiKeyQwertyX, EPtiCaseFnLower, 81, 1},
       
   486         {EPtiKeyQwertyC, EPtiCaseFnLower, 82, 1},
       
   487         {EPtiKeyQwertyV, EPtiCaseFnLower, 83, 1},
       
   488         {EPtiKeyQwertyB, EPtiCaseFnLower, 84, 1},
       
   489         {EPtiKeyQwertyN, EPtiCaseFnLower, 85, 1},
       
   490         {EPtiKeyQwertyM, EPtiCaseFnLower, 86, 1},
       
   491         {EPtiKeyQwertyComma, EPtiCaseFnLower, 87, 1},
       
   492         {EPtiKeyQwertyFullstop, EPtiCaseFnLower, 88, 1},
       
   493     };
       
   494 
       
   495 const TInt KMaxMiniQwertyIndex_Arabic = 83;
       
   496 
       
   497 
       
   498 //
       
   499 // Numeric key data table for MiniQwerty
       
   500 //
       
   501 const TPtiNumericKeyBinding MiniQwertyNumericKeysData_table_Arabic[] =
       
   502 	{
       
   503 	{'p',EPtiKeyQwerty0,EPtiCaseLower},
       
   504 	{'w',EPtiKeyQwerty2,EPtiCaseLower},
       
   505 	{'E',EPtiKeyQwerty3,EPtiCaseUpper},
       
   506 	};
       
   507 
       
   508 const TInt KNumMiniQwertyNumericKeysEntries_Arabic = 3;
       
   509 //
       
   510 // MiniQwerty3x11 keymap data table
       
   511 //
       
   512 const TUint16 MiniQwerty3x11Data_table_Arabic[] =
       
   513     {
       
   514      0x0636,
       
   515      0x0635,
       
   516      0x062B,
       
   517      0x0642,
       
   518      0x0641,
       
   519      0x063A,
       
   520      0x0639,
       
   521      0x0647,
       
   522      0x062D,
       
   523      0x062C,
       
   524      0x0634,
       
   525      0x0633,
       
   526      0x064A,
       
   527      0x0628,
       
   528      0x0644,
       
   529      0x0627,
       
   530      0x0646,
       
   531      0x0643,
       
   532      0x0637,
       
   533      0x060C,
       
   534      0x0621,
       
   535      0x062F,
       
   536      0x0631,
       
   537      0xFEFB,
       
   538      0x0649,
       
   539      0x0648,
       
   540      0x0632,
       
   541      0x0636,
       
   542      0x0635,
       
   543      0x062B,
       
   544      0x0642,
       
   545      0xFEF9,
       
   546      0x0625,
       
   547      0x0639,
       
   548      0x0647,
       
   549      0x062E,
       
   550      0x062C,
       
   551      0x0634,
       
   552      0x0633,
       
   553      0x064A,
       
   554      0x0628,
       
   555      0xFEF7,
       
   556      0x0623,
       
   557      0x062A,
       
   558      0x0645,
       
   559      0x0638,
       
   560      0x061B,
       
   561      0x0626,
       
   562      0x0630,
       
   563      0x0624,
       
   564      0xFEF5,
       
   565      0x0622,
       
   566      0x0629,
       
   567      0x061F,
       
   568      0x0031,
       
   569      0x0032,
       
   570      0x0033,
       
   571      0x0034,
       
   572      0x0035,
       
   573      0x0036,
       
   574      0x0037,
       
   575      0x0038,
       
   576      0x0039,
       
   577      0x0030,
       
   578      0x0040,
       
   579      0x002F,
       
   580      0x0027,
       
   581      0x0022,
       
   582      0x002A,
       
   583      0x0023,
       
   584      0x002B,
       
   585      0x002D,
       
   586      0x003D,
       
   587      0x002E,
       
   588      0x0028,
       
   589      0x0029,
       
   590      0x0026,
       
   591      0x0021,
       
   592      0x003F,
       
   593      0x003B,
       
   594      0x003A,
       
   595     };
       
   596 
       
   597 const TInt KMiniQwerty3x11DataSize_Arabic = 81;
       
   598 
       
   599 
       
   600 const TPtiKeyBinding MiniQwerty3x11KeyBindings_table_Arabic[] =
       
   601     {
       
   602         {EPtiKeyQwertyQ, EPtiCaseLower, 0, 1},
       
   603         {EPtiKeyQwertyW, EPtiCaseLower, 1, 1},
       
   604         {EPtiKeyQwertyE, EPtiCaseLower, 2, 1},
       
   605         {EPtiKeyQwertyR, EPtiCaseLower, 3, 1},
       
   606         {EPtiKeyQwertyT, EPtiCaseLower, 4, 1},
       
   607         {EPtiKeyQwertyY, EPtiCaseLower, 5, 1},
       
   608         {EPtiKeyQwertyU, EPtiCaseLower, 6, 1},
       
   609         {EPtiKeyQwertyI, EPtiCaseLower, 7, 1},
       
   610         {EPtiKeyQwertyO, EPtiCaseLower, 8, 1},
       
   611         {EPtiKeyQwertyP, EPtiCaseLower, 9, 1},
       
   612         {EPtiKeyQwertyA, EPtiCaseLower, 10, 1},
       
   613         {EPtiKeyQwertyS, EPtiCaseLower, 11, 1},
       
   614         {EPtiKeyQwertyD, EPtiCaseLower, 12, 1},
       
   615         {EPtiKeyQwertyF, EPtiCaseLower, 13, 1},
       
   616         {EPtiKeyQwertyG, EPtiCaseLower, 14, 1},
       
   617         {EPtiKeyQwertyH, EPtiCaseLower, 15, 1},
       
   618         {EPtiKeyQwertyJ, EPtiCaseLower, 16, 1},
       
   619         {EPtiKeyQwertyK, EPtiCaseLower, 17, 1},
       
   620         {EPtiKeyQwertyL, EPtiCaseLower, 18, 1},
       
   621         {EPtiKeyQwertyComma, EPtiCaseLower, 19, 1},
       
   622         {EPtiKeyQwertyZ, EPtiCaseLower, 20, 1},
       
   623         {EPtiKeyQwertyX, EPtiCaseLower, 21, 1},
       
   624         {EPtiKeyQwertyC, EPtiCaseLower, 22, 1},
       
   625         {EPtiKeyQwertyV, EPtiCaseLower, 23, 1},
       
   626         {EPtiKeyQwertyB, EPtiCaseLower, 24, 1},
       
   627         {EPtiKeyQwertyN, EPtiCaseLower, 25, 1},
       
   628         {EPtiKeyQwertyM, EPtiCaseLower, 26, 1},
       
   629         {EStdKeySpace, EPtiCaseLower, 27, 0},
       
   630         {EPtiKeyQwertyQ, EPtiCaseUpper, 27, 1},
       
   631         {EPtiKeyQwertyW, EPtiCaseUpper, 28, 1},
       
   632         {EPtiKeyQwertyE, EPtiCaseUpper, 29, 1},
       
   633         {EPtiKeyQwertyR, EPtiCaseUpper, 30, 1},
       
   634         {EPtiKeyQwertyT, EPtiCaseUpper, 31, 1},
       
   635         {EPtiKeyQwertyY, EPtiCaseUpper, 32, 1},
       
   636         {EPtiKeyQwertyU, EPtiCaseUpper, 33, 1},
       
   637         {EPtiKeyQwertyI, EPtiCaseUpper, 34, 1},
       
   638         {EPtiKeyQwertyO, EPtiCaseUpper, 35, 1},
       
   639         {EPtiKeyQwertyP, EPtiCaseUpper, 36, 1},
       
   640         {EPtiKeyQwertyA, EPtiCaseUpper, 37, 1},
       
   641         {EPtiKeyQwertyS, EPtiCaseUpper, 38, 1},
       
   642         {EPtiKeyQwertyD, EPtiCaseUpper, 39, 1},
       
   643         {EPtiKeyQwertyF, EPtiCaseUpper, 40, 1},
       
   644         {EPtiKeyQwertyG, EPtiCaseUpper, 41, 1},
       
   645         {EPtiKeyQwertyH, EPtiCaseUpper, 42, 1},
       
   646         {EPtiKeyQwertyJ, EPtiCaseUpper, 43, 1},
       
   647         {EPtiKeyQwertyK, EPtiCaseUpper, 44, 1},
       
   648         {EPtiKeyQwertyL, EPtiCaseUpper, 45, 1},
       
   649         {EPtiKeyQwertyComma, EPtiCaseUpper, 46, 1},
       
   650         {EPtiKeyQwertyZ, EPtiCaseUpper, 47, 1},
       
   651         {EPtiKeyQwertyX, EPtiCaseUpper, 48, 1},
       
   652         {EPtiKeyQwertyC, EPtiCaseUpper, 49, 1},
       
   653         {EPtiKeyQwertyV, EPtiCaseUpper, 50, 1},
       
   654         {EPtiKeyQwertyB, EPtiCaseUpper, 51, 1},
       
   655         {EPtiKeyQwertyN, EPtiCaseUpper, 52, 1},
       
   656         {EPtiKeyQwertyM, EPtiCaseUpper, 53, 1},
       
   657         {EStdKeySpace, EPtiCaseUpper, 54, 0},
       
   658         {EPtiKeyQwertyQ, EPtiCaseFnLower, 54, 1},
       
   659         {EPtiKeyQwertyW, EPtiCaseFnLower, 55, 1},
       
   660         {EPtiKeyQwertyE, EPtiCaseFnLower, 56, 1},
       
   661         {EPtiKeyQwertyR, EPtiCaseFnLower, 57, 1},
       
   662         {EPtiKeyQwertyT, EPtiCaseFnLower, 58, 1},
       
   663         {EPtiKeyQwertyY, EPtiCaseFnLower, 59, 1},
       
   664         {EPtiKeyQwertyU, EPtiCaseFnLower, 60, 1},
       
   665         {EPtiKeyQwertyI, EPtiCaseFnLower, 61, 1},
       
   666         {EPtiKeyQwertyO, EPtiCaseFnLower, 62, 1},
       
   667         {EPtiKeyQwertyP, EPtiCaseFnLower, 63, 1},
       
   668         {EPtiKeyQwertyA, EPtiCaseFnLower, 64, 1},
       
   669         {EPtiKeyQwertyS, EPtiCaseFnLower, 65, 1},
       
   670         {EPtiKeyQwertyD, EPtiCaseFnLower, 66, 1},
       
   671         {EPtiKeyQwertyF, EPtiCaseFnLower, 67, 1},
       
   672         {EPtiKeyQwertyG, EPtiCaseFnLower, 68, 1},
       
   673         {EPtiKeyQwertyH, EPtiCaseFnLower, 69, 1},
       
   674         {EPtiKeyQwertyJ, EPtiCaseFnLower, 70, 1},
       
   675         {EPtiKeyQwertyK, EPtiCaseFnLower, 71, 1},
       
   676         {EPtiKeyQwertyL, EPtiCaseFnLower, 72, 1},
       
   677         {EPtiKeyQwertyComma, EPtiCaseFnLower, 73, 1},
       
   678         {EPtiKeyQwertyZ, EPtiCaseFnLower, 74, 1},
       
   679         {EPtiKeyQwertyX, EPtiCaseFnLower, 75, 1},
       
   680         {EPtiKeyQwertyC, EPtiCaseFnLower, 76, 1},
       
   681         {EPtiKeyQwertyV, EPtiCaseFnLower, 77, 1},
       
   682         {EPtiKeyQwertyB, EPtiCaseFnLower, 78, 1},
       
   683         {EPtiKeyQwertyN, EPtiCaseFnLower, 79, 1},
       
   684         {EPtiKeyQwertyM, EPtiCaseFnLower, 80, 1},
       
   685     };
       
   686 
       
   687 const TInt KMaxMiniQwerty3x11Index_Arabic = 83;
       
   688 
       
   689 
       
   690 //
       
   691 // Numeric key data table for MiniQwerty3x11
       
   692 //
       
   693 const TPtiNumericKeyBinding MiniQwerty3x11NumericKeysData_table_Arabic[] =
       
   694 	{
       
   695 	{'p',EPtiKeyQwertyP,EPtiCaseLower},
       
   696 	{'w',EPtiKeyQwertyW,EPtiCaseLower},
       
   697 	{',',EPtiKeyQwertyComma,EPtiCaseLower},
       
   698 	{'E',EPtiKeyQwertyE,EPtiCaseUpper},
       
   699 	{'/',EPtiKeyQwertyS,EPtiCaseFnLower},
       
   700 	};
       
   701 
       
   702 const TInt KNumMiniQwerty3x11NumericKeysEntries_Arabic = 5;
       
   703 //
       
   704 // Class implementation.
       
   705 //
       
   706 
       
   707 CPtiLangDataImplArabic* CPtiLangDataImplArabic::NewL()
       
   708     {
       
   709     return new (ELeave) CPtiLangDataImplArabic();
       
   710     }
       
   711 
       
   712 
       
   713 TInt CPtiLangDataImplArabic::LanguageCode() const
       
   714     {
       
   715     return ELangArabic;
       
   716     }
       
   717 
       
   718 
       
   719 const TUint16* CPtiLangDataImplArabic::KeyData(TPtiKeyboardType aKeyboardType, TInt& aDataSize) const
       
   720     {
       
   721     if (aKeyboardType == EPtiKeyboard12Key)
       
   722         {
       
   723         aDataSize = KMultitapDataSize_Arabic;
       
   724         return MultitapData_table_Arabic;
       
   725         }
       
   726     if (aKeyboardType == EPtiKeyboardQwerty4x12)
       
   727         {
       
   728         aDataSize = KStandardQwertyDataSize_Arabic;
       
   729         return StandardQwertyData_table_Arabic;
       
   730         }
       
   731 
       
   732     if (aKeyboardType == EPtiKeyboardQwerty4x10)
       
   733         {
       
   734         aDataSize = KMiniQwertyDataSize_Arabic;
       
   735         return MiniQwertyData_table_Arabic;
       
   736         }
       
   737 
       
   738     if (aKeyboardType == EPtiKeyboardQwerty3x11)
       
   739         {
       
   740         aDataSize = KMiniQwerty3x11DataSize_Arabic;
       
   741         return MiniQwerty3x11Data_table_Arabic;
       
   742         }
       
   743 
       
   744     aDataSize = 0;
       
   745     return NULL;
       
   746     }
       
   747 
       
   748 
       
   749 const TPtiKeyBinding* CPtiLangDataImplArabic::KeyBindingTable(TPtiKeyboardType aKeyboardType, TInt& aNumItems) const
       
   750     {
       
   751     if (aKeyboardType == EPtiKeyboard12Key)
       
   752         {
       
   753         aNumItems = KMaxMultitapIndex_Arabic;
       
   754         return MultitapKeyBindings_table_Arabic;
       
   755         }
       
   756     if (aKeyboardType == EPtiKeyboardQwerty4x12)
       
   757         {
       
   758         aNumItems = KMaxStandardQwertyIndex_Arabic;
       
   759         return StandardQwertyKeyBindings_table_Arabic;
       
   760         }
       
   761     if (aKeyboardType == EPtiKeyboardQwerty4x10)
       
   762         {
       
   763         aNumItems = KMaxMiniQwertyIndex_Arabic;
       
   764         return MiniQwertyKeyBindings_table_Arabic;
       
   765         }
       
   766     if (aKeyboardType == EPtiKeyboardQwerty3x11)
       
   767         {
       
   768         aNumItems = KMaxMiniQwerty3x11Index_Arabic;
       
   769         return MiniQwerty3x11KeyBindings_table_Arabic;
       
   770         }
       
   771 
       
   772     aNumItems = 0;
       
   773     return NULL;
       
   774     }
       
   775 
       
   776 
       
   777 const TPtiNumericKeyBinding* CPtiLangDataImplArabic::NumericModeKeysTable(TPtiKeyboardType aKeyboardType, TInt& aNumEntries) const
       
   778     {
       
   779     if (aKeyboardType == EPtiKeyboardQwerty4x12)
       
   780         {
       
   781         aNumEntries = KNumStandardQwertyNumericKeysEntries_Arabic;
       
   782         return StandardQwertyNumericKeysData_table_Arabic;
       
   783         }
       
   784 
       
   785     if (aKeyboardType == EPtiKeyboardQwerty4x10)
       
   786         {
       
   787         aNumEntries = KNumMiniQwertyNumericKeysEntries_Arabic;
       
   788         return MiniQwertyNumericKeysData_table_Arabic;
       
   789         }
       
   790 
       
   791     if (aKeyboardType == EPtiKeyboardQwerty3x11)
       
   792         {
       
   793         aNumEntries = KNumMiniQwerty3x11NumericKeysEntries_Arabic;
       
   794         return MiniQwerty3x11NumericKeysData_table_Arabic;
       
   795         }
       
   796 
       
   797     aNumEntries = 0;
       
   798     return NULL;
       
   799     }
       
   800 
       
   801 
       
   802 
       
   803 TBool CPtiLangDataImplArabic::SuitableForLatinOnlyMode() const
       
   804     {
       
   805     return EFalse;
       
   806     }
       
   807 
       
   808