diff -r 000000000000 -r eb1f2e154e89 fep/aknfep/inc/AknFepUiInputStateQwerty.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fep/aknfep/inc/AknFepUiInputStateQwerty.h Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,92 @@ +/* +* Copyright (c) 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 TAknFepInputStateQwerty definition. +* +*/ + + + + + + + + + + + + +#ifndef __AKN_FEP_UI_INPUT_STATE_QWERTY_H__ +#define __AKN_FEP_UI_INPUT_STATE_QWERTY_H__ + +#include +#include "AknFepUiInputStateBase.h" + +class TAknFepInputStateQwerty : public TAknFepInputStateBase + { +public: + TAknFepInputStateQwerty(MAknFepUIManagerStateInterface* aOwner); + + TBool HandleKeyL(TInt aKey, TKeyPressLength aLength); + TBool IsNumberKey(const TInt aKey); + +public: // Functions from MPtiObserver interface + void KeyTimerExpired(); + +protected: + TBool IsCharacterKey(const TInt aKey); + TBool IsQwertyKey(const TInt aKey); + +// TBool IsAllowedKeymappingForNumberMode(TChar aChar); + void NumericCharacterForQwertyKey(TInt aInScanCode, + TKeyEvent& aEvent, + TBool aShifted, + TChar& aResult); + TBool IsExceptionChar(TUint16 aChar); + + + /** + * There are currently handled as a herdcoded special cases. + * This method is used for collecting and handling those cases. + */ + void CustomFilter(TPtrC aInput, TDes& aOutput, TInt aLanguage, + TInt aCurrentCase, TBool aShiftDown); + void HandleCaseChange(TInt aKey, TBool aIsCharacter); +#ifdef RD_INTELLIGENT_TEXT_INPUT + TBool IsCharacterNumber(TChar aChar); + TBool TryGetValidCharForKey(const TInt& aKey, TChar& aChar); + TBool TryGetValidCharForKeyAndCase(const TInt& aKey, TChar& aChar, TPtiTextCase aCase); +#endif + TBool CheckForValidNumberEntryForqwerty(TInt aKey); +private: + //TBool iFakeDelete; + //TBool iCharKeyException; +#ifdef RD_INTELLIGENT_TEXT_INPUT + + //IsLanguageSupportsCaseChanges() should return ETrue if the current input language + // does not support case changes. Eg - Arabic, Urdu, Farsi, Hindi, etc. + //It should return EFalse for other languages (eg - latin based languages) + TBool IsLanguageWithoutCaseChanges(); + + //IsSpecialNonLatinScript() should return ETrue if the current input language uses + // either Greek, Cyrillic or Hebrew script. Currently supported languages with Cyrillic + // script are Russian, Ukrainian and Bulgarian. + TBool IsSpecialNonLatinScript(); + +#endif + }; + +#endif //__AKN_FEP_UI_INPUT_STATE_QWERTY_H__ + +// End of file