--- /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 <w32std.h>
+#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