/** Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved.* This component and the accompanying materials are made available* under the terms of "Eclipse Public License v1.0""* which accompanies this distribution, and is available* at the URL "http://www.eclipse.org/legal/epl-v10.html".** Initial Contributors:* Nokia Corporation - initial contribution.** Contributors:** Description: Provides the TAknFepInputStateInitialIndicPhoneticMultitap definition.**/#ifndef __AKN_FEP_UI_INPUT_STATE_INIT_INDIC_PHONETIC_MULTITAP_H__#define __AKN_FEP_UI_INPUT_STATE_INIT_INDIC_PHONETIC_MULTITAP_H__#include "AknFepUIInputStateInitialMultitapBase.h"/*** This class handles the multitap input for Indic languages.* @lib avkonfep.dll* @since Series 60 3.1*/class TAknFepInputStateInitialIndicPhoneticMultitap : public TAknFepInputStateInitialMultitapBase {public: /** * * Constructor for TAknFepInputStateInitialIndicPhoneticMultitap. * @since 5.0 * @return */ TAknFepInputStateInitialIndicPhoneticMultitap(MAknFepUIManagerStateInterface* aOwner, TInt aLanguage); public: //from TAknFepInputStateBase /** * * Returns the virama character depending on the input language. * @since 5.0 * @return Etrue if the Key is handled. */ TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);#ifdef RD_HINDI_PHONETIC_INPUT /** * * Populates iPhoneticLatinChar to aChar. * @since 5.0 * @return None. */ virtual void GetPhoneticLatinChar(TChar& aChar)const;#endif public: //from MptiObserver /** * * Gets called when PTI Engine's timer expires. * @since 5.0 * @return */ void KeyTimerExpired(); /** * Transliterate the current inputted character to language specific character * of Halant. * @since 5.0 * @param Null * @return Null */private: void TransliterateFromLatinL(); /** * Removes Halant added by Phonetic PtiENgine for North Indian Languages. * * @since 5.0 * @param aLanguage- Current Phonetic input language is passed to this function. * Engine. * @return Nothing */ void RemoveHalantL(TLanguage aLanguage); /** * Checks wheather the current Phonetic Input Language follows North Indian style of editing. This is necessary for removal * of Halant. * @since 5.0 * @param aLanguage- Current Phonetic input language is passed to this function. * Engine. * @return Returns True if the current language comes under North Indian style of writting. */ TBool IsToRemoveHalantForLanguage(TInt aLanguage); /** * Checks if the character has phonetic equivallent to be Transliterated * of Halant. * @since 5.0 * @param aChar character to be checked * @return returns ETrue if the character can be transliterated */ inline TBool IsToTransliterate(TChar& aChar); /** * Checks if the current transliterated character can be inputted as per the language rule, if not then Question mark is inputted * of Halant. * @since 5.0 * @param aChar character to be validated for inputting * @return ETrue if the character is allowed */ TBool ValidatePhoneticInputL(const TDes& aBuf, TLanguage aLanguage); /** * Checks if the current inputted character is a fallback rendered character * of Halant. * @since 5.0 * @param aChar Character to be checked * @return ETrue is the character is a fallback rendered character */ TBool IsInvalidPhoneticCharacter( TUint aChar, TLanguage aLanguage ); /** * Handels the key timer expiry * of Halant. * @since 5.0 * @param Null * @return Null */ void HandleKeyTimerExpiryL(); };#endif //__AKN_FEP_UI_INPUT_STATE_INIT_INDIC_MULTITAP_H__// End of File