diff -r 0f326f2e628e -r a7632c26d895 fep/aknfep/inc/AknFepHashKeyManager.h --- a/fep/aknfep/inc/AknFepHashKeyManager.h Fri Jul 23 16:49:01 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,195 +0,0 @@ -/* -* Copyright (c) 2002 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: -* -*/ - - - - - - - - - - - - -#ifndef _AKNFEP_HASHKEY_MANAGER_H__ -#define _AKNFEP_HASHKEY_MANAGER_H__ - -#include -#include -#include - -#include "AknFepGlobalEnums.h" - -class CAknFepManager; -class CAknFepCaseManager; -enum TKeyResponse; -enum TKeyPressLength; - -class CAknFepHashKeyManager : public CBase - { -public: - enum THashKeyStyle - { - EHashKeyStyleWestern, - EHashKeyStyleChineseWithWestern, - EHashKeyStyleJapanese, - EHashKeyStyleKoreanWithWestern - }; - -public: - static CAknFepHashKeyManager* NewL(CAknFepManager& aFepMan, CAknFepCaseManager* aCaseMan); - ~CAknFepHashKeyManager(); - TKeyResponse HandleKeyEventL(TKeyPressLength aLength); - void SetMode(TInt aMode, TBool aWesternPredictive); - - /** - * Changes the hash key functionality. - */ - void SetHashKeyStyle(THashKeyStyle aHashKeyStyle); - - /** - * Cancels the hash key timer. - */ - void CancelHashKeyTimer(); - - inline void ClearSelectionModeHashKeyLoop(); - - void SetPreviousSelectionStyleModeL(); - /** - * To Handle the Indic Hash key Loop State - * - * Set the New State or Mode based on the editor after Fep is configured from Editor - * @since 3.2 - * @return nothing - */ - void ResetIndicHashKeyStateL(); - - /** - * Reset the flag of previous selection - * - * @since 3.2 - * @return nothing - */ - void ResetPreviousSelectionStyleMode(); -#ifdef RD_HINDI_PHONETIC_INPUT - /** - * To Handle SetIndicStateL method - * - * helps in handling case changes - * @since 5.0 - * @return nothing - */ - void HandleSetIndicStateL(); -#endif - -private: - CAknFepHashKeyManager(CAknFepManager& aFepMan, CAknFepCaseManager* aCaseMan); - void ConstructL(); - static TInt HashKeyTimerTimeoutCallback(TAny* aObj); - void HashKeyTimerTimeout(); - TKeyResponse HandleKeyWesternSelectionStyleL(TKeyPressLength aLength); - void SetSelectionStyleModeL(); - /** - * To Handle Indic Hash key Loop - * - * Set the New State or Mode based on the existing mode - * @since 3.2 - * @return EKeyWasConsumed - */ - TKeyResponse SetIndicStateL(); - - /** - * To Handle Indic Hash key Loop - * - * Change back to the Previous State or Mode - * @since 3.2 - * @return EKeyWasConsumed - */ - TKeyResponse SetIndicPreviousStateL(); - - /** - * To Handle Indic Hash key Loop - * - * To verify if Indic hash key Loop is required. - * @since 3.2 - * @return ETrue if Shared Interface input Language is Indic and given editor is not Latin-Only - */ - TBool IsIndicHashKeyStyleRequired(); - - - /** - * To Handle Indic Hash key Loop - * - * Set the Style for the State - * @since 3.2 - * @return nothing - */ - void SetIndicSelectionStateL(); - - - /** - * To Handle Indic Hash key Loop - * - * Update the case information - * @since 3.2 - * @return nothing - */ - void UpdateCaseForIndicHashLoop(); - - /** - * Reverts predictive text setting change. This method can be used - * if short key press of hash key changed predictive text - * setting in non-case supported languages and actually long key press - * action was handled. Not used with Chinese languages. - */ - void RevertPredictiveTextSettingChangeL(); - - TKeyResponse HandleKeyWesternL(TKeyPressLength aLength); - TKeyResponse HandleKeyWesternWithChineseL(TKeyPressLength aLength); - TKeyResponse HandleKeyJapaneseL(TKeyPressLength aLength); - TKeyResponse HandleLongKeypressJapaneseL(); - TKeyResponse HandleSortKeypressJapaneseL(); - TKeyResponse HandleKeyWesternWithKoreanL(TKeyPressLength aLength); - -private: - THashKeyStyle iHashKeyStyle; - TInt iMode; - TBool iLastModeNumber; - - CPeriodic* iHashKeyTimer; //owned - - CAknFepManager& iFepMan; //not owned - CAknFepCaseManager* iCaseMan; - TBool iWesternPredictive; - - TInt iSelectionLoopIndex; - TInt iIndicSelectionLoopIndex; - TUint8 const * iSelectionLoop; - TBool iLanguageChangedOrChangeFromNumberMode; - TBool iIndicPredictiveState; - TCursorSelection iPreviousIndicCursorPosition; - TBool iPreviousSelection; // used by Japanese - }; - -inline void CAknFepHashKeyManager::ClearSelectionModeHashKeyLoop() - { - iSelectionLoop = NULL; - iSelectionLoopIndex = 0; - } - -#endif //_AKNFEP_HASHKEY_MANAGER_H__