williamr@2: /* williamr@2: * Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@2: * 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: * which accompanies this distribution, and is available williamr@2: * at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: williamr@2: * Avkon Editing State Indicator Interface williamr@2: * williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: #ifndef AKNEDITSTATEINDICATOR_H williamr@2: #define AKNEDITSTATEINDICATOR_H williamr@2: williamr@2: #include williamr@2: williamr@2: class CAknIndicatorContainer; williamr@2: williamr@2: enum TAknEditingState williamr@2: { williamr@2: /** No input mode */ williamr@2: EStateNone, williamr@2: /** Predictive upper case input mode */ williamr@2: ET9Upper, williamr@2: /** Predictive lower case input mode */ williamr@2: ET9Lower, williamr@2: /** Predictive shifted input mode */ williamr@2: ET9Shifted, williamr@2: /** Numeric input mode */ williamr@2: ENumeric, williamr@2: /** Multitap upper case input mode */ williamr@2: EMultitapUpper, williamr@2: /** Multitap lower case input mode */ williamr@2: EMultitapLower, williamr@2: /** Multitap shifted input mode */ williamr@2: EMultitapShifted, williamr@2: /** Predictive Arabic input mode */ williamr@2: ET9Arabic, williamr@2: /** Predictive Hebrew input mode */ williamr@2: ET9Hebrew, williamr@2: /** Multitap Arabic input mode */ williamr@2: EMultitapArabic, williamr@2: /** Multitap Hebrew input mode */ williamr@2: EMultitapHebrew, williamr@2: /** Arabic-Indic numeric input mode */ williamr@2: EArabicIndicNumeric, williamr@2: /** Multitap Thai input mode */ williamr@2: EMultitapThai, williamr@2: /** Predictive Thai input mode */ williamr@2: ET9Thai, williamr@2: /** QWERTY shifted input mode */ williamr@2: EQwertyShift, williamr@2: /** Predictive Farsi and Urdu input mode */ williamr@2: ET9FarsiAndUrdu, williamr@2: /** Multitap Farsi and Urdu input mode */ williamr@2: EMultitapFarsiAndUrdu, williamr@2: williamr@2: // williamr@2: // Chinese states williamr@2: // williamr@2: /** Pinyin input mode */ williamr@2: EIndicatorStatePinyin =20, williamr@2: /** Zhuyin inout mode */ williamr@2: EIndicatorStateZhuyin, williamr@2: /** Stroke input mode */ williamr@2: EIndicatorStateStroke, williamr@2: /** Zhuyin find input mode */ williamr@2: EIndicatorStateZhuyinFind, williamr@2: /** Stroke find input mode */ williamr@2: EIndicatorStateStrokeFind, williamr@2: /** Stroke trad input mode */ williamr@2: EIndicatorStateStrokeTrad, williamr@2: /** Cang Jie input mode */ williamr@2: EIndicatorStateCangJie, williamr@2: /** Pinyin phrase pinput mode */ williamr@2: EIndicatorStatePinyinPhrase, williamr@2: /** Zhuyin phrase inout mode */ williamr@2: EIndicatorStateZhuyinPhrase, williamr@2: /** Stroke phrase input mode */ williamr@2: EIndicatorStateStrokePhrase, williamr@2: /** Stroke phrase trad input mode */ williamr@2: EIndicatorStateStrokeTradPhrase, williamr@2: williamr@2: // williamr@2: // Japanese states williamr@2: // williamr@2: /** Kanji and Hiragana input mode */ williamr@2: EIndicatorStateHiraganaKanji = 40, williamr@2: /** Hiragana input mode */ williamr@2: EIndicatorStateHiragana, williamr@2: /** Half-width Katakana input mode */ williamr@2: EIndicatorStateHalfKatakana, williamr@2: /** Full-width Katakana input mode */ williamr@2: EIndicatorStateFullKatakana, williamr@2: /** Full-width LatinUpper input mode */ williamr@2: EIndicatorStateFullLatinUpper, williamr@2: /** Full-width LatinLower input mode */ williamr@2: EIndicatorStateFullLatinLower, williamr@2: /** Full-width LatinText input mode */ williamr@2: EIndicatorStateFullLatinText, williamr@2: /** Numeric input mode */ williamr@2: EIndicatorStateFullNumeric, williamr@2: /** japanese predictive mode */ williamr@2: EIndicatorStateJapanesePredictive, williamr@2: williamr@2: // williamr@2: // Vietnamese williamr@2: // williamr@2: /** Predictive Vietnamese upper case input mode */ williamr@2: ET9UpperVietnamese = 60, williamr@2: /** Predictive Vietnamese lower case input mode */ williamr@2: ET9LowerVietnamese, williamr@2: /** Predictive Vietnamese shifted input mode */ williamr@2: ET9ShiftedVietnamese, williamr@2: /** Multitap Vietnamese upper case input mode */ williamr@2: EMultitapUpperVietnamese, williamr@2: /** Multitap Vietnamese lower case input mode */ williamr@2: EMultitapLowerVietnamese, williamr@2: /** Multitap Vietnamese shifted input mode */ williamr@2: EMultitapShiftedVietnamese, williamr@2: williamr@2: // williamr@2: // Hindi williamr@2: // williamr@2: /** Multitap Hindi input mode */ williamr@2: EIndicatorStateMultitapHindi= 80, williamr@2: /** Predictive Hindi input mode */ williamr@2: EIndicatorStatePredictiveHindi, williamr@2: EDevanagariIndicNumeric, williamr@2: williamr@2: /** Devangari Indic numeric input mode */ williamr@2: EIndicatorStateHindiPhoneticUpper, williamr@2: EIndicatorStateHindiPhoneticLower, williamr@2: /** Multitap Marathi input mode */ williamr@2: EIndicatorStateMultitapMarathi, williamr@2: /** Predictive Marathi input mode */ williamr@2: EIndicatorStatePredictiveMarathi, williamr@2: williamr@2: // Korean williamr@2: // Multitap hangul input mode williamr@2: EIndicatorStateHangul, williamr@2: williamr@2: // Auto Word Completion williamr@2: // williamr@2: /** Auto Word Completion upper case input mode */ williamr@2: EAutoCompleteUpper = 100, williamr@2: /** Auto Word Completion lower case input mode */ williamr@2: EAutoCompleteLower, williamr@2: /** Auto Word Completion shifted input mode */ williamr@2: EAutoCompleteShifted, williamr@2: /** Auto Word Completion Hindi input mode */ williamr@2: EAutoCompleteHindi, williamr@2: /** Auto Word Completion Arabic input mode */ williamr@2: EAutoCompleteArabic, williamr@2: /** Auto Word Completion Hebrew input mode */ williamr@2: EAutoCompleteHebrew, williamr@2: /** Auto Word Completion Farsi - Urdu input mode */ williamr@2: EAutoCompleteFarsiAndUrdu, williamr@2: /** Auto Word Completion Thai input mode */ williamr@2: EAutoCompleteThai, williamr@2: /** Auto Word Completion Vietnamese upper case input mode */ williamr@2: EAutoCompleteUpperVietnamese, williamr@2: /** Auto Word Completion Vietnamese lower case input mode */ williamr@2: EAutoCompleteLowerVietnamese, williamr@2: /** Auto Word Completion Vietnamese shifted input mode */ williamr@2: EAutoCompleteShiftedVietnamese, williamr@2: // AutoComplete - End williamr@2: williamr@2: // Fn Mode input williamr@2: /** Functionized input mode is activated for the subsequent key press **/ williamr@2: EFnKeyPressed, williamr@2: /** Functionized input is enabled untill turned off **/ williamr@2: EFnKeyLocked, williamr@2: williamr@2: // williamr@2: // Greek williamr@2: // williamr@2: /** Predictive Greek upper case input mode */ williamr@2: ET9UpperGreek = 200, williamr@2: /** Predictive Greek lower case input mode */ williamr@2: ET9LowerGreek, williamr@2: /** Predictive Greek shifted input mode */ williamr@2: ET9ShiftedGreek, williamr@2: /** Multitap Greek upper case input mode */ williamr@2: EMultitapUpperGreek, williamr@2: /** Multitap Greek lower case input mode */ williamr@2: EMultitapLowerGreek, williamr@2: /** Multitap Greek shifted input mode */ williamr@2: EMultitapShiftedGreek, williamr@2: williamr@2: // williamr@2: // Cyrillic williamr@2: // williamr@2: /** Predictive Cyrillic upper case input mode */ williamr@2: ET9UpperCyrillic = 220, williamr@2: /** Predictive Cyrillic lower case input mode */ williamr@2: ET9LowerCyrillic, williamr@2: /** Predictive Cyrillic shifted input mode */ williamr@2: ET9ShiftedCyrillic, williamr@2: /** Multitap Cyrillic upper case input mode */ williamr@2: EMultitapUpperCyrillic, williamr@2: /** Multitap Cyrillic lower case input mode */ williamr@2: EMultitapLowerCyrillic, williamr@2: /** Multitap Cyrillic shifted input mode */ williamr@2: EMultitapShiftedCyrillic williamr@2: }; williamr@2: williamr@2: /** williamr@2: * An abstact class of which virtual methods implementation should be provided for FEP component. williamr@2: */ williamr@2: class MAknEditingStateIndicator williamr@2: { williamr@2: public: williamr@2: williamr@2: DECLARE_TYPE_ID(0x101F4108) williamr@2: williamr@2: /** williamr@2: * Sets editing state indicator state. williamr@2: * williamr@2: * @param aState State of the editing indicator. williamr@2: */ williamr@2: virtual void SetState(TAknEditingState aState) = 0; williamr@2: williamr@2: /** williamr@2: * Gets pointer to indicator container that contains williamr@2: * the editing state indicators. williamr@2: * williamr@2: * @return Indicator container of the editing indicators. williamr@2: */ williamr@2: virtual CAknIndicatorContainer* IndicatorContainer() = 0; williamr@2: }; williamr@2: williamr@2: /** williamr@2: * This function should be called from MopSupplyObject() of those williamr@2: * components that supply MAknEditingStateIndicator interface for FEP. williamr@2: * williamr@2: * Retrieves an object of the same type as that encapsulated in aId. williamr@2: * williamr@2: * This function is used to allow controls to ask their owners for williamr@2: * access to other objects that they own. williamr@2: * williamr@2: * Other than in the case where NULL is returned, the object returned williamr@2: * must be of the same object type - that is, the @c ETypeId member of williamr@2: * the object pointed to by the pointer returned by this function must williamr@2: * be equal to the @c iUid member of @c aId. williamr@2: * williamr@2: * @param aId An encapsulated object type ID. williamr@2: * @return Encapsulated pointer to the provided object. williamr@2: * Note that the encapsulated pointer may be NULL. williamr@2: */ williamr@2: inline TTypeUid::Ptr SupplyMopObject( TTypeUid aId, williamr@2: MAknEditingStateIndicator* aIndicator ) williamr@2: { williamr@2: if ( aIndicator && aId.iUid == MAknEditingStateIndicator::ETypeId ) williamr@2: { williamr@2: return aId.MakePtr( aIndicator ); williamr@2: } williamr@2: williamr@2: return TTypeUid::Null(); williamr@2: } williamr@2: williamr@2: #endif