epoc32/include/mw/ptidefs.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:27:01 +0100
branchSymbian2
changeset 3 e1b950c65cb4
parent 1 666f914201fb
child 4 837f303aceeb
permissions -rw-r--r--
Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
williamr@2
     1
/*
williamr@2
     2
* Copyright (c) 2003-2006 Nokia Corporation and/or its subsidiary(-ies). 
williamr@2
     3
* All rights reserved.
williamr@2
     4
* This component and the accompanying materials are made available
williamr@2
     5
* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
williamr@2
     6
* which accompanies this distribution, and is available
williamr@2
     7
* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2
     8
*
williamr@2
     9
* Initial Contributors:
williamr@2
    10
* Nokia Corporation - initial contribution.
williamr@2
    11
*
williamr@2
    12
* Contributors:
williamr@2
    13
*
williamr@2
    14
* Description:               Global PtiEngine definitions
williamr@2
    15
*
williamr@2
    16
*/
williamr@2
    17
williamr@2
    18
williamr@2
    19
williamr@2
    20
williamr@2
    21
williamr@2
    22
williamr@2
    23
williamr@2
    24
williamr@2
    25
williamr@2
    26
williamr@2
    27
williamr@2
    28
williamr@2
    29
williamr@2
    30
williamr@2
    31
#ifndef _PTI_DEFS_H
williamr@2
    32
#define _PTI_DEFS_H
williamr@2
    33
williamr@2
    34
#include <e32keys.h>
williamr@2
    35
williamr@2
    36
#ifdef RD_HINDI_PHONETIC_INPUT
williamr@2
    37
/* Indic Phonetic input */
williamr@2
    38
williamr@2
    39
/*
williamr@2
    40
* Defines the state of the syllable. This is used by FEP for either committing 
williamr@2
    41
* the inline text or updating the inline text.
williamr@2
    42
*/
williamr@2
    43
williamr@2
    44
enum TSyllableState
williamr@2
    45
{
williamr@2
    46
    EIndicSyllableStateFirst,
williamr@2
    47
    EIndicSyllableStateInsideSyllable,
williamr@2
    48
    EIndicSyllableStateSyllableBroken,
williamr@2
    49
    EIndicSyllableStateLast
williamr@2
    50
};
williamr@2
    51
williamr@2
    52
williamr@2
    53
/*
williamr@2
    54
* This is a structure that abstracts the phonetic argument and the response
williamr@2
    55
* from the Indic phonetic core in a structure.
williamr@2
    56
*/
williamr@2
    57
williamr@2
    58
typedef struct
williamr@2
    59
{
williamr@2
    60
    TChar iChar;
williamr@2
    61
    TDes *iDest;
williamr@2
    62
    TSyllableState iState;
williamr@2
    63
}TPhoneticArg;
williamr@2
    64
williamr@2
    65
#endif
williamr@2
    66
const TInt KMaxLanguageNameLength = 50;
williamr@2
    67
const TInt KMaxAutoSubstStringLength = 32;
williamr@2
    68
williamr@2
    69
const TInt KErrPtiEngineBase = (-1000); //based on the value of leave in PtiEngine
williamr@2
    70
williamr@2
    71
williamr@2
    72
enum TPtiError
williamr@2
    73
    {
williamr@2
    74
    KErrNoActiveLanguage = KErrPtiEngineBase-1,   
williamr@2
    75
    KErrLanguageNotFound = KErrPtiEngineBase-2,
williamr@2
    76
    KErrNoSuitableCore = KErrPtiEngineBase-3,
williamr@2
    77
    KErrNotAllowed = KErrPtiEngineBase-4,
williamr@2
    78
    KErrTooLongWord = KErrPtiEngineBase-5,
williamr@2
    79
    KErrInvalidWord = KErrPtiEngineBase-6,
williamr@2
    80
    KErrTooLongReading = KErrPtiEngineBase-7,
williamr@2
    81
    KErrInvalidReading = KErrPtiEngineBase-8,
williamr@2
    82
    KErrUserDic = KErrPtiEngineBase-9,
williamr@2
    83
    KErrInternalCoreError = KErrPtiEngineBase-10,
williamr@2
    84
    KErrLengthMismatch = KErrPtiEngineBase-11
williamr@2
    85
    };
williamr@2
    86
williamr@2
    87
williamr@2
    88
/**
williamr@2
    89
* Enumerations for all the possible input modes supported by PtiEngine. 
williamr@2
    90
* The modes actually available in the device depend on core object, resource 
williamr@2
    91
* and keyboard configuration.
williamr@2
    92
* Here are short descriptions:
williamr@2
    93
*
williamr@2
    94
* EPtiEngineMultitapping 
williamr@2
    95
*        Traditional text input method for latin-like languages, where 
williamr@2
    96
*        a list of characters is associated to each keypad keys
williamr@2
    97
*        and user cycles through associated characters by consecutive key presses.
williamr@2
    98
*
williamr@2
    99
* EPtiEnginePredictive 
williamr@2
   100
*        Predictive text input mode, where user presses only one key press per
williamr@2
   101
*        character and the prediction engine provides a list of candidate words
williamr@2
   102
*        associated top that key sequence.
williamr@2
   103
* 
williamr@2
   104
* EPtiEngineWordCompletion
williamr@2
   105
*        This is same as EPtiEnginePredictive, except that prediction engine
williamr@2
   106
*        will include also complete words containing more characters than
williamr@2
   107
*        the number of key presses in current key sequence.
williamr@2
   108
*
williamr@2
   109
* EPtiEngineNumeric 
williamr@2
   110
*        This is numeric input mode. All the languages suppor it, since it uses
williamr@2
   111
*        static keymappings built directly into PtiEngine. It works in same way
williamr@2
   112
*        as EPtiEngineMultitapping, except that keymapping data contains
williamr@2
   113
*        only number mode characters. 
williamr@2
   114
*
williamr@2
   115
* EPtiEngineQwerty
williamr@2
   116
*        Standard qwerty-keyboard input mode for latin-like languages.
williamr@2
   117
*
williamr@2
   118
* EPtiEnginePinyin
williamr@2
   119
*        Chinese PinYin input mode for ITU-T keypad.
williamr@2
   120
*
williamr@2
   121
* EPtiEngineStroke
williamr@2
   122
*        Chinese Strokes input mode for ITU-T keypad.       
williamr@2
   123
*
williamr@2
   124
* EPtiEngineStroke
williamr@2
   125
*        Chinese ZhuYin input mode for ITU-T keypad.       
williamr@2
   126
*
williamr@2
   127
* EPtiEngineHirakanaKanji
williamr@2
   128
*        Japanese Hiragana/Kanji input mode.       
williamr@2
   129
*
williamr@2
   130
* EPtiEngineHirakanaKanjiPredictive
williamr@2
   131
*        Predictive Japanese Hiragana/Kanji input mode.       
williamr@2
   132
*
williamr@2
   133
* EPtiEngineKatakana
williamr@2
   134
*        Japanese Katakana input mode.   
williamr@2
   135
*
williamr@2
   136
* EPtiEngineFullWitdthKatakana
williamr@2
   137
*        Japanese full width Katakana input mode. 
williamr@2
   138
*
williamr@2
   139
* EPtiEngineFullWitdthKatakana
williamr@2
   140
*        Japanese full width numeric input mode. 
williamr@2
   141
*
williamr@2
   142
* EPtiEngineFullWitdthAlphabet
williamr@2
   143
*        Japanese full width alphabet input mode. 
williamr@2
   144
*
williamr@2
   145
* EPtiEngineHiragana
williamr@2
   146
*        Japanese Hiragana input mode. 
williamr@2
   147
*
williamr@2
   148
* EPtiEnginePinyinByPhrase
williamr@2
   149
*        Chinese Pinyin phrase input. This is same as EPtiEnginePinyin, execpt that
williamr@2
   150
*        input string may contain pinyin words for several chinese characters.
williamr@2
   151
*
williamr@2
   152
* EPtiEngineZhuyinByPhrase
williamr@2
   153
*        Chinese Zinyin phrase input. This is same as EPtiEngineZhuyin, execpt that
williamr@2
   154
*        input string may contain zhuyin sequences for several chinese characters.
williamr@2
   155
*
williamr@2
   156
* EPtiEngineZhuyinQwerty
williamr@2
   157
*        Chinese Zhuyin input for qwerty keyboard.
williamr@2
   158
*
williamr@2
   159
* EPtiEngineZhuyinPhraseQwerty
williamr@2
   160
*        Chinese Zinyin phrase input for qwerty keyboard. This is same as EPtiEngineZhuyinQwerty,
williamr@2
   161
*        execpt that input string may contain zhuyin sequences for several chinese characters.
williamr@2
   162
*
williamr@2
   163
* EPtiEnginePinyinQwerty
williamr@2
   164
*        Chinese Pinyin input for qwerty keyboard.
williamr@2
   165
*
williamr@2
   166
* PtiEnginePinyinPhraseQwerty
williamr@2
   167
*        Same as EPtiEnginePinyinByPhrase but for qwerty keyboard
williamr@2
   168
*
williamr@2
   169
* EPtiEngineStrokeQwerty
williamr@2
   170
*        Same as EPtiEngineStroke but for qwerty keyboard
williamr@2
   171
*
williamr@2
   172
* EPtiEngineNormalCangjieQwerty
williamr@2
   173
*        Normal Chinese CangJie input for qwerty keyboard
williamr@2
   174
*        (CangJie is available only for qwerty).
williamr@2
   175
*
williamr@2
   176
* EPtiEngineEasyCangjieQwerty
williamr@2
   177
*        Easy Chinese CangJie input for qwerty keyboard
williamr@2
   178
*        (CangJie is available only for qwerty).
williamr@2
   179
*
williamr@2
   180
* EPtiEngineAdvCangjieQwerty       
williamr@2
   181
*        Advanced Chinese CangJie input for qwerty keyboard
williamr@2
   182
*        (CangJie is available only for qwerty).
williamr@2
   183
*
williamr@2
   184
* EPtiEngineHiraganaKanjiQwerty
williamr@2
   185
*       Japanese Hiragana/Kanji input for qwerty keyboard.
williamr@2
   186
*
williamr@2
   187
* EPtiEngineHiraganaKanjiPredictiveQwerty  
williamr@2
   188
*       Japanese predictive Hiragana/Kanji input for qwerty keyboard
williamr@2
   189
*
williamr@2
   190
* EPtiEngineKatakanaQwerty            
williamr@2
   191
*       Japanese Half-width Katakana input for qwerty keyboard.
williamr@2
   192
*
williamr@2
   193
* EPtiEngineFullWidthKatakanaQwerty  
williamr@2
   194
*       Japanese Full-width Katakana input for qwerty keyboard.
williamr@2
   195
*
williamr@2
   196
* EPtiEngineFullWidthNumericQwerty
williamr@2
   197
*       Japanese Full-width Alphabet input for qwerty keyboard.
williamr@2
   198
*
williamr@2
   199
* EPtiEngineFullWidthAlphabetQwerty
williamr@2
   200
*       Japanese Full-width Alphabet input for qwerty keyboard.
williamr@2
   201
*        
williamr@2
   202
* EPtiEngineHiraganaQwerty          
williamr@2
   203
*       Japanese Hiragana input for qwerty keyboard. 
williamr@2
   204
*
williamr@2
   205
* EPtiEngineStrokeByPhrase,             // Stroke phrase input.
williamr@2
   206
*       Chinese Stroke input for ITU-T keypad. Phrasal version.
williamr@2
   207
*
williamr@2
   208
* EPtiEngineStrokePhraseQwerty
williamr@2
   209
*       Chinese Stroke input for qwerty keyboard. Phrasal version.
williamr@2
   210
*
williamr@2
   211
* EPtiEngineQwertyPredictive,           // "Sloppy type" input for qwerty keyboard.
williamr@2
   212
*       Intelligent qwerty input. Used for word completion and spell
williamr@2
   213
*       correction features for qwerty keyboard.
williamr@2
   214
*
williamr@2
   215
* EPtiEngineHalfQwerty
williamr@2
   216
*       Basic multitaping style text input for half-qwerty keyboard. The functionality
williamr@2
   217
*       of half-qwerty keyboard is same as conventional itu-t phone keypad, except that
williamr@2
   218
*       each key is associated with two basic characters (instead of three or four
williamr@2
   219
*       as in itu-t keypad). Character mapping is also organized to follow qwerty
williamr@2
   220
*       layout (instead of alphabetical order as in itu-t keypad).
williamr@2
   221
* 
williamr@2
   222
* EPtiEngineHalfQwertyPredictive,
williamr@2
   223
*       Predictive text input for half-qwerty keyboard. The functionality
williamr@2
   224
*       of half-qwerty keyboard is same as conventional itu-t phone keypad, except that
williamr@2
   225
*       each key is associated with two basic characters(instead of three or four
williamr@2
   226
*       as in itu-t keypad). . Character mapping is also organized to follow qwerty
williamr@2
   227
*       layout (instead of alphabetical order as in itu-t keypad). This input mode 
williamr@2
   228
*       is essentially same as EPtiEngineWordCompletion but uses half-qwerty keyboard. 
williamr@2
   229
*
williamr@2
   230
* EPtiEngineInputModeIndicPhoneticMultitap
williamr@2
   231
*       Hindi phonetic input for itu-t keypad.
williamr@2
   232
*
williamr@2
   233
* EPtiEngineInputModeIndicPhoneticQwerty
williamr@2
   234
*       Hindi phonetic input for qwerty keyboard.
williamr@2
   235
*
williamr@2
   236
* EPtiEngineInputModeZhuyinMiniQwertyFind
williamr@2
   237
*       Zhuyin multitap input method for mini qwerty symbol find.
williamr@2
   238
*
williamr@2
   239
*/
williamr@2
   240
enum TPtiEngineInputMode
williamr@2
   241
    {
williamr@2
   242
    EPtiEngineInputModeNone = 0,
williamr@2
   243
    EPtiEngineMultitapping,             // Basic multitapping input for latin languages.
williamr@2
   244
    EPtiEnginePredictive,               // Predictive input for latin languages.
williamr@2
   245
    EPtiEngineWordCompletion,           // Predictive input with word completion for latin languages.
williamr@2
   246
    EPtiEngineNumeric,                  // Latin numeric input mode.  
williamr@2
   247
    EPtiEngineQwerty,                   // Basic qwerty input mode.
williamr@2
   248
    EPtiEnginePinyin,                   // Chinese pinyin mode.        
williamr@2
   249
    EPtiEngineStroke,                   // Chinese stroke mode.
williamr@2
   250
    EPtiEngineZhuyin,                   // Chinese zhuyin mode. 
williamr@2
   251
    EPtiEngineHiraganaKanji,            // Hiragana/Kanji mode.
williamr@2
   252
    EPtiEngineHiraganaKanjiPredictive,  // Predictive Hiragana/Kanji mode.
williamr@2
   253
    EPtiEngineKatakana,                 // Half-width Katakana mode. 
williamr@2
   254
    EPtiEngineFullWidthKatakana,        // Full-width Katakana mode.
williamr@2
   255
    EPtiEngineFullWidthNumeric,         // Full-width Alphabet mode (for Japanese input).
williamr@2
   256
    EPtiEngineFullWidthAlphabet,        // Full-width Alphabet mode (for Japanese input).
williamr@2
   257
    EPtiEngineHiragana,                 // Hiragana only mode. 
williamr@2
   258
    EPtiEnginePinyinByPhrase,           // Pinyin phrase input.         
williamr@2
   259
    EPtiEngineZhuyinByPhrase,           // Zhuyin phrase input.
williamr@2
   260
    EPtiEngineZhuyinQwerty,             // Zhuyin qwerty input. 
williamr@2
   261
    EPtiEngineZhuyinPhraseQwerty,       // Zhuyin phrase qwerty input. 
williamr@2
   262
    EPtiEnginePinyinQwerty,             // Pinyin qwerty input.
williamr@2
   263
    EPtiEnginePinyinPhraseQwerty,       // Pinyin phrase qwerty input. 
williamr@2
   264
    EPtiEngineStrokeQwerty,             // Stroke qwerty input.
williamr@2
   265
    EPtiEngineNormalCangjieQwerty,      // Normal Cangjie qwerty input
williamr@2
   266
    EPtiEngineEasyCangjieQwerty,        // Easy Cangjie qwerty input
williamr@2
   267
    EPtiEngineAdvCangjieQwerty,         // Advanced Cangjie qwerty input
williamr@2
   268
    EPtiEngineHiraganaKanjiQwerty,      // Hiragana/Kanji qwerty input mode.
williamr@2
   269
    EPtiEngineHiraganaKanjiPredictiveQwerty,  // Predictive Hiragana/Kanji qwerty input mode.
williamr@2
   270
    EPtiEngineKatakanaQwerty,           // Half-width Katakana qwerty input mode. 
williamr@2
   271
    EPtiEngineFullWidthKatakanaQwerty,  // Full-width Katakana qwerty input mode.
williamr@2
   272
    EPtiEngineFullWidthNumericQwerty,   // Full-width Alphabet qwerty input mode (for Japanese input).
williamr@2
   273
    EPtiEngineFullWidthAlphabetQwerty,  // Full-width Alphabet qwerty input mode (for Japanese input).
williamr@2
   274
    EPtiEngineHiraganaQwerty,           // Hiragana only qwerty input mode.   
williamr@2
   275
    EPtiEnginePinyinVkb,                  // Chinese pinyin mode.        
williamr@2
   276
    EPtiEngineStrokeVkb,                  // Chinese stroke mode.
williamr@2
   277
    EPtiEngineZhuyinVkb,                  // Chinese zhuyin mode. 
williamr@2
   278
	  EPtiEngineStrokeByPhrase,             // Stroke phrase input.
williamr@2
   279
    EPtiEngineStrokePhraseQwerty,         // Stroke phrase qwerty input.
williamr@2
   280
    EPtiEngineHiraganaKanjiVkb,           // Hiragana/Kanji mode for VKB.
williamr@2
   281
    EPtiEngineHiraganaKanjiPredictiveVkb, // Predictive Hiragana/Kanji mode for VKB.
williamr@2
   282
    EPtiEngineHiraganaKanjiHwr,           // Hiragana/Kanji mode for HWR.
williamr@2
   283
    EPtiEngineHiraganaKanjiPredictiveHwr, // Predictive Hiragana/Kanji mode for HWR.
williamr@2
   284
    EPtiEngineKatakanaVkb,                // Half-width Katakana mode for VKB.
williamr@2
   285
    EPtiEngineFullWidthKatakanaVkb,       // Full-width Katakana mode for VKB.
williamr@2
   286
    EPtiEngineHiraganaVkb,                // Hiragana only qwerty input mode for VKB.
williamr@2
   287
    EPtiEngineNormalCangjieVkb,  
williamr@2
   288
    EPtiEngineEasyCangjieVkb,    
williamr@2
   289
    EPtiEngineAdvCangjieVkb,     
williamr@2
   290
    EPtiEngineInputModeIndicPhoneticMultitap,
williamr@2
   291
    EPtiEngineInputModeIndicPhoneticQwerty,
williamr@2
   292
    EPtiEngineHiraganaKanjiVkbRomaji,           // Hiragana/Kanji mode for VKB/FSQ Romaji input.
williamr@2
   293
    EPtiEngineHiraganaKanjiPredictiveVkbRomaji, // Predictive Hiragana/Kanji mode for VKB/FSQ Romaji input.
williamr@2
   294
    EPtiEngineQwertyPredictive,           // "Sloppy type" input for qwerty keyboard.
williamr@2
   295
    EPtiEngineHalfQwerty,
williamr@2
   296
    EPtiEngineHalfQwertyPredictive,
williamr@2
   297
    EPtiEngineInputModeQwertyPredictive ,
williamr@2
   298
	EPtiEngineInputModeZhuyinMiniQwertyFind,
williamr@2
   299
    EPtiEnginePinyinPhraseHalfQwerty,
williamr@2
   300
    EPtiEngineStrokePhraseHalfQwerty,
williamr@2
   301
    EPtiEngineZhuyinPhraseHalfQwerty,
williamr@2
   302
    EPtiEngineMultitappingKorean,       // Basic multitapping input for korean language.
williamr@2
   303
    EPtiEngineMaxInputModes = EPtiEngineMultitappingKorean
williamr@2
   304
    };
williamr@2
   305
williamr@2
   306
williamr@2
   307
/*
williamr@2
   308
* Predictive qwerty error correction levels. 
williamr@2
   309
*/
williamr@2
   310
enum TPtiErrorCorrectionLevel
williamr@2
   311
    {
williamr@2
   312
    EPtiErrorCorrectionLevelOff  = 0,
williamr@2
   313
    EPtiErrorCorrectionLevelLow  = 1,
williamr@2
   314
    EPtiErrorCorrectionLevelHigh = 2
williamr@2
   315
    };
williamr@2
   316
williamr@2
   317
williamr@2
   318
/**
williamr@2
   319
* Key enumerations for conventional (ITU-T) and qwerty keyboards.
williamr@2
   320
* Constant names for qwerty keypad keys are named after scan code
williamr@2
   321
* values of a device using English language keymappings. The
williamr@2
   322
* actual character that will be inserted into editor buffer depends on
williamr@2
   323
* keymappings of currently selected input language and may be something else
williamr@2
   324
* than what enum name suggests. For example
williamr@2
   325
* non-shifted EPtiKeyQwertyHash produces '#'-character if input language is
williamr@2
   326
* English, but will produce '+'-character if
williamr@2
   327
* input language is Danish, Norwegian, Swedish or Finnish.
williamr@2
   328
* The key coordinates on standard 4x12 qwerty keypad are given in
williamr@2
   329
* comments.
williamr@2
   330
*/
williamr@2
   331
enum TPtiKey
williamr@2
   332
    {
williamr@2
   333
    EPtiKeyNone = 0,
williamr@2
   334
    
williamr@2
   335
    EPtiKey1    = '1',
williamr@2
   336
    EPtiKey2    = '2',
williamr@2
   337
    EPtiKey3    = '3',
williamr@2
   338
    EPtiKey4    = '4',
williamr@2
   339
    EPtiKey5    = '5',
williamr@2
   340
    EPtiKey6    = '6',
williamr@2
   341
    EPtiKey7    = '7',
williamr@2
   342
    EPtiKey8    = '8',
williamr@2
   343
    EPtiKey9    = '9',
williamr@2
   344
    EPtiKeyStar = '*',
williamr@2
   345
    EPtiKey0    = '0',
williamr@2
   346
    EPtiKeyHash = '#',
williamr@2
   347
williamr@2
   348
    // alternate names
williamr@2
   349
    EPtiKeyPunct = EPtiKey1,
williamr@2
   350
    EPtiKeyABC   = EPtiKey2,
williamr@2
   351
    EPtiKeyDEF   = EPtiKey3,
williamr@2
   352
    EPtiKeyGHI   = EPtiKey4,
williamr@2
   353
    EPtiKeyJKL   = EPtiKey5,
williamr@2
   354
    EPtiKeyMNO   = EPtiKey6,
williamr@2
   355
    EPtiKeyPQRS  = EPtiKey7,
williamr@2
   356
    EPtiKeyTUV   = EPtiKey8,
williamr@2
   357
    EPtiKeyWXYZ  = EPtiKey9,
williamr@2
   358
williamr@2
   359
    // qwerty keys
williamr@2
   360
    EPtiKeyQwerty1     = 0x31,   
williamr@2
   361
    EPtiKeyQwerty2     = 0x32,   
williamr@2
   362
    EPtiKeyQwerty3     = 0x33,   
williamr@2
   363
    EPtiKeyQwerty4     = 0x34,   
williamr@2
   364
    EPtiKeyQwerty5     = 0x35,   
williamr@2
   365
    EPtiKeyQwerty6     = 0x36,   
williamr@2
   366
    EPtiKeyQwerty7     = 0x37,   
williamr@2
   367
    EPtiKeyQwerty8     = 0x38,   
williamr@2
   368
    EPtiKeyQwerty9     = 0x39,   
williamr@2
   369
    EPtiKeyQwerty0     = 0x30,   
williamr@2
   370
williamr@2
   371
    EPtiKeyQwertyPlus        = 0x2b,                    
williamr@2
   372
    EPtiKeyQwertyMinus       = EStdKeyMinus,            
williamr@2
   373
    EPtiKeyQwertyComma       = EStdKeyComma,            
williamr@2
   374
    EPtiKeyQwertySemicolon   = EStdKeySemiColon,        
williamr@2
   375
    EPtiKeyQwertyFullstop    = EStdKeyFullStop,         
williamr@2
   376
    EPtiKeyQwertyHash        = EStdKeyHash,             
williamr@2
   377
    EPtiKeyQwertySlash       = EStdKeyForwardSlash,     
williamr@2
   378
    EPtiKeyQwertyApostrophe  = EStdKeySingleQuote,      
williamr@2
   379
    EPtiKeyQwertySpace       = EStdKeySpace,  
williamr@2
   380
    EPtiKeyQwertyAtCharacter = EStdKeySquareBracketRight,
williamr@2
   381
    EPtiKeyQwertyLeftShift   = EStdKeyLeftShift,           // Needed only for special cases.
williamr@2
   382
williamr@2
   383
    EPtiKeyQwertyA = 0x41,     
williamr@2
   384
    EPtiKeyQwertyB = 0x42,     
williamr@2
   385
    EPtiKeyQwertyC = 0x43,     
williamr@2
   386
    EPtiKeyQwertyD = 0x44,     
williamr@2
   387
    EPtiKeyQwertyE = 0x45,     
williamr@2
   388
    EPtiKeyQwertyF = 0x46,     
williamr@2
   389
    EPtiKeyQwertyG = 0x47,     
williamr@2
   390
    EPtiKeyQwertyH = 0x48,     
williamr@2
   391
    EPtiKeyQwertyI = 0x49,      
williamr@2
   392
    EPtiKeyQwertyJ = 0x4a,      
williamr@2
   393
    EPtiKeyQwertyK = 0x4b,      
williamr@2
   394
    EPtiKeyQwertyL = 0x4c,     
williamr@2
   395
    EPtiKeyQwertyM = 0x4d,     
williamr@2
   396
    EPtiKeyQwertyN = 0x4e,     
williamr@2
   397
    EPtiKeyQwertyO = 0x4f,      
williamr@2
   398
    EPtiKeyQwertyP = 0x50,     
williamr@2
   399
    EPtiKeyQwertyQ = 0x51,      
williamr@2
   400
    EPtiKeyQwertyR = 0x52,     
williamr@2
   401
    EPtiKeyQwertyS = 0x53,     
williamr@2
   402
    EPtiKeyQwertyT = 0x54,      
williamr@2
   403
    EPtiKeyQwertyU = 0x55,     
williamr@2
   404
    EPtiKeyQwertyV = 0x56,     
williamr@2
   405
    EPtiKeyQwertyW = 0x57,     
williamr@2
   406
    EPtiKeyQwertyX = 0x58,       
williamr@2
   407
    EPtiKeyQwertyY = 0x59,     
williamr@2
   408
    EPtiKeyQwertyZ = 0x5a      
williamr@2
   409
    
williamr@2
   410
    // ----> Half Qwerty
williamr@2
   411
    , EPtiKeyQwertyChr = EStdKeyLeftFunc 	// key (4, 4) 
williamr@2
   412
    // Half Qwerty <----
williamr@2
   413
    };
williamr@2
   414
williamr@2
   415
williamr@2
   416
williamr@2
   417
/**
williamr@2
   418
* Enumerations for PtiCore capabilities. These can be queries through
williamr@2
   419
* MPtiCoreInfo::CapsBits(). 
williamr@2
   420
* Here are descriptions:
williamr@2
   421
*
williamr@2
   422
* EWordCompletion
williamr@2
   423
*      The core object supports word completion -feature.
williamr@2
   424
*
williamr@2
   425
* EReordering
williamr@2
   426
*      The core object supports user dictionary reordering. This feature means that
williamr@2
   427
*      most commonly used words are moved up in prediction candidate
williamr@2
   428
*      list.
williamr@2
   429
*
williamr@2
   430
* ENextWordPrediction
williamr@2
   431
*      The core supports next word prediction feature. When this feature is
williamr@2
   432
*      enabled, prediction engine tries to guess next word based on previous word(s).
williamr@2
   433
*
williamr@2
   434
* ESupportUserDictionaries
williamr@2
   435
*      The core supports supports user dictionaries. 
williamr@2
   436
*
williamr@2
   437
* ESupportSCTToneMarks
williamr@2
   438
*        
williamr@2
   439
* ESupportCangjieInput 
williamr@2
   440
*      The core object supports Chinese CangJie input.
williamr@2
   441
*
williamr@2
   442
* ESupportDualLanguage
williamr@2
   443
*      The core object supports dual language preditcion.
williamr@2
   444
* 
williamr@2
   445
* ESupportAutoSubstitution
williamr@2
   446
*      The core object supports auto-substitution feature. This feature
williamr@2
   447
*      automatically expands predefined string to longer string.
williamr@2
   448
*      ie. "l8r" -> "later"
williamr@2
   449
*/
williamr@2
   450
enum TPtiEngineCapsBits
williamr@2
   451
    {
williamr@2
   452
    EWordCompletion          = 0x01,
williamr@2
   453
    EReordering              = 0x02,
williamr@2
   454
    ENextWordPrediction      = 0x04,
williamr@2
   455
    ESupportUserDictionaries = 0x08,
williamr@2
   456
    ESupportSCTToneMarks     = 0x10,
williamr@2
   457
    ESupportCangjieInput     = 0x20,
williamr@2
   458
    EPreferedSpelling        = 0x40,
williamr@2
   459
    ESupportDualLanguage     = 0x80,
williamr@2
   460
    ESupportAutoSubstitution = 0x100
williamr@2
   461
    };
williamr@2
   462
williamr@2
   463
williamr@2
   464
/**
williamr@2
   465
* Text case defintions.
williamr@2
   466
*/
williamr@2
   467
enum TPtiTextCase
williamr@2
   468
    {
williamr@2
   469
    EPtiCaseLower = 0,    // Normal lower case input
williamr@2
   470
    EPtiCaseUpper,        // Normal upper case input.
williamr@2
   471
    EPtiCaseChrLower,     // Qwerty chr-key lower case input.
williamr@2
   472
    EPtiCaseChrUpper,     // Qwerty chr-key upper case input.
williamr@2
   473
    EPtiCaseFnLower,      // Qwerty fn-key lower case input.    
williamr@2
   474
    EPtiCaseFnUpper,       // Qwerty fn-key upper case input.
williamr@2
   475
    EPtiCaseMax
williamr@2
   476
    };
williamr@2
   477
williamr@2
   478
williamr@2
   479
enum TPtiCharConversion
williamr@2
   480
    {
williamr@2
   481
    EPtiSimplifiedToComplex = 0x01,  // Chinese simplified to Chinese complex
williamr@2
   482
    EPtiUcs2ToUtf8 = 0x02,           // Unicode to utf8
williamr@2
   483
    EPtiUcs2ToBig5 = 0x04,           // Unicode to big5
williamr@2
   484
    EPtiUcs2ToGB = 0x08,             // Unicode to Guo-Biao 
williamr@2
   485
    EPtiUtf8ToUcs2 = 0x10,           // Utf8 to Unicode
williamr@2
   486
    EPtiKo2ToWc = 0x20,              // KSC5601 to Hangul Syllable
williamr@2
   487
    EPtiWcToKo2 = 0x30,              // Hangul Syllable to KSC5601
williamr@2
   488
    EPtiBig5ToUcs2 = 0x40,           // Big5 to Unicode
williamr@2
   489
    EPtiComplexToSimplified = 0x80   // Chinese complex to Chinese simplified
williamr@2
   490
    };
williamr@2
   491
williamr@2
   492
/**
williamr@2
   493
* Enumerates supported spelling types for CPtiEngine::GetSpelling method.
williamr@2
   494
*/
williamr@2
   495
enum TPtiSpelling   
williamr@2
   496
    {
williamr@2
   497
    EPtiStrokes  = 0x01,
williamr@2
   498
    EPtiPinyin   = 0x02,
williamr@2
   499
    EPtiBopomofo = 0x04,
williamr@2
   500
    EPtiZhuyin   = 0x08,
williamr@2
   501
    EPtiCangJie  = 0x10,
williamr@2
   502
    EPtiEasyCangjie = 0x20,
williamr@2
   503
    EPtiAdvCangjie = 0x40
williamr@2
   504
    };
williamr@2
   505
williamr@2
   506
/**
williamr@2
   507
* Enumerates different Chinese variants.
williamr@2
   508
*/
williamr@2
   509
enum TPtiChineseVariant
williamr@2
   510
    {
williamr@2
   511
    EPtiChineseVariantPrc = 0,
williamr@2
   512
    EPtiChineseVariantHk, 
williamr@2
   513
    EPtiChineseVariantTw 
williamr@2
   514
    };
williamr@2
   515
williamr@2
   516
/**
williamr@2
   517
* Command definitions for CPtiEngine::HandleCommandL api methods. Many of these
williamr@2
   518
* are for internal communication between PtiEngine framework and a specific
williamr@2
   519
* core object and there for not documented.
williamr@2
   520
*/
williamr@2
   521
enum TPtiEngineCommand
williamr@2
   522
    {
williamr@2
   523
    EPtiCommandNone,
williamr@2
   524
    EPtiCommandUserActionLeft,
williamr@2
   525
    EPtiCommandUserActionRight,
williamr@2
   526
    EPtiCommandUserActionConvert,
williamr@2
   527
    EPtiCommandUserActionPrevious,
williamr@2
   528
    EPtiCommandUserActionLengthen,
williamr@2
   529
    EPtiCommandUserActionShorten,
williamr@2
   530
    EPtiCommandUserActionCancel,
williamr@2
   531
    EPtiCommandUserActionComplete,
williamr@2
   532
    EPtiCommandUserActionAllComplete,
williamr@2
   533
    EPtiCommandUserActionGetCurrentIndexOfCandidates,
williamr@2
   534
    EPtiCommandUserActionCompleteCandidate,
williamr@2
   535
    EPtiCommandUserActionCompleteFull0,
williamr@2
   536
    EPtiCommandUserActionCompleteFull1,
williamr@2
   537
    EPtiCommandUserActionCompleteFull2,
williamr@2
   538
    EPtiCommandUserActionCompleteFull3,
williamr@2
   539
    EPtiCommandUserActionCompleteFull4,
williamr@2
   540
    EPtiCommandUserActionCompleteFull5,
williamr@2
   541
    EPtiCommandUserActionCompleteFull6,
williamr@2
   542
    EPtiCommandUserActionCompleteFull7,
williamr@2
   543
    EPtiCommandUserActionCompleteFull8,
williamr@2
   544
    EPtiCommandUserActionCompleteFull9,
williamr@2
   545
    EPtiCommandUserActionCompleteHalf0,
williamr@2
   546
    EPtiCommandUserActionCompleteHalf1,
williamr@2
   547
    EPtiCommandUserActionCompleteHalf2,
williamr@2
   548
    EPtiCommandUserActionCompleteHalf3,
williamr@2
   549
    EPtiCommandUserActionCompleteHalf4,
williamr@2
   550
    EPtiCommandUserActionCompleteHalf5,
williamr@2
   551
    EPtiCommandUserActionCompleteHalf6,
williamr@2
   552
    EPtiCommandUserActionCompleteHalf7,
williamr@2
   553
    EPtiCommandUserActionCompleteHalf8,
williamr@2
   554
    EPtiCommandUserActionCompleteHalf9,
williamr@2
   555
    EPtiCommandEnableToneMarks,
williamr@2
   556
    EPtiCommandDisableToneMarks,
williamr@2
   557
    EPtiCommandResetToneMark,
williamr@2
   558
    EPtiCommandIncrementToneMark,
williamr@2
   559
    EPtiCommandIncrementToneMarkOverrideInvalid,
williamr@2
   560
    EPtiCommandReloadLearningInfo,
williamr@2
   561
    EPtiCommandUserDictionaryDelaySaving,
williamr@2
   562
    EPtiCommandUserDictionarySaveNow,
williamr@2
   563
    EPtiCommandUserActionSetCurrentIndexOfCandidates,  
williamr@2
   564
    EPtiCommandUseLatinDefaultKeyMap,       
williamr@2
   565
    EPtiCommandUseLatinCaseUpperOnlyKeyMap, 
williamr@2
   566
    EPtiCommandUseLatinCaseLowerOnlyKeyMap,
williamr@2
   567
	  EPtiCommandResetLearningInfo,
williamr@2
   568
	  EPtiCommandPollQwertyDeadKeyRootFlag,       // Indicates that dead key root char was added to buffer.
williamr@2
   569
	  EPtiCommandGetAndClearDeadKeyRootChar,
williamr@2
   570
	  EPtiCommandDeadKeyWaiting,
williamr@2
   571
	  EPtiCommandQueryAndClearGetAllFlag,
williamr@2
   572
	  EPtiCommandGetAndClearVowelSequence,			 
williamr@2
   573
    EPtiCommandSetMultitapTimer,                // Set multitap timer for japanese varint only
williamr@2
   574
    EPtiCommandVowelSeqFlag,
williamr@2
   575
    EPtiCommandClearVowelSeq,
williamr@2
   576
    EPtiCommandSetJapaneseQwertyFlags,          // Set Japanese Qwerty flags for japanese varint only
williamr@2
   577
    EPtiCommandGetAndClearLastVietnameseChar,
williamr@2
   578
    EPtiCommandSetVietnameseLastChar,
williamr@2
   579
    EPtiCommandQueryReplacePrevious,  
williamr@2
   580
    EPtiCommandSetLastKeyForVietnamese,
williamr@2
   581
    EPtiCommandResetVietnameseVowelSeqAndToneMark,
williamr@2
   582
    EPtiCommandGetVietnameseLastKey,
williamr@2
   583
    EPtiCommandDoubleWideEntry,
williamr@2
   584
    EPtiCommandSetClearFunction,                // Set the behavior of clear key for japanese varint only
williamr@2
   585
    EPtiCommandUserActionRetroActiveCandidateHalf,
williamr@2
   586
    EPtiCommandUserActionRetroActiveCandidateFull,
williamr@2
   587
    EPtiCommandUserActionRetroActiveClear,
williamr@2
   588
    EPtiCommandUserActionRetroActiveCommit,
williamr@2
   589
    EPtiCommandAppendCharacter,          // Append a character for Japanese varint only
williamr@2
   590
    EPtiCommandBackSpaceByForce,          // BackSpace by force for Japanese varint only
williamr@2
   591
    EPtiCommandGetPhoneticText,
williamr@2
   592
    EPtiCommandClearPhoneticBuffer,
williamr@2
   593
    EPtiCommandBreakSyllable,
williamr@2
   594
    EPtiCommandAllowPictographCandidate,    // Allow the candidates with pictograph cahracter for Japanese variant only
williamr@2
   595
    EPtiCommandLoopback,  // Loop back input character (Loop back: c->b->a)
williamr@2
   596
    EPtiCommandSetAutoSubstitution,
williamr@2
   597
    EPtiCommandAddAutoSubstEntry,           // TPtiAutoSubstBinding passed in aParams.
williamr@2
   598
    EPtiCommandDeleteAutoSubstEntry,        // TPtiAutoSubstBinding passed in aParams.
williamr@2
   599
    EPtiCommandNumberOfAutoSubstEntries,
williamr@2
   600
    EPtiCommandGetAutoSubstEntry,           // TPtiAutoSubstBinding passed in aParams.
williamr@2
   601
    EPtiCommandFindAutoSubstEntry,          // TPtiAutoSubstBinding* passed in aParams.   
williamr@2
   602
    EPtiCommandUncommitWord,
williamr@2
   603
    EPtiCommandEnableAutoCompletion,
williamr@2
   604
    EPtiCommandDisableAutoCompletion,
williamr@2
   605
    EPtiCommandSetCorrectionLevel,          // TErrorCorrectionLevel* passed in aParams.
williamr@2
   606
    EPtiCommandGetAutoCompletionTailLength, // TInt* passed in aParams for output.
williamr@2
   607
    EPtiCommandLockCurrentCandidate,
williamr@2
   608
    EPtiCommandSetProactiveCorrection,      // TBool passed in aParams
williamr@2
   609
    EPtiCommandIsExactKnownWord,
williamr@2
   610
    EPtiCommandSetAutoCompletion,
williamr@2
   611
	EPtiCommandSetNumberCandidateStatus,    // 
williamr@2
   612
    EPtiCommandSetAutoCompletionMaxLength,  // Param is integer. Sets maximum lenght of ato completed word. Zero == no limit.
williamr@2
   613
    EPtiCommandMarkAutoCapitalized,          // No parameters.
williamr@2
   614
    EPtiCommandUserActionGetIndexOfSecondaryCandidate, // index of secondary candidate, TInt* passed in param
williamr@2
   615
    EPtiCommandAddPhrase,                   // Add new phrase for next word prediction. const TDesC* passed in param. 
williamr@2
   616
    EPtiCommandSetSecondaryInputLanguage,
williamr@2
   617
    EPtiCommandSetFlagToUpdateCandidates,
williamr@2
   618
    EPtiCommandSetCursorCrossedMaxLength,   // sets when cursor crosses max words length in editor
williamr@2
   619
    EPtiCommandResetCursorCrossedMaxLength,
williamr@2
   620
    EPtiCommandUserActionSetIndexOfActiveCandidate,
williamr@2
   621
    EPtiCommandAddWordToUDBWithoutPunctMark   
williamr@2
   622
    };
williamr@2
   623
williamr@2
   624
/**
williamr@2
   625
* A convinience class for auto substitution related EPtiCommands. Needed
williamr@2
   626
* only in core object and framework code.
williamr@2
   627
*/ 
williamr@2
   628
class TPtiAutoSubstBinding
williamr@2
   629
    {
williamr@2
   630
    public:    
williamr@2
   631
        TInt iIndex;
williamr@2
   632
        TBuf<KMaxAutoSubstStringLength> iShortcut;
williamr@2
   633
        TBuf<KMaxAutoSubstStringLength> iSubstitution;    
williamr@2
   634
    };
williamr@2
   635
williamr@2
   636
williamr@2
   637
/**
williamr@2
   638
* A structure for binding language name and language code.
williamr@2
   639
* only in core object and framework code.
williamr@2
   640
*/ 
williamr@2
   641
class TPtiLangName
williamr@2
   642
    {
williamr@2
   643
    public:
williamr@2
   644
        TInt iLanguageCode;
williamr@2
   645
        TBuf<KMaxLanguageNameLength> iName;
williamr@2
   646
    };
williamr@2
   647
williamr@2
   648
williamr@2
   649
/**
williamr@2
   650
* This is language code for 'numeric' language.
williamr@2
   651
* It is langugae object which is always available and
williamr@2
   652
* has only numeric input mode.
williamr@2
   653
*/
williamr@2
   654
#define ELangNumeric 0x5000
williamr@2
   655
williamr@2
   656
/**
williamr@2
   657
* An interface class for accessing core info attributes.
williamr@2
   658
*/
williamr@2
   659
class MPtiCoreInfo 
williamr@2
   660
    {
williamr@2
   661
    public: 
williamr@2
   662
    	/**	
williamr@2
   663
    	* Returns a boolean value indicating whether the word completion
williamr@2
   664
    	* feature is supported by the core object in question
williamr@2
   665
    	* 
williamr@2
   666
    	* @since S60 V2.6
williamr@2
   667
    	* @return ETrue if core object supports word completion feature.
williamr@2
   668
    	*         EFalse otherwise.
williamr@2
   669
    	*/
williamr@2
   670
        virtual TBool WordCompletion() const = 0;
williamr@2
   671
        
williamr@2
   672
        /**
williamr@2
   673
        * Returns a boolean value indicating whether the user dictionary 
williamr@2
   674
        * re-ordering feature is supported by the core object in question.
williamr@2
   675
        *
williamr@2
   676
        * @since S60 V2.6
williamr@2
   677
        * @return ETrue if core object supports re-ordering feature.
williamr@2
   678
        *         EFalse otherwise.
williamr@2
   679
        */
williamr@2
   680
        virtual TBool Reordering() const = 0;
williamr@2
   681
        
williamr@2
   682
        /**
williamr@2
   683
        * Returns maximum length of single word this core object is able to produce.
williamr@2
   684
        * 
williamr@2
   685
        * @since S60 V2.6
williamr@2
   686
        * @return The maximum word length.
williamr@2
   687
        */
williamr@2
   688
        virtual TInt MaximumWordLength() const = 0;
williamr@2
   689
        
williamr@2
   690
        /**
williamr@2
   691
        * Returns the maximum number of prediction candidates the core object
williamr@2
   692
        * is able to produce for any input sequence. Doesn't apply for
williamr@2
   693
        * Chinese and Japanese modes.
williamr@2
   694
        *
williamr@2
   695
        * @since S60 V2.6
williamr@2
   696
        * @return The maximum number of candidates.
williamr@2
   697
        */
williamr@2
   698
        virtual TInt MaximumNumberOfCandidates() const = 0;
williamr@2
   699
        
williamr@2
   700
        /**
williamr@2
   701
        * Returns a boolean value indicating whether the next word prediction feature
williamr@2
   702
        * supported by the core object in question.
williamr@2
   703
        *
williamr@2
   704
        * @since S60 V2.6
williamr@2
   705
        * @return ETrue if next wrod prediction is supported.
williamr@2
   706
        *         EFalse otherwise.
williamr@2
   707
        */
williamr@2
   708
        virtual TBool NextWordPrediction() const = 0;
williamr@2
   709
        
williamr@2
   710
        /**
williamr@2
   711
        * Returns core object vendor specific id string.
williamr@2
   712
        *
williamr@2
   713
        * @since S60 V2.6
williamr@2
   714
        * @return Vendor specific id string.  
williamr@2
   715
        */
williamr@2
   716
        virtual TPtrC VendorString() const = 0;
williamr@2
   717
        
williamr@2
   718
        /**
williamr@2
   719
        * Returns a bit vector containing flags for various core object features.
williamr@2
   720
        * See TPtiEngineCapsBits for list of specified bits. 
williamr@2
   721
        *
williamr@2
   722
        * @since S60 V2.6
williamr@2
   723
        * @return A bit vector containing flags for various core object features.
williamr@2
   724
        */
williamr@2
   725
        virtual TUint32 CapsBits() const = 0;
williamr@2
   726
        
williamr@2
   727
        /**
williamr@2
   728
        * Returns uid value for core object.
williamr@2
   729
        * 
williamr@2
   730
        * @since S60 V2.6
williamr@2
   731
        * @return Core object uid as an integer value.
williamr@2
   732
        */
williamr@2
   733
        virtual TInt32 Uid() const = 0;
williamr@2
   734
        
williamr@2
   735
        /**
williamr@2
   736
        * Returns a bitvector containing flags for available character conversion
williamr@2
   737
        * methods. See TPtiCharConversion for list of specified bits.
williamr@2
   738
        *
williamr@2
   739
        * @since S60 V2.6
williamr@2
   740
        * @return A bit vector containing flags for available character conversions.
williamr@2
   741
        */
williamr@2
   742
        virtual TUint32 CharConversions() const = 0;
williamr@2
   743
        
williamr@2
   744
 		/**
williamr@2
   745
        * Returns a bitvector containing flags for available spelling conversion
williamr@2
   746
        * methods. See TPtiSpelling for list of specified bits.
williamr@2
   747
        *
williamr@2
   748
        * @since S60 V2.6
williamr@2
   749
        * @return A bit vector containing flags for available spelling conversions.
williamr@2
   750
        */        
williamr@2
   751
        virtual TUint32 Spellings() const = 0;
williamr@2
   752
    };
williamr@2
   753
williamr@2
   754
williamr@2
   755
class TPtiCoreInfo : public MPtiCoreInfo
williamr@2
   756
    {
williamr@2
   757
    public:
williamr@2
   758
        inline TBool WordCompletion() const;
williamr@2
   759
        inline TBool Reordering() const;
williamr@2
   760
        inline TInt MaximumWordLength() const;
williamr@2
   761
        inline TInt MaximumNumberOfCandidates() const;
williamr@2
   762
        inline TBool NextWordPrediction() const;
williamr@2
   763
        inline TPtrC VendorString() const;
williamr@2
   764
        inline TInt32 Uid() const;
williamr@2
   765
        inline TUint32 CharConversions() const;
williamr@2
   766
        inline TUint32 Spellings() const;
williamr@2
   767
williamr@2
   768
        inline TUint32 CapsBits() const;
williamr@2
   769
        inline void SetCapsBits(TUint32 aBits);
williamr@2
   770
        inline void SetVendorString(const TDesC& aStr);
williamr@2
   771
        inline void SetMaxWordLength(TInt aMaxLen);
williamr@2
   772
        inline void SetUid(TInt32 aUid);
williamr@2
   773
        inline void SetSpellings(TUint32 aSpellings);
williamr@2
   774
        inline void SetMaxNumberOfCandidates(TInt aMax);
williamr@2
   775
        inline void SetCharConversions(TUint32 aConvs);
williamr@2
   776
williamr@2
   777
	private:
williamr@2
   778
		TUint32 iCapsBits;
williamr@2
   779
		TPtrC iVendorIdStr;
williamr@2
   780
		TInt iMaxWordLength;
williamr@2
   781
		TInt iMaxNumberOfCandidates;
williamr@2
   782
		TInt32 iUid;
williamr@2
   783
		TUint32 iCharConversions;
williamr@2
   784
		TUint32 iSpellings;
williamr@2
   785
	};
williamr@2
   786
williamr@2
   787
williamr@2
   788
#define KPtiEngineChineseSeparator 0x0027
williamr@2
   789
williamr@2
   790
// Tone marks for pinyin input
williamr@2
   791
enum
williamr@2
   792
    {
williamr@2
   793
    KPtiPinyinTone0 = 0x02C9,
williamr@2
   794
    KPtiPinyinTone1 = 0x02CA,
williamr@2
   795
    KPtiPinyinTone2 = 0x02C7,
williamr@2
   796
    KPtiPinyinTone3 = 0x02CB,
williamr@2
   797
    KPtiPinyinTone4 = 0x02D9
williamr@2
   798
    };
williamr@2
   799
williamr@2
   800
// Tone marks for zhuyin input
williamr@2
   801
enum
williamr@2
   802
    {
williamr@2
   803
    KPtiZhuyinTone0 = 0x0020,
williamr@2
   804
    KPtiZhuyinTone1 = 0x02CA,
williamr@2
   805
    KPtiZhuyinTone2 = 0x02C7,
williamr@2
   806
    KPtiZhuyinTone3 = 0x02CB,
williamr@2
   807
    KPtiZhuyinTone4 = 0x02D9
williamr@2
   808
    };
williamr@2
   809
williamr@2
   810
williamr@2
   811
class TPtiNumericKeyBinding
williamr@2
   812
	{
williamr@2
   813
	public:
williamr@2
   814
		TUint16 iChar;	
williamr@2
   815
		TPtiKey iKey;
williamr@2
   816
		TPtiTextCase iCase;		
williamr@2
   817
	};
williamr@2
   818
williamr@2
   819
williamr@2
   820
// type definition for HWR
williamr@2
   821
typedef struct TRecognitionRangeTag
williamr@2
   822
    {
williamr@2
   823
    TLanguage iLanguage;
williamr@2
   824
    TUint     iSubRange;
williamr@2
   825
    } TRecognitionRange;
williamr@2
   826
williamr@2
   827
williamr@2
   828
enum TRecognitionSubRanges
williamr@2
   829
    {
williamr@2
   830
    EPtiRangePRCChinese,
williamr@2
   831
    EPtiRangeHKChinese,
williamr@2
   832
    EPtiRangeTWChinese,
williamr@2
   833
    EPtiRangeLatin,
williamr@2
   834
    EPtiRangeSymbol,
williamr@2
   835
    EPtiRangeNumber,
williamr@2
   836
    EPtiRangeNative, // native text of a language, EPtiRangeLatin also belong to it
williamr@2
   837
    EPtiRangeHiraganaKanji,
williamr@2
   838
    EPtiRangeKatakana,
williamr@2
   839
    EPtiRangeFullWidthKatakana,
williamr@2
   840
    EPtiRangeFullWidthEnglish,
williamr@2
   841
    EPtiRangeFullWidthNumeric,
williamr@2
   842
    EPtiRangeHiraganaOnly,
williamr@2
   843
    EPtiRangeNativeNumber,
williamr@2
   844
    EPtiRangeNone
williamr@2
   845
    };
williamr@2
   846
    
williamr@2
   847
    
williamr@2
   848
enum TLatinLetterOrder
williamr@2
   849
    {
williamr@2
   850
    EUpperFirst,
williamr@2
   851
    ELowerFirst	
williamr@2
   852
    };
williamr@2
   853
       
williamr@2
   854
/*
williamr@2
   855
* List of supported keyboard types. Each of these keyboard types
williamr@2
   856
* may have own data block in keyboard data file. 
williamr@2
   857
*/        
williamr@2
   858
enum TPtiKeyboardType
williamr@2
   859
    {
williamr@2
   860
    EPtiKeyboardNone,
williamr@2
   861
     
williamr@2
   862
    /**
williamr@2
   863
    * Conventional 12 phone keypad
williamr@2
   864
    */
williamr@2
   865
    EPtiKeyboard12Key,     
williamr@2
   866
    
williamr@2
   867
    /**
williamr@2
   868
    * 4x12 Qwerty keyboard.
williamr@2
   869
    */
williamr@2
   870
    EPtiKeyboardQwerty4x12,
williamr@2
   871
    
williamr@2
   872
    /**
williamr@2
   873
    * 4x10 Qwerty keyboard.
williamr@2
   874
    */
williamr@2
   875
    EPtiKeyboardQwerty4x10, 
williamr@2
   876
williamr@2
   877
    /**
williamr@2
   878
    * 3x11 Qwerty keyboard.
williamr@2
   879
    */
williamr@2
   880
    EPtiKeyboardQwerty3x11, 
williamr@2
   881
    
williamr@2
   882
    /**
williamr@2
   883
    * Half qwerty.
williamr@2
   884
    */    
williamr@2
   885
    EPtiKeyboardHalfQwerty,
williamr@2
   886
    
williamr@2
   887
    /** 
williamr@2
   888
    * Custom qwerty keyboard.
williamr@2
   889
    * Bound to [KEYBOARD BLOCK QWERTY CUSTOM] in keymapping
williamr@2
   890
    * definition files. 
williamr@2
   891
    */           
williamr@2
   892
    EPtiKeyboardCustomQwerty,
williamr@2
   893
    
williamr@2
   894
    EPtiKeyboardMaxLayout
williamr@2
   895
    };    
williamr@2
   896
williamr@2
   897
#include "PtiDefs.inl"
williamr@2
   898
williamr@2
   899
#endif // _PTI_DEFS_H
williamr@2
   900
williamr@2
   901
// End od file