diff -r f1bdd6b078d1 -r 2cb9bae34d17 fep/aknfep/inc/AknFepUiManagerBase.h --- a/fep/aknfep/inc/AknFepUiManagerBase.h Tue Jul 06 14:38:41 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,479 +0,0 @@ -/* -* Copyright (c) 2003 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 CAknFepUIManagerBase definition. -* -*/ - - - - - - - - - - - - -#ifndef __AKN_FEP_UI_MANAGER_BASE_H__ -#define __AKN_FEP_UI_MANAGER_BASE_H__ - -// INCLUDES -#include //TAknEditorNumericKeymap - -#include "AknFepManagerUIInterface.h" -#include "AknFepManagerInterface.h" -#include "AknFepUIManagerStateInterface.h" - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -// CLASS DECLARATION -class CPtiEngine; -class TAknFepInputStateBase; - -/** - * CAknFepUIManagerBase class. - * - * @lib AknFep.lib - * @since 2.6 - * - */ -class CAknFepUIManagerBase : - public CBase, - public MAknFepManagerInterface, - public MAknFepUIManagerStateInterface - { -private: - /** - * private constants - */ - enum - { - EBaseLanguageNumericKeymapIndex = 0x00FF, - EMaskShiftOffset = 8 - }; - -public: // Constructors and destructor - /** - * - * - * @since 2.6 - */ - static CAknFepUIManagerBase* NewL(MAknFepManagerUIInterface* aFepMan, - CAknFepCaseManager* aCaseMan, TLanguage aLanguage); - - /** - * - * - * @since 2.6 - */ - virtual ~CAknFepUIManagerBase(); - -public: // Functions from base classes - /** - * From MAknFepManagerInterface - * - * @since 2.6 - */ -#ifdef RD_INTELLIGENT_TEXT_INPUT - void SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode, - TInt aKeyboardType = EPtiKeyboardNone); -#else - void SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode); -#endif - - /** - * From MAknFepManagerInterface - * - * @since 2.6 - */ - void SetCase(TCase aCase); - - /** - * From MAknFepManagerInterface - * - * @since 2.6 - */ - void SetNumberModeKeyMappingL(TAknEditorNumericKeymap aAknEditorNumericKeymap); - - /** - * From MAknFepManagerInterface - * - * @since 2.6 - */ - const TDesC& NumberModeKeyMapping() const; - - /** - * From MAknFepManagerInterface - * - * @since 2.6 - */ - TBool HandleKeyL(TInt aKey, TKeyPressLength aLength, TEventCode aEventCode = EEventKey ); - - /** - * From MAknFepManagerInterface - * this is in base class only - * @since 2.6 - */ - void HandleCommandL(TInt aCommandId); - void HandleCommandL(TInt aCommandId, TInt aParam); - - /** - * From MAknFepManagerInterface - * this should be implemented in each ui manager - * - * @since 2.6 - */ - void CloseUI(); - - /** - * From MAknFepManagerInterface - * this is in base class only - * - * @since 2.6 - */ - void ExpireMultitapTimer(); - - /** - * From MAknFepManagerInterface - * this is in base class only - * - * @since 2.6 - */ - TBool IsValidNumericLongKeyPress(TInt aKey) const; - - /** - * From MAknFepManagerInterface - * this api use in chinese and western - * - * @since 2.6 - */ - void AddTextToUserDictionaryL(const TDesC& aText); - - /** - * From MAknFepManagerInterface - * this should be implemented in each ui manager - * - * @since 2.6 - */ - void GetFormatOfFepInlineText(TCharFormat& aFormat, TInt& aNumberOfCharactersWithSameFormat, - TInt aPositionOfCharacter) const; - - /** - * From MAknFepManagerInterface - * - * @since 2.6 - */ - virtual TInt SupportLanguage(TInt aMode) const; - - /** - * From MAknFepManagerInterface - * - * @since 2.6 - */ - virtual void SetInputLanguageL(TLanguage aLanguage); - - /** - * From MAknFepManagerInterface - * - * @since 2.6 - */ - TBool IsValidShiftKeyPress() const; -#ifdef RD_INTELLIGENT_TEXT_INPUT - TBool IsValidFnKeyPress() const; - - virtual TBool IsValidLongChrKeyPress() const; - -#endif - - /** - * From MAknFepManagerInterface - * this api use in chinese ui only - * - * @since 2.6 - */ - void SetEditorContext(TInt aContext); - - /** - * - * - * @since 2.6 - */ - void ActivateUI(); - - /** - * From MAknFepUIManagerStateInterface - * this is in base class only - * - * @since 2.6 - */ - TUIState State() const; - - /** - * From MAknFepUIManagerStateInterface - * this should be implemented in each ui manager - * - * @since 2.6 - */ - TUIState ChangeState(TUIState aState); - - /** - * From MAknFepUIManagerStateInterface - * this is in base class only - * - * @since 2.6 - */ - MAknFepManagerUIInterface* FepMan() const; - - /** - * From MAknFepUIManagerStateInterface - * using instead of PtiEngine() - * - * @since 2.6 - */ - CPtiEngine* PtiEngine() const; - - // the follow function for phrase creation - MZhuyinKeyHandler* ZhuyinKeyHandler(); - CAknFepZhuyinAnalyser* ZhuyinAnalyser(); - - /** - * From MAknFepUIManagerStateInterface - * this api use in chinese input states only - * - * @since 2.6 - */ - TBool IsValidChineseInputKey(TInt aKey) const; - - /** - * From MAknFepUIManagerStateInterface - * this api use in chinese Qwerty input states only - * - * @since 3.0 - */ - TBool IsValidChineseInputKeyQwerty(TInt aKey) const; - - /** - * From MAknFepUIManagerStateInterface - * this api use in chinese Qwerty input states only - * - * @since 3.0 - */ - TBool IsQwertyZhuyinToneMarkKey(TInt aKey) const; - - /** - * this api use in HK Qwerty input states only - * - * @since 3.0 - */ - virtual void UpdateCangJieState(); - - /** - * From MAknFepUIManagerStateInterface - * this api use in chinese input states only - * - * @since 3.0 - */ - TBool IsValidChineseSymbol(TInt aKey) const; - /** - * From MAknFepUIManagerStateInterface - * this is in base class only - * TLanguage is Language identity enumeration defined in e32std.h - * - * @since 2.6 - */ - TLanguage GetLanguage() const; - - /** - * From MAknFepUIManagerStateInterface - * - * @since 2.6 - */ - CAknFepCaseManager* CaseMan() const; - - /** - * From MAknFepUIManagerStateInterface - * - * - * @since 2.6 - * this api use in chinese ui only - */ - TPtr GetLatestDeliberateSelection() const; - - /** - * From MAknFepUIManagerStateInterface - * Thai only - * - * @since 2.6 - */ - TInt ThaiSCTResourceId(TUint aPrewChar, TInt aKey); - - /** - * From MAknFepUIManagerStateInterface - * Japanese only - * - * @since 2.6 - */ - CDesCArrayFlat* CandidateArray(); - - /** - * From MAknFepUIManagerStateInterface - * Japanese only - * - * @since 2.6 - */ - TBool IsPredictive() const; - - /** - * From MAknFepUIManagerStateInterface - * Japanese only - * - * @since 2.6 - */ - void SetInlineEditUnderlineVisibility(TBool aFlag); - - /** - * From MAknFepUIManagerStateInterface - * - * @since 3.0 - */ - TBool IsQwerty() const; - - /** - * From MAknFepUIManagerStateInterface - * - * @since 3.2 - */ - void SetFepAwareEditorText(const TFepInputContextFieldData& /*aIcfData*/); - - /** - * From MAknFepUIManagerStateInterface - * - * @since 3.2 - */ - TInt EditorMaxLength(); - - /** - * From MAknFepUIManagerStateInterface - * - * @since 3.2 - */ - void ResourceChanged(TInt aType); - - /** - * From MAknFepUIManagerStateInterface - * - * @since 3.2 - */ - void SetNextFepUI(MAknFepManagerInterface* /*aNextUi*/); - - /** - * Set the Star key flag - * - * @param aSet TBool. - * @return None - */ - void SetStarKeyFlag( TBool aSet ); - -protected: // New Functions - /** - * - * - * @since 2.6 - */ - void ConstructL(TLanguage aLanguage); - - /** - * - * - * @since 2.6 - */ - CAknFepUIManagerBase(MAknFepManagerUIInterface* aFepMan, CAknFepCaseManager* aCaseMan); - - /** - * - * - * @since 2.6 - */ - virtual TAknFepInputStateBase* FepUIState(); -#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__ -#ifdef RD_INTELLIGENT_TEXT_INPUT - /** - * Removes the character produced by the initial short key press and substitutes - * it with the character found behind Fn. If no no Fn-mapping is available, the - * function does nothing. Also, in non-QWERTY modes the function does nothing because - * ITU-T input states handle long press internally. - * @return ETrue if key was consumed and no further handling should be made. - * This is the case when editor is filled up and no more characters can be entered. - * EFalse if handling of the key event may continue. Either the mode has - * been changed to Fn mode for the next character or nothing has - * been done and normal key repeat should happen. - * @since 3.2 - */ - virtual TBool HandleLongKeyL( TInt aKey ); - - /** - * Removes the character produced by the last handled key press. Long press number - * entry uses this to remove the character which was entered when the key was pressed - * down ("the initially short press character") before the key press turned out to be - * a long press. - * @return ETrue if something was really removed - * EFalse if nothing was removed (the previous key press had produced no charcters) - * @since 3.2 - */ - virtual TBool RollbackPreviousCharL(); - -#endif //RD_INTELLIGENT_TEXT_INPUT -#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__ - -protected: // Data - TInt iMode; // - TInt iNumericKeymapResourceId; - HBufC* iNumericKeymapBuffer; - TLanguage iLanguage; // - - CPtiEngine* iPtiEngine; //owned - - TAknFepInputStateBase* iStatePtr; // gcc workaround to force compiler to use vtable lookup. - - MAknFepManagerUIInterface* iFepMan; //not owned - CAknFepCaseManager* iCaseMan; //not owned - TBool iPredictive; // ETrue: prediction is ON. -#ifdef RD_INTELLIGENT_TEXT_INPUT - // predictive QWERTY changes (e.g. XT9) ----> - TBool iQwertyInputMode; // ETrue: QWERTY mode is ON - // predictive QWERTY changes (e.g. XT9) <---- -#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__ - TInt iPreviousInputSeqLen; - TInt iPreviousEditorTextLen; - TInt iInputSeqLenDeltaWithLastKey; - TInt iEditorTextLenDeltaWithLastKey; -#endif //__ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__ -#endif //RD_INTELLIGENT_TEXT_INPUT - TUIState iInitialFepUIState; // - TInt iCaseBeforeLongKey; - }; - -#endif //__AKN_FEP_UI_MANAGER_BASE_H__ - -// End of file