2 * Copyright (c) 2003-2006 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
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
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
14 * Description: Global PtiEngine definitions
36 #ifdef RD_HINDI_PHONETIC_INPUT
37 /* Indic Phonetic input */
40 * Defines the state of the syllable. This is used by FEP for either committing
41 * the inline text or updating the inline text.
46 EIndicSyllableStateFirst,
47 EIndicSyllableStateInsideSyllable,
48 EIndicSyllableStateSyllableBroken,
49 EIndicSyllableStateLast
54 * This is a structure that abstracts the phonetic argument and the response
55 * from the Indic phonetic core in a structure.
62 TSyllableState iState;
66 const TInt KMaxLanguageNameLength = 50;
67 const TInt KMaxAutoSubstStringLength = 32;
69 const TInt KErrPtiEngineBase = (-1000); //based on the value of leave in PtiEngine
74 KErrNoActiveLanguage = KErrPtiEngineBase-1,
75 KErrLanguageNotFound = KErrPtiEngineBase-2,
76 KErrNoSuitableCore = KErrPtiEngineBase-3,
77 KErrNotAllowed = KErrPtiEngineBase-4,
78 KErrTooLongWord = KErrPtiEngineBase-5,
79 KErrInvalidWord = KErrPtiEngineBase-6,
80 KErrTooLongReading = KErrPtiEngineBase-7,
81 KErrInvalidReading = KErrPtiEngineBase-8,
82 KErrUserDic = KErrPtiEngineBase-9,
83 KErrInternalCoreError = KErrPtiEngineBase-10,
84 KErrLengthMismatch = KErrPtiEngineBase-11
89 * Enumerations for all the possible input modes supported by PtiEngine.
90 * The modes actually available in the device depend on core object, resource
91 * and keyboard configuration.
92 * Here are short descriptions:
94 * EPtiEngineMultitapping
95 * Traditional text input method for latin-like languages, where
96 * a list of characters is associated to each keypad keys
97 * and user cycles through associated characters by consecutive key presses.
99 * EPtiEnginePredictive
100 * Predictive text input mode, where user presses only one key press per
101 * character and the prediction engine provides a list of candidate words
102 * associated top that key sequence.
104 * EPtiEngineWordCompletion
105 * This is same as EPtiEnginePredictive, except that prediction engine
106 * will include also complete words containing more characters than
107 * the number of key presses in current key sequence.
110 * This is numeric input mode. All the languages suppor it, since it uses
111 * static keymappings built directly into PtiEngine. It works in same way
112 * as EPtiEngineMultitapping, except that keymapping data contains
113 * only number mode characters.
116 * Standard qwerty-keyboard input mode for latin-like languages.
119 * Chinese PinYin input mode for ITU-T keypad.
122 * Chinese Strokes input mode for ITU-T keypad.
125 * Chinese ZhuYin input mode for ITU-T keypad.
127 * EPtiEngineHirakanaKanji
128 * Japanese Hiragana/Kanji input mode.
130 * EPtiEngineHirakanaKanjiPredictive
131 * Predictive Japanese Hiragana/Kanji input mode.
134 * Japanese Katakana input mode.
136 * EPtiEngineFullWitdthKatakana
137 * Japanese full width Katakana input mode.
139 * EPtiEngineFullWitdthKatakana
140 * Japanese full width numeric input mode.
142 * EPtiEngineFullWitdthAlphabet
143 * Japanese full width alphabet input mode.
146 * Japanese Hiragana input mode.
148 * EPtiEnginePinyinByPhrase
149 * Chinese Pinyin phrase input. This is same as EPtiEnginePinyin, execpt that
150 * input string may contain pinyin words for several chinese characters.
152 * EPtiEngineZhuyinByPhrase
153 * Chinese Zinyin phrase input. This is same as EPtiEngineZhuyin, execpt that
154 * input string may contain zhuyin sequences for several chinese characters.
156 * EPtiEngineZhuyinQwerty
157 * Chinese Zhuyin input for qwerty keyboard.
159 * EPtiEngineZhuyinPhraseQwerty
160 * Chinese Zinyin phrase input for qwerty keyboard. This is same as EPtiEngineZhuyinQwerty,
161 * execpt that input string may contain zhuyin sequences for several chinese characters.
163 * EPtiEnginePinyinQwerty
164 * Chinese Pinyin input for qwerty keyboard.
166 * PtiEnginePinyinPhraseQwerty
167 * Same as EPtiEnginePinyinByPhrase but for qwerty keyboard
169 * EPtiEngineStrokeQwerty
170 * Same as EPtiEngineStroke but for qwerty keyboard
172 * EPtiEngineNormalCangjieQwerty
173 * Normal Chinese CangJie input for qwerty keyboard
174 * (CangJie is available only for qwerty).
176 * EPtiEngineEasyCangjieQwerty
177 * Easy Chinese CangJie input for qwerty keyboard
178 * (CangJie is available only for qwerty).
180 * EPtiEngineAdvCangjieQwerty
181 * Advanced Chinese CangJie input for qwerty keyboard
182 * (CangJie is available only for qwerty).
184 * EPtiEngineHiraganaKanjiQwerty
185 * Japanese Hiragana/Kanji input for qwerty keyboard.
187 * EPtiEngineHiraganaKanjiPredictiveQwerty
188 * Japanese predictive Hiragana/Kanji input for qwerty keyboard
190 * EPtiEngineKatakanaQwerty
191 * Japanese Half-width Katakana input for qwerty keyboard.
193 * EPtiEngineFullWidthKatakanaQwerty
194 * Japanese Full-width Katakana input for qwerty keyboard.
196 * EPtiEngineFullWidthNumericQwerty
197 * Japanese Full-width Alphabet input for qwerty keyboard.
199 * EPtiEngineFullWidthAlphabetQwerty
200 * Japanese Full-width Alphabet input for qwerty keyboard.
202 * EPtiEngineHiraganaQwerty
203 * Japanese Hiragana input for qwerty keyboard.
205 * EPtiEngineStrokeByPhrase, // Stroke phrase input.
206 * Chinese Stroke input for ITU-T keypad. Phrasal version.
208 * EPtiEngineStrokePhraseQwerty
209 * Chinese Stroke input for qwerty keyboard. Phrasal version.
211 * EPtiEngineQwertyPredictive, // "Sloppy type" input for qwerty keyboard.
212 * Intelligent qwerty input. Used for word completion and spell
213 * correction features for qwerty keyboard.
215 * EPtiEngineHalfQwerty
216 * Basic multitaping style text input for half-qwerty keyboard. The functionality
217 * of half-qwerty keyboard is same as conventional itu-t phone keypad, except that
218 * each key is associated with two basic characters (instead of three or four
219 * as in itu-t keypad). Character mapping is also organized to follow qwerty
220 * layout (instead of alphabetical order as in itu-t keypad).
222 * EPtiEngineHalfQwertyPredictive,
223 * Predictive text input for half-qwerty keyboard. The functionality
224 * of half-qwerty keyboard is same as conventional itu-t phone keypad, except that
225 * each key is associated with two basic characters(instead of three or four
226 * as in itu-t keypad). . Character mapping is also organized to follow qwerty
227 * layout (instead of alphabetical order as in itu-t keypad). This input mode
228 * is essentially same as EPtiEngineWordCompletion but uses half-qwerty keyboard.
230 * EPtiEngineInputModeIndicPhoneticMultitap
231 * Hindi phonetic input for itu-t keypad.
233 * EPtiEngineInputModeIndicPhoneticQwerty
234 * Hindi phonetic input for qwerty keyboard.
236 * EPtiEngineInputModeZhuyinMiniQwertyFind
237 * Zhuyin multitap input method for mini qwerty symbol find.
240 enum TPtiEngineInputMode
242 EPtiEngineInputModeNone = 0,
243 EPtiEngineMultitapping, // Basic multitapping input for latin languages.
244 EPtiEnginePredictive, // Predictive input for latin languages.
245 EPtiEngineWordCompletion, // Predictive input with word completion for latin languages.
246 EPtiEngineNumeric, // Latin numeric input mode.
247 EPtiEngineQwerty, // Basic qwerty input mode.
248 EPtiEnginePinyin, // Chinese pinyin mode.
249 EPtiEngineStroke, // Chinese stroke mode.
250 EPtiEngineZhuyin, // Chinese zhuyin mode.
251 EPtiEngineHiraganaKanji, // Hiragana/Kanji mode.
252 EPtiEngineHiraganaKanjiPredictive, // Predictive Hiragana/Kanji mode.
253 EPtiEngineKatakana, // Half-width Katakana mode.
254 EPtiEngineFullWidthKatakana, // Full-width Katakana mode.
255 EPtiEngineFullWidthNumeric, // Full-width Alphabet mode (for Japanese input).
256 EPtiEngineFullWidthAlphabet, // Full-width Alphabet mode (for Japanese input).
257 EPtiEngineHiragana, // Hiragana only mode.
258 EPtiEnginePinyinByPhrase, // Pinyin phrase input.
259 EPtiEngineZhuyinByPhrase, // Zhuyin phrase input.
260 EPtiEngineZhuyinQwerty, // Zhuyin qwerty input.
261 EPtiEngineZhuyinPhraseQwerty, // Zhuyin phrase qwerty input.
262 EPtiEnginePinyinQwerty, // Pinyin qwerty input.
263 EPtiEnginePinyinPhraseQwerty, // Pinyin phrase qwerty input.
264 EPtiEngineStrokeQwerty, // Stroke qwerty input.
265 EPtiEngineNormalCangjieQwerty, // Normal Cangjie qwerty input
266 EPtiEngineEasyCangjieQwerty, // Easy Cangjie qwerty input
267 EPtiEngineAdvCangjieQwerty, // Advanced Cangjie qwerty input
268 EPtiEngineHiraganaKanjiQwerty, // Hiragana/Kanji qwerty input mode.
269 EPtiEngineHiraganaKanjiPredictiveQwerty, // Predictive Hiragana/Kanji qwerty input mode.
270 EPtiEngineKatakanaQwerty, // Half-width Katakana qwerty input mode.
271 EPtiEngineFullWidthKatakanaQwerty, // Full-width Katakana qwerty input mode.
272 EPtiEngineFullWidthNumericQwerty, // Full-width Alphabet qwerty input mode (for Japanese input).
273 EPtiEngineFullWidthAlphabetQwerty, // Full-width Alphabet qwerty input mode (for Japanese input).
274 EPtiEngineHiraganaQwerty, // Hiragana only qwerty input mode.
275 EPtiEnginePinyinVkb, // Chinese pinyin mode.
276 EPtiEngineStrokeVkb, // Chinese stroke mode.
277 EPtiEngineZhuyinVkb, // Chinese zhuyin mode.
278 EPtiEngineStrokeByPhrase, // Stroke phrase input.
279 EPtiEngineStrokePhraseQwerty, // Stroke phrase qwerty input.
280 EPtiEngineHiraganaKanjiVkb, // Hiragana/Kanji mode for VKB.
281 EPtiEngineHiraganaKanjiPredictiveVkb, // Predictive Hiragana/Kanji mode for VKB.
282 EPtiEngineHiraganaKanjiHwr, // Hiragana/Kanji mode for HWR.
283 EPtiEngineHiraganaKanjiPredictiveHwr, // Predictive Hiragana/Kanji mode for HWR.
284 EPtiEngineKatakanaVkb, // Half-width Katakana mode for VKB.
285 EPtiEngineFullWidthKatakanaVkb, // Full-width Katakana mode for VKB.
286 EPtiEngineHiraganaVkb, // Hiragana only qwerty input mode for VKB.
287 EPtiEngineNormalCangjieVkb,
288 EPtiEngineEasyCangjieVkb,
289 EPtiEngineAdvCangjieVkb,
290 EPtiEngineInputModeIndicPhoneticMultitap,
291 EPtiEngineInputModeIndicPhoneticQwerty,
292 EPtiEngineHiraganaKanjiVkbRomaji, // Hiragana/Kanji mode for VKB/FSQ Romaji input.
293 EPtiEngineHiraganaKanjiPredictiveVkbRomaji, // Predictive Hiragana/Kanji mode for VKB/FSQ Romaji input.
294 EPtiEngineQwertyPredictive, // "Sloppy type" input for qwerty keyboard.
295 EPtiEngineHalfQwerty,
296 EPtiEngineHalfQwertyPredictive,
297 EPtiEngineInputModeQwertyPredictive ,
298 EPtiEngineInputModeZhuyinMiniQwertyFind,
299 EPtiEnginePinyinPhraseHalfQwerty,
300 EPtiEngineStrokePhraseHalfQwerty,
301 EPtiEngineZhuyinPhraseHalfQwerty,
302 EPtiEngineMultitappingKorean, // Basic multitapping input for korean language.
303 EPtiEngineMaxInputModes = EPtiEngineMultitappingKorean
308 * Predictive qwerty error correction levels.
310 enum TPtiErrorCorrectionLevel
312 EPtiErrorCorrectionLevelOff = 0,
313 EPtiErrorCorrectionLevelLow = 1,
314 EPtiErrorCorrectionLevelHigh = 2
319 * Key enumerations for conventional (ITU-T) and qwerty keyboards.
320 * Constant names for qwerty keypad keys are named after scan code
321 * values of a device using English language keymappings. The
322 * actual character that will be inserted into editor buffer depends on
323 * keymappings of currently selected input language and may be something else
324 * than what enum name suggests. For example
325 * non-shifted EPtiKeyQwertyHash produces '#'-character if input language is
326 * English, but will produce '+'-character if
327 * input language is Danish, Norwegian, Swedish or Finnish.
328 * The key coordinates on standard 4x12 qwerty keypad are given in
349 EPtiKeyPunct = EPtiKey1,
350 EPtiKeyABC = EPtiKey2,
351 EPtiKeyDEF = EPtiKey3,
352 EPtiKeyGHI = EPtiKey4,
353 EPtiKeyJKL = EPtiKey5,
354 EPtiKeyMNO = EPtiKey6,
355 EPtiKeyPQRS = EPtiKey7,
356 EPtiKeyTUV = EPtiKey8,
357 EPtiKeyWXYZ = EPtiKey9,
360 EPtiKeyQwerty1 = 0x31,
361 EPtiKeyQwerty2 = 0x32,
362 EPtiKeyQwerty3 = 0x33,
363 EPtiKeyQwerty4 = 0x34,
364 EPtiKeyQwerty5 = 0x35,
365 EPtiKeyQwerty6 = 0x36,
366 EPtiKeyQwerty7 = 0x37,
367 EPtiKeyQwerty8 = 0x38,
368 EPtiKeyQwerty9 = 0x39,
369 EPtiKeyQwerty0 = 0x30,
371 EPtiKeyQwertyPlus = 0x2b,
372 EPtiKeyQwertyMinus = EStdKeyMinus,
373 EPtiKeyQwertyComma = EStdKeyComma,
374 EPtiKeyQwertySemicolon = EStdKeySemiColon,
375 EPtiKeyQwertyFullstop = EStdKeyFullStop,
376 EPtiKeyQwertyHash = EStdKeyHash,
377 EPtiKeyQwertySlash = EStdKeyForwardSlash,
378 EPtiKeyQwertyApostrophe = EStdKeySingleQuote,
379 EPtiKeyQwertySpace = EStdKeySpace,
380 EPtiKeyQwertyAtCharacter = EStdKeySquareBracketRight,
381 EPtiKeyQwertyLeftShift = EStdKeyLeftShift, // Needed only for special cases.
383 EPtiKeyQwertyA = 0x41,
384 EPtiKeyQwertyB = 0x42,
385 EPtiKeyQwertyC = 0x43,
386 EPtiKeyQwertyD = 0x44,
387 EPtiKeyQwertyE = 0x45,
388 EPtiKeyQwertyF = 0x46,
389 EPtiKeyQwertyG = 0x47,
390 EPtiKeyQwertyH = 0x48,
391 EPtiKeyQwertyI = 0x49,
392 EPtiKeyQwertyJ = 0x4a,
393 EPtiKeyQwertyK = 0x4b,
394 EPtiKeyQwertyL = 0x4c,
395 EPtiKeyQwertyM = 0x4d,
396 EPtiKeyQwertyN = 0x4e,
397 EPtiKeyQwertyO = 0x4f,
398 EPtiKeyQwertyP = 0x50,
399 EPtiKeyQwertyQ = 0x51,
400 EPtiKeyQwertyR = 0x52,
401 EPtiKeyQwertyS = 0x53,
402 EPtiKeyQwertyT = 0x54,
403 EPtiKeyQwertyU = 0x55,
404 EPtiKeyQwertyV = 0x56,
405 EPtiKeyQwertyW = 0x57,
406 EPtiKeyQwertyX = 0x58,
407 EPtiKeyQwertyY = 0x59,
408 EPtiKeyQwertyZ = 0x5a
411 , EPtiKeyQwertyChr = EStdKeyLeftFunc // key (4, 4)
418 * Enumerations for PtiCore capabilities. These can be queries through
419 * MPtiCoreInfo::CapsBits().
420 * Here are descriptions:
423 * The core object supports word completion -feature.
426 * The core object supports user dictionary reordering. This feature means that
427 * most commonly used words are moved up in prediction candidate
430 * ENextWordPrediction
431 * The core supports next word prediction feature. When this feature is
432 * enabled, prediction engine tries to guess next word based on previous word(s).
434 * ESupportUserDictionaries
435 * The core supports supports user dictionaries.
437 * ESupportSCTToneMarks
439 * ESupportCangjieInput
440 * The core object supports Chinese CangJie input.
442 * ESupportDualLanguage
443 * The core object supports dual language preditcion.
445 * ESupportAutoSubstitution
446 * The core object supports auto-substitution feature. This feature
447 * automatically expands predefined string to longer string.
448 * ie. "l8r" -> "later"
450 enum TPtiEngineCapsBits
452 EWordCompletion = 0x01,
454 ENextWordPrediction = 0x04,
455 ESupportUserDictionaries = 0x08,
456 ESupportSCTToneMarks = 0x10,
457 ESupportCangjieInput = 0x20,
458 EPreferedSpelling = 0x40,
459 ESupportDualLanguage = 0x80,
460 ESupportAutoSubstitution = 0x100
465 * Text case defintions.
469 EPtiCaseLower = 0, // Normal lower case input
470 EPtiCaseUpper, // Normal upper case input.
471 EPtiCaseChrLower, // Qwerty chr-key lower case input.
472 EPtiCaseChrUpper, // Qwerty chr-key upper case input.
473 EPtiCaseFnLower, // Qwerty fn-key lower case input.
474 EPtiCaseFnUpper, // Qwerty fn-key upper case input.
479 enum TPtiCharConversion
481 EPtiSimplifiedToComplex = 0x01, // Chinese simplified to Chinese complex
482 EPtiUcs2ToUtf8 = 0x02, // Unicode to utf8
483 EPtiUcs2ToBig5 = 0x04, // Unicode to big5
484 EPtiUcs2ToGB = 0x08, // Unicode to Guo-Biao
485 EPtiUtf8ToUcs2 = 0x10, // Utf8 to Unicode
486 EPtiKo2ToWc = 0x20, // KSC5601 to Hangul Syllable
487 EPtiWcToKo2 = 0x30, // Hangul Syllable to KSC5601
488 EPtiBig5ToUcs2 = 0x40, // Big5 to Unicode
489 EPtiComplexToSimplified = 0x80 // Chinese complex to Chinese simplified
493 * Enumerates supported spelling types for CPtiEngine::GetSpelling method.
502 EPtiEasyCangjie = 0x20,
503 EPtiAdvCangjie = 0x40
507 * Enumerates different Chinese variants.
509 enum TPtiChineseVariant
511 EPtiChineseVariantPrc = 0,
512 EPtiChineseVariantHk,
517 * Command definitions for CPtiEngine::HandleCommandL api methods. Many of these
518 * are for internal communication between PtiEngine framework and a specific
519 * core object and there for not documented.
521 enum TPtiEngineCommand
524 EPtiCommandUserActionLeft,
525 EPtiCommandUserActionRight,
526 EPtiCommandUserActionConvert,
527 EPtiCommandUserActionPrevious,
528 EPtiCommandUserActionLengthen,
529 EPtiCommandUserActionShorten,
530 EPtiCommandUserActionCancel,
531 EPtiCommandUserActionComplete,
532 EPtiCommandUserActionAllComplete,
533 EPtiCommandUserActionGetCurrentIndexOfCandidates,
534 EPtiCommandUserActionCompleteCandidate,
535 EPtiCommandUserActionCompleteFull0,
536 EPtiCommandUserActionCompleteFull1,
537 EPtiCommandUserActionCompleteFull2,
538 EPtiCommandUserActionCompleteFull3,
539 EPtiCommandUserActionCompleteFull4,
540 EPtiCommandUserActionCompleteFull5,
541 EPtiCommandUserActionCompleteFull6,
542 EPtiCommandUserActionCompleteFull7,
543 EPtiCommandUserActionCompleteFull8,
544 EPtiCommandUserActionCompleteFull9,
545 EPtiCommandUserActionCompleteHalf0,
546 EPtiCommandUserActionCompleteHalf1,
547 EPtiCommandUserActionCompleteHalf2,
548 EPtiCommandUserActionCompleteHalf3,
549 EPtiCommandUserActionCompleteHalf4,
550 EPtiCommandUserActionCompleteHalf5,
551 EPtiCommandUserActionCompleteHalf6,
552 EPtiCommandUserActionCompleteHalf7,
553 EPtiCommandUserActionCompleteHalf8,
554 EPtiCommandUserActionCompleteHalf9,
555 EPtiCommandEnableToneMarks,
556 EPtiCommandDisableToneMarks,
557 EPtiCommandResetToneMark,
558 EPtiCommandIncrementToneMark,
559 EPtiCommandIncrementToneMarkOverrideInvalid,
560 EPtiCommandReloadLearningInfo,
561 EPtiCommandUserDictionaryDelaySaving,
562 EPtiCommandUserDictionarySaveNow,
563 EPtiCommandUserActionSetCurrentIndexOfCandidates,
564 EPtiCommandUseLatinDefaultKeyMap,
565 EPtiCommandUseLatinCaseUpperOnlyKeyMap,
566 EPtiCommandUseLatinCaseLowerOnlyKeyMap,
567 EPtiCommandResetLearningInfo,
568 EPtiCommandPollQwertyDeadKeyRootFlag, // Indicates that dead key root char was added to buffer.
569 EPtiCommandGetAndClearDeadKeyRootChar,
570 EPtiCommandDeadKeyWaiting,
571 EPtiCommandQueryAndClearGetAllFlag,
572 EPtiCommandGetAndClearVowelSequence,
573 EPtiCommandSetMultitapTimer, // Set multitap timer for japanese varint only
574 EPtiCommandVowelSeqFlag,
575 EPtiCommandClearVowelSeq,
576 EPtiCommandSetJapaneseQwertyFlags, // Set Japanese Qwerty flags for japanese varint only
577 EPtiCommandGetAndClearLastVietnameseChar,
578 EPtiCommandSetVietnameseLastChar,
579 EPtiCommandQueryReplacePrevious,
580 EPtiCommandSetLastKeyForVietnamese,
581 EPtiCommandResetVietnameseVowelSeqAndToneMark,
582 EPtiCommandGetVietnameseLastKey,
583 EPtiCommandDoubleWideEntry,
584 EPtiCommandSetClearFunction, // Set the behavior of clear key for japanese varint only
585 EPtiCommandUserActionRetroActiveCandidateHalf,
586 EPtiCommandUserActionRetroActiveCandidateFull,
587 EPtiCommandUserActionRetroActiveClear,
588 EPtiCommandUserActionRetroActiveCommit,
589 EPtiCommandAppendCharacter, // Append a character for Japanese varint only
590 EPtiCommandBackSpaceByForce, // BackSpace by force for Japanese varint only
591 EPtiCommandGetPhoneticText,
592 EPtiCommandClearPhoneticBuffer,
593 EPtiCommandBreakSyllable,
594 EPtiCommandAllowPictographCandidate, // Allow the candidates with pictograph cahracter for Japanese variant only
595 EPtiCommandLoopback, // Loop back input character (Loop back: c->b->a)
596 EPtiCommandSetAutoSubstitution,
597 EPtiCommandAddAutoSubstEntry, // TPtiAutoSubstBinding passed in aParams.
598 EPtiCommandDeleteAutoSubstEntry, // TPtiAutoSubstBinding passed in aParams.
599 EPtiCommandNumberOfAutoSubstEntries,
600 EPtiCommandGetAutoSubstEntry, // TPtiAutoSubstBinding passed in aParams.
601 EPtiCommandFindAutoSubstEntry, // TPtiAutoSubstBinding* passed in aParams.
602 EPtiCommandUncommitWord,
603 EPtiCommandEnableAutoCompletion,
604 EPtiCommandDisableAutoCompletion,
605 EPtiCommandSetCorrectionLevel, // TErrorCorrectionLevel* passed in aParams.
606 EPtiCommandGetAutoCompletionTailLength, // TInt* passed in aParams for output.
607 EPtiCommandLockCurrentCandidate,
608 EPtiCommandSetProactiveCorrection, // TBool passed in aParams
609 EPtiCommandIsExactKnownWord,
610 EPtiCommandSetAutoCompletion,
611 EPtiCommandSetNumberCandidateStatus, //
612 EPtiCommandSetAutoCompletionMaxLength, // Param is integer. Sets maximum lenght of ato completed word. Zero == no limit.
613 EPtiCommandMarkAutoCapitalized, // No parameters.
614 EPtiCommandUserActionGetIndexOfSecondaryCandidate, // index of secondary candidate, TInt* passed in param
615 EPtiCommandAddPhrase, // Add new phrase for next word prediction. const TDesC* passed in param.
616 EPtiCommandSetSecondaryInputLanguage,
617 EPtiCommandSetFlagToUpdateCandidates,
618 EPtiCommandSetCursorCrossedMaxLength, // sets when cursor crosses max words length in editor
619 EPtiCommandResetCursorCrossedMaxLength,
620 EPtiCommandUserActionSetIndexOfActiveCandidate,
621 EPtiCommandAddWordToUDBWithoutPunctMark
625 * A convinience class for auto substitution related EPtiCommands. Needed
626 * only in core object and framework code.
628 class TPtiAutoSubstBinding
632 TBuf<KMaxAutoSubstStringLength> iShortcut;
633 TBuf<KMaxAutoSubstStringLength> iSubstitution;
638 * A structure for binding language name and language code.
639 * only in core object and framework code.
645 TBuf<KMaxLanguageNameLength> iName;
650 * This is language code for 'numeric' language.
651 * It is langugae object which is always available and
652 * has only numeric input mode.
654 #define ELangNumeric 0x5000
657 * An interface class for accessing core info attributes.
663 * Returns a boolean value indicating whether the word completion
664 * feature is supported by the core object in question
667 * @return ETrue if core object supports word completion feature.
670 virtual TBool WordCompletion() const = 0;
673 * Returns a boolean value indicating whether the user dictionary
674 * re-ordering feature is supported by the core object in question.
677 * @return ETrue if core object supports re-ordering feature.
680 virtual TBool Reordering() const = 0;
683 * Returns maximum length of single word this core object is able to produce.
686 * @return The maximum word length.
688 virtual TInt MaximumWordLength() const = 0;
691 * Returns the maximum number of prediction candidates the core object
692 * is able to produce for any input sequence. Doesn't apply for
693 * Chinese and Japanese modes.
696 * @return The maximum number of candidates.
698 virtual TInt MaximumNumberOfCandidates() const = 0;
701 * Returns a boolean value indicating whether the next word prediction feature
702 * supported by the core object in question.
705 * @return ETrue if next wrod prediction is supported.
708 virtual TBool NextWordPrediction() const = 0;
711 * Returns core object vendor specific id string.
714 * @return Vendor specific id string.
716 virtual TPtrC VendorString() const = 0;
719 * Returns a bit vector containing flags for various core object features.
720 * See TPtiEngineCapsBits for list of specified bits.
723 * @return A bit vector containing flags for various core object features.
725 virtual TUint32 CapsBits() const = 0;
728 * Returns uid value for core object.
731 * @return Core object uid as an integer value.
733 virtual TInt32 Uid() const = 0;
736 * Returns a bitvector containing flags for available character conversion
737 * methods. See TPtiCharConversion for list of specified bits.
740 * @return A bit vector containing flags for available character conversions.
742 virtual TUint32 CharConversions() const = 0;
745 * Returns a bitvector containing flags for available spelling conversion
746 * methods. See TPtiSpelling for list of specified bits.
749 * @return A bit vector containing flags for available spelling conversions.
751 virtual TUint32 Spellings() const = 0;
755 class TPtiCoreInfo : public MPtiCoreInfo
758 inline TBool WordCompletion() const;
759 inline TBool Reordering() const;
760 inline TInt MaximumWordLength() const;
761 inline TInt MaximumNumberOfCandidates() const;
762 inline TBool NextWordPrediction() const;
763 inline TPtrC VendorString() const;
764 inline TInt32 Uid() const;
765 inline TUint32 CharConversions() const;
766 inline TUint32 Spellings() const;
768 inline TUint32 CapsBits() const;
769 inline void SetCapsBits(TUint32 aBits);
770 inline void SetVendorString(const TDesC& aStr);
771 inline void SetMaxWordLength(TInt aMaxLen);
772 inline void SetUid(TInt32 aUid);
773 inline void SetSpellings(TUint32 aSpellings);
774 inline void SetMaxNumberOfCandidates(TInt aMax);
775 inline void SetCharConversions(TUint32 aConvs);
781 TInt iMaxNumberOfCandidates;
783 TUint32 iCharConversions;
788 #define KPtiEngineChineseSeparator 0x0027
790 // Tone marks for pinyin input
793 KPtiPinyinTone0 = 0x02C9,
794 KPtiPinyinTone1 = 0x02CA,
795 KPtiPinyinTone2 = 0x02C7,
796 KPtiPinyinTone3 = 0x02CB,
797 KPtiPinyinTone4 = 0x02D9
800 // Tone marks for zhuyin input
803 KPtiZhuyinTone0 = 0x0020,
804 KPtiZhuyinTone1 = 0x02CA,
805 KPtiZhuyinTone2 = 0x02C7,
806 KPtiZhuyinTone3 = 0x02CB,
807 KPtiZhuyinTone4 = 0x02D9
811 class TPtiNumericKeyBinding
820 // type definition for HWR
821 typedef struct TRecognitionRangeTag
828 enum TRecognitionSubRanges
836 EPtiRangeNative, // native text of a language, EPtiRangeLatin also belong to it
837 EPtiRangeHiraganaKanji,
839 EPtiRangeFullWidthKatakana,
840 EPtiRangeFullWidthEnglish,
841 EPtiRangeFullWidthNumeric,
842 EPtiRangeHiraganaOnly,
843 EPtiRangeNativeNumber,
848 enum TLatinLetterOrder
855 * List of supported keyboard types. Each of these keyboard types
856 * may have own data block in keyboard data file.
858 enum TPtiKeyboardType
863 * Conventional 12 phone keypad
868 * 4x12 Qwerty keyboard.
870 EPtiKeyboardQwerty4x12,
873 * 4x10 Qwerty keyboard.
875 EPtiKeyboardQwerty4x10,
878 * 3x11 Qwerty keyboard.
880 EPtiKeyboardQwerty3x11,
885 EPtiKeyboardHalfQwerty,
888 * Custom qwerty keyboard.
889 * Bound to [KEYBOARD BLOCK QWERTY CUSTOM] in keymapping
892 EPtiKeyboardCustomQwerty,
894 EPtiKeyboardMaxLayout
897 #include "PtiDefs.inl"
899 #endif // _PTI_DEFS_H