fep/aknfep/src/AknFepUiInputStateZhuyinFindQwerty.cpp
changeset 36 a7632c26d895
parent 35 0f326f2e628e
child 42 b3eaa440ab06
--- a/fep/aknfep/src/AknFepUiInputStateZhuyinFindQwerty.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,352 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateZhuyinFindQwerty methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateZhuyinFindQwerty.h"
-#include "AknFepUIManagerStateInterface.h"
-#include "AknFepCaseManager.h"
-
-#include <e32keys.h>
-#include <PtiEngine.h>
-#include <PtiDefs.h>                //keys
-
-TAknFepInputStateZhuyinFindQwerty::TAknFepInputStateZhuyinFindQwerty(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer) :
-    TAknFepInputStateChineseFindQwerty(aOwner, aUIContainer)
-    {
-    iOwner->PtiEngine()->SetInputMode(EPtiEngineZhuyinQwerty);
-    }
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-TAknFepInputStateZhuyinFindMiniQwerty::TAknFepInputStateZhuyinFindMiniQwerty(
-        MAknFepUIManagerStateInterface* aOwner, TInt aMode) :
-    TAknFepInputStateInitialChineseGenericQwerty(aOwner, aMode)
-    {
-    iState = EInitial;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    ptiengine->SetInputMode(EPtiEngineInputModeZhuyinMiniQwertyFind);
-    ptiengine->SetKeyboardType(iOwner->FepMan()->KeyboardLayout());
-
-    }
-
-TBool TAknFepInputStateZhuyinFindMiniQwerty::HandleKeyL(TInt aKey,
-        TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBool ret = EFalse;
-
-    if (iData != aKey)
-        {
-        fepMan->CommitInlineEditL();
-        ptiengine->ClearCurrentWord();
-        CAknFepCaseManager* caseMan = iOwner->CaseMan();
-        caseMan->UpdateCase(ENullNaviEvent);
-        }
-
-    iData = aKey;
-    if ( aLength == EShortKeyPress && CAknFepFnKeyManager::EFnKeyNone
-        == iOwner->FepMan()->FnKeyState() && (!fepMan->IsFlagSet(
-        CAknFepManager::EFlagQwertyShiftMode
-            | CAknFepManager::EFlagShiftKeyDepressed )) )
-        {
-        if (ptiengine->InputMode()!= EPtiEngineInputModeZhuyinMiniQwertyFind)
-            {
-            ptiengine->SetInputMode(EPtiEngineInputModeZhuyinMiniQwertyFind);
-            }
-        switch (aKey)
-            {
-            case EPtiKeyQwerty1:
-                aKey = EPtiKeyQwertyQ;
-                break;
-            case EPtiKeyQwerty2:
-                aKey = EPtiKeyQwertyW;
-                break;
-            case EPtiKeyQwerty3:
-                aKey = EPtiKeyQwertyE;
-                break;
-            case EPtiKeyQwerty4:
-                aKey = EPtiKeyQwertyR;
-                break;
-            case EPtiKeyQwerty5:
-                aKey = EPtiKeyQwertyT;
-                break;
-            case EPtiKeyQwerty6:
-                aKey = EPtiKeyQwertyY;
-                break;
-            case EPtiKeyQwerty7:
-                aKey = EPtiKeyQwertyU;
-                break;
-            case EPtiKeyQwerty8:
-                aKey = EPtiKeyQwertyI;
-                break;
-            case EPtiKeyQwerty9:
-                aKey = EPtiKeyQwertyO;
-                break;
-            case EPtiKeyQwerty0:
-                aKey = EPtiKeyQwertyP;
-                break;
-            default:
-                break;
-            }
-
-        if (aKey == EPtiKeyQwertyE || aKey == EPtiKeyQwertyR || aKey
-                == EPtiKeyQwertyY || aKey == EPtiKeyQwertyU)
-            {
-            ret= ETrue;
-            }
-        else if (iOwner->IsValidChineseInputKeyQwerty(aKey) )
-            {
-        	HandleCaseChange(aKey, ETrue);
-            TPtrC text = ptiengine->AppendKeyPress((TPtiKey)aKey);
-            if (text.Length())
-                {
-                fepMan->NewCharacterL(text);
-                ret = ETrue;
-                }
-            }
-        else if (aKey == EStdKeyBackspace)
-            {
-            iOwner->PtiEngine()->DeleteKeyPress();
-            }
-        else if ( EPtiKeyQwertyComma == aKey )
-        	{
-        		//show the width comma 
-            TPtrC text = ptiengine->AppendKeyPress((TPtiKey)aKey);
-            if (text.Length())
-                {
-                fepMan->NewCharacterL(text);
-                ret = ETrue;
-                }
-        	}
-        }
-    else
-        {
-        ptiengine->SetInputMode( EPtiEngineZhuyinPhraseQwerty );
-        ptiengine->ClearCurrentWord();        
-        if ( !fepMan->IsFlagSet( CAknFepManager::EFlagQwertyShiftMode
-            | CAknFepManager::EFlagShiftKeyDepressed ) )
-            {
-            // the case for Fn mode
-            fepMan->SetFnKeyState( CAknFepFnKeyManager::EFnKeyNext );
-            }
-        ret = TAknFepInputStateInitialChineseGenericQwerty::HandleKeyL( aKey,
-            aLength );
-        }
-    return ret;
-    }
-
-void TAknFepInputStateZhuyinFindMiniQwerty::KeyTimerExpired()
-    {
-
-    if (iData)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        TRAP_IGNORE(fepMan->CommitInlineEditL())
-
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        ptiengine->ClearCurrentWord();
-
-        fepMan->ClearFlag(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);
-        }
-
-    }
-
-#ifdef __HALF_QWERTY_KEYPAD
-
-TAknFepInputStateZhuyinFindHalfQwerty::TAknFepInputStateZhuyinFindHalfQwerty(
-        MAknFepUIManagerStateInterface* aOwner, TInt aMode) :
-    TAknFepInputStateInitialChineseGenericHalfQwerty(aOwner, aMode)
-    {
-    iState = EInitial;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    ptiengine->SetInputMode(EPtiEngineZhuyinPhraseHalfQwerty);
-    ptiengine->SetKeyboardType(iOwner->FepMan()->KeyboardLayout());
-
-    }
-
-TBool TAknFepInputStateZhuyinFindHalfQwerty::HandleKeyL(TInt aKey,
-        TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBool ret = EFalse;
-
-    if (iData && (iData != aKey))
-        {
-        fepMan->CommitInlineEditL();
-        ptiengine->ClearCurrentWord();
-        fepMan->ClearFlag(
-                CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);
-        iOwner->CaseMan()->UpdateCase(ENullNaviEvent);
-        }
-
-    iData = aKey;
-    
-    if (IsValidZhuyinKey(aKey) && CAknFepFnKeyManager::EFnKeyNone
-			== iOwner->FepMan()->FnKeyState() && aLength == EShortKeyPress )
-		{
-		TPtrC text;
-		switch (aKey)
-			{
-			case EPtiKeyQwertyE:
-				aKey = EPtiKey1;
-				break;
-			case EPtiKeyQwertyT:
-                aKey = EPtiKey2;
-                break;
-            case EPtiKeyQwertyU:
-                aKey = EPtiKey3;
-                break;
-            case EPtiKeyQwertyD:
-                aKey = EPtiKey4;
-                break;
-            case EPtiKeyQwertyG:
-                aKey = EPtiKey5;
-                break;
-            case EPtiKeyQwertyJ:
-                aKey = EPtiKey6;
-                break;
-            case EPtiKeyQwertyC:
-                aKey = EPtiKey7;
-                break;
-            case EPtiKeyQwertyB:
-                aKey = EPtiKey8;
-                break;
-            case EPtiKeyQwertyM:
-                aKey = EPtiKey9;
-                break;
-            case EPtiKeyQwertySpace:
-                aKey = EPtiKey0;
-                break;
-			default:
-				break;
-			}
-			ptiengine->SetCase(EPtiCaseLower);
-			ptiengine->SetInputMode(EPtiEngineZhuyinPhraseHalfQwerty);
-			text.Set(ptiengine->AppendKeyPress((TPtiKey)aKey));
-			if (text.Length())
-				{
-				fepMan->StartInlineEditL();
-				fepMan->UpdateInlineEditL(text,0);
-				fepMan->CommitInlineEditL();
-				ret = ETrue;
-				}
-			}
-    else if ( IsValidZhuyinKey(aKey) && aLength == ELongKeyPress)
-    	{
-    	TPtrC text;
-        TBuf<5> allFnMappedCharacters;
-        ptiengine->MappingDataForKey((TPtiKey)aKey, allFnMappedCharacters, EPtiCaseFnLower);
-        text.Set(allFnMappedCharacters);
-        if (text.Length())
-        	{
-        	TBuf<1> chr;   
-            chr.Append( text[0] );
-            fepMan->RemovePreviousCharacterL();
-            fepMan->NewCharacterL(chr);
-            fepMan->CommitInlineEditL();      
-            ptiengine->ClearCurrentWord();                
-            iData = 0;
-        	}                                 
-        ret = ETrue;
-    	}
-    else if (IsValidZhuyinKey(aKey) && aLength == ELongKeyPress
-            && CAknFepFnKeyManager::EFnKeyLock
-                    != iOwner->FepMan()->FnKeyState())
-        {
-        ret = EFalse;
-        }
-    else if (fepMan->EditorHasFreeSpace())
-        {
-        TPtiTextCase caseMode = ptiengine->Case();
-        if (ptiengine->InputMode() != EPtiEngineHalfQwerty)
-            {
-            ptiengine->ClearCurrentWord();
-            ptiengine->SetInputMode(EPtiEngineHalfQwerty);
-            }
-        ptiengine->SetCase(caseMode);
-
-        ret = TAknFepInputStateInitialChineseGenericHalfQwerty::HandleKeyL(
-                aKey, aLength);          
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateZhuyinFindHalfQwerty::KeyTimerExpired
-// 
-// Functions from MPtiObserver interface
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateZhuyinFindHalfQwerty::KeyTimerExpired()
-    {
-    if (iData)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        if (fepMan->EditorHasFreeSpace())
-            {
-                TRAP_IGNORE(fepMan->CommitInlineEditL())
-            }
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        ptiengine->ClearCurrentWord();
-
-        fepMan->ClearFlag(
-                CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);
-        CAknFepFnKeyManager::TFnKeyState fnKeyState = fepMan->FnKeyState();
-        if ( !fepMan->IsFlagSet(CAknFepManager::EFlagLongShiftKeyPress) )
-            {
-            if (fnKeyState == CAknFepFnKeyManager::EFnKeyNext)
-                fepMan->SetFnKeyState(CAknFepFnKeyManager::EFnKeyNone);
-            }
-        }
-    }
-
-TBool TAknFepInputStateZhuyinFindHalfQwerty::IsValidZhuyinKey(TInt aKey)
-    {
-    if (aKey == EPtiKeyQwertyE|| aKey == EPtiKeyQwertyT|| aKey
-            == EPtiKeyQwertyU|| aKey == EPtiKeyQwertyD|| aKey
-            == EPtiKeyQwertyG|| aKey == EPtiKeyQwertyJ|| aKey
-            == EPtiKeyQwertyC|| aKey == EPtiKeyQwertyB|| aKey
-            == EPtiKeyQwertyM|| aKey == EPtiKeyQwertySpace)
-        {
-        return ETrue;
-        }
-    else
-        {
-        return EFalse;
-        }
-
-    }
-#endif //__HALF_QWERTY_KEYPAD
-
-#endif //RD_INTELLIGENT_TEXT_INPUT
-// End of file