fep/aknfep/src/AknFepUiInputStateInitialVietnameseMultitap.cpp
changeset 40 2cb9bae34d17
parent 31 f1bdd6b078d1
child 49 37f5d84451bd
--- a/fep/aknfep/src/AknFepUiInputStateInitialVietnameseMultitap.cpp	Tue Jul 06 14:38:41 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,228 +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 TAknFepInputStateInitialVietnameseMultitap methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUIInputStateInitialVietnameseMultitap.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-
-#include "AknFepCaseManager.h"
-#include "AknFepVietnameseToneManager.h"
-
-#include <uikon.hrh>
-
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-#include <aknSctDialog.h>
-#include <avkon.rsg>
-#include <aknfep.rsg>
-
-#include "AknFepUiManagerWestern.h"
-
-TAknFepInputStateInitialVietnameseMultitap::
-TAknFepInputStateInitialVietnameseMultitap(MAknFepUIManagerStateInterface* aOwner)
-:TAknFepInputStateInitialMultitapBase(aOwner)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TPtiTextCase caseMode = ptiengine->Case();
-    ptiengine->SetCase(caseMode);
-    }
-
-TBool TAknFepInputStateInitialVietnameseMultitap::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    TBool bHandled = EFalse;
-
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CAknFepUIManagerWestern* uiMan = static_cast<CAknFepUIManagerWestern*>(iOwner);
-    CAknFepVietnameseToneManager* toneMgr = uiMan->VietnameseToneManager();
-    CPtiEngine* ptiEng = fepMan->PtiEngine();
-
-    toneMgr->SetFepManager(fepMan);
-
-    if (aKey == EPtiKeyStar)
-        {
-        if (aLength == EShortKeyPress)
-            {
-            if (!toneMgr->IsLooping())
-                {
-                // Start looping status
-                if (toneMgr->StartToneMarkLooping())
-                    {
-                    // Save the vowel for undo back deletion
-                    toneMgr->SetDeletedVowel(fepMan->PreviousChar());
-                    
-                    ((CAknFepManager*)fepMan)->RemovePreviousCharacterL();    // remove previous char
-                    }
-                }
-            
-            // Process the interim looping state
-            if (toneMgr->IsLooping())
-                {
-                // Get current tone mark
-                TText toneVowel = toneMgr->GetVowelWithToneMark();
-                toneMgr->IncrementToneMark();
-
-                TBuf<CAknFepManager::ESingleCharacter> aChr;
-                aChr.Append(toneVowel);
-
-                // Update inline character(s)
-                fepMan->CancelInlineEdit();
-                fepMan->NewCharacterL(aChr);
-
-                // Reset the engine timer so that we can get timer expired message
-                // We send the * key, and clear it in the next loop
-                ptiEng->ClearCurrentWord();
-                ptiEng->AppendKeyPress((TPtiKey)aKey);
-
-                bHandled = ETrue;
-                
-                if (fepMan->EditSubmenuInUse())
-                    {
-                    // Looping tone marks, supress edit-menu.
-                    fepMan->SetCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);
-                    }
-                }
-            }
-        else if (aLength == ELongKeyPress)
-            {
-            // Reset the key event so that the TAknFepInputStateInitialMultitapBase will
-            // parse this event as a short key event, default reaction is to launch SCT
-            aLength = EShortKeyPress;
-
-            if (toneMgr->IsLooping())
-                {
-                // Remove the previous EShortKeyPress message
-                fepMan->CancelInlineEdit();
-                toneMgr->StopToneMarkLooping();
-
-                // Undo the backdeletion
-                TText bkChr = toneMgr->GetDeletedVowel();
-
-                TBuf<CAknFepManager::ESingleCharacter> aChr;
-                aChr.Append(bkChr);
-
-                fepMan->NewCharacterL(aChr);
-                fepMan->CommitInlineEditL();
-                
-               	if (fepMan->EditSubmenuInUse() && fepMan->IsAbleToLaunchSCT())
-        		    {
-        		    fepMan->LaunchSpecialCharacterTableL();
-        		    return ETrue;
-        		    }                         
-                }
-			else if (fepMan->EditSubmenuInUse())
-				{
-				aLength = ELongKeyPress;
-				}
-            }
-        }
-    
-    // Implementation for the Vietnamese back deletion
-    if (aKey == EKeyBackspace)
-        {
-        TBuf<2> newText;
-        // Get the last character from the current editor
-        TText prevChar = fepMan->PreviousChar();
-        
-        // Judge if the last character needs to be converted
-        if ( NeedsVietnameseBkDelSupport(prevChar, newText) )
-            {
-            // Delete the prev character and send the new character to editor
-            ((CAknFepManager*)fepMan)->RemovePreviousCharacterL();
-            fepMan->NewCharacterL(newText);
-            fepMan->CommitInlineEditL();
-			// Stop looping for backspace operation
-			if( toneMgr->IsLooping() )
-			    {
-				toneMgr->StopToneMarkLooping();
-				}
-            return ETrue;
-            }
-        else
-            {
-            if ( prevChar )
-                {
-                ((CAknFepManager*)fepMan)->RemovePreviousCharacterL();
-                }
-            else
-                {
-                return EFalse;
-                }
-                
-            bHandled = EFalse;
-            }
-        }
-    
-    if(!bHandled && toneMgr->IsLooping())
-    	{
-    	toneMgr->StopToneMarkLooping();
-    	}
-    
-    return bHandled ? ETrue : TAknFepInputStateInitialMultitapBase::HandleKeyL(aKey, aLength);
-    }
-
-void TAknFepInputStateInitialVietnameseMultitap::KeyTimerExpired()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CAknFepUIManagerWestern* uiMan = static_cast<CAknFepUIManagerWestern*>(iOwner);
-    CAknFepVietnameseToneManager* toneMgr = uiMan->VietnameseToneManager();  
-    CPtiEngine* ptiEng = fepMan->PtiEngine();
-
-    // Try commit inline editting and clean up for future input attemps
-    TRAP_IGNORE(fepMan->CommitInlineEditL());
-
-    toneMgr->StopToneMarkLooping();
-    ptiEng->ClearCurrentWord();
-    }
-    
-TBool TAknFepInputStateInitialVietnameseMultitap::NeedsVietnameseBkDelSupport(
-                                         TText aGlyphToDelete, TDes& aNewText)
-    {
-    TBool needBkDelSupport(EFalse);
-
-    const TInt KMatrixColumn = sizeof(VietToneMatrix) / sizeof(TText) / KNumberOfToneMarks;
-
-    aNewText.Zero();
-
-    // Loop of the ToneMatrix columns starts from 1 because the first column of the ToneMatrix stores the vowels 
-    for (TUint i = 1; (i < KMatrixColumn) && (!needBkDelSupport); ++i)
-        {
-        for (TUint j = 0; j < KNumberOfToneMarks; ++j)
-            {
-            if (VietToneMatrix[i][j] == aGlyphToDelete)
-                {
-                needBkDelSupport = ETrue;
-                aNewText.Append(VietVowelList[i - 1]);
-                break;
-                }
-            }
-        }
-
-    return needBkDelSupport;
-    }
-
-// End of file