fep/aknfep/src/AknFepUiInputStateInitialKoreanMultitap.cpp
changeset 36 a7632c26d895
parent 35 0f326f2e628e
child 42 b3eaa440ab06
--- a/fep/aknfep/src/AknFepUiInputStateInitialKoreanMultitap.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,213 +0,0 @@
-/*
-* 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 TAknFepInputStateInitialKoreanMultitap methods.
-*
-*/
-
-#include "AknFepUiInputStateInitialKoreanMultitap.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepCaseManager.h"
-#include "AknFepUiIndicInputManager.h"
-#include "AknFepManager.h"
-
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-
-TAknFepInputStateInitialKoreanMultitap::TAknFepInputStateInitialKoreanMultitap(MAknFepUIManagerStateInterface* aOwner)
-    :TAknFepInputStateInitialMultitapBase(aOwner)
-    {
-    iState = EInitial; 
-    
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    TPtiTextCase caseMode = ptiengine->Case();
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-     TRAP_IGNORE(ptiengine->ActivateLanguageL(ELangKorean, EPtiEngineMultitappingKorean))
-    ptiengine->SetInputMode(EPtiEngineMultitappingKorean);
-#else
-     TRAP_IGNORE(ptiengine->ActivateLanguageL(ELangKorean, EPtiEngineMultitapping))
-    ptiengine->SetInputMode(EPtiEngineMultitapping);
-#endif //RD_INTELLIGENT_TEXT_INPUT
-
-    ptiengine->SetCase(caseMode);
-    }
-
-TBool TAknFepInputStateInitialKoreanMultitap::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBool ret = ETrue;
-       
-    if(aLength == EShortKeyPress)
-        {
-                     
-       	if(aKey == EKeyBackspace)
-        	{
-        	// Narat Geul engine tries first to disassemble hangul to jamos. if disassembly is not possible,
-        	// then clear character. 
-        	if (fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-        		{
-        		TPtrC newText = ptiengine->DeleteKeyPress();
-       			fepMan->UpdateInlineEditL(newText, newText.Length());
-       			
-        		if (newText.Length() == 0)
-        			{
-	        		fepMan->CancelInlineEdit();
-   		     		ptiengine->ClearCurrentWord();
-        			}	      	
-        		}
-        	else
-        		{
-        		ret = EFalse;	
-        		}
-        	}
-        else
-            {
-	
-            if(aKey == EKeyLeftArrow ||
-            	aKey == EKeyRightArrow ||
-            	aKey == EKeyDownArrow ||
-            	aKey == EKeyUpArrow)
-            	{
-               	ret = EFalse;            
-            	}
-            else
-            	{
-            	if (!(fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction)))
-                	{ // 'new' inline edit
-             	  	ptiengine->ClearCurrentWord();
-                	fepMan->StartInlineEditL();
-                	fepMan->SetInlineEditingCursorVisibilityL(ETrue);
-                	}
-                      	   	             
-            	TPtrC aText = ptiengine->AppendKeyPress((TPtiKey)aKey);
-            	fepMan->UpdateInlineEditL(aText, aText.Length());	
-   						
-            	// Force commit	when buffer length is 511. Needs to be commited in order to 
-            	// prevent ptiengines iTextBuffer overflow. Even though it is very unlikely
-            	// case
-            	if(aText.Length() >= 254)
-            		{
-            		if (CommitOrNot(aText.Right(CAknFepManager::ESingleCharacter), aKey))
-            			{
-            			TPtrC text = ptiengine->DeleteKeyPress();
-            			fepMan->UpdateInlineEditL(text, text.Length());
-            			fepMan->CommitInlineEditL();
-            			
-            			ptiengine->ClearCurrentWord();
-            			
-            			TPtrC newText = ptiengine->AppendKeyPress((TPtiKey)aKey);			
-            			fepMan->StartInlineEditL();
-            			fepMan->UpdateInlineEditL(newText, newText.Length());	
-            			}
-            		else if(aText.Length() >= 255)
-            			{// force commit 
-            			fepMan->CommitInlineEditL();	
-            			}
-            		}
-				else
-					{
-					fepMan->UpdateInlineEditL(aText, aText.Length());	
-					}           		
-            	}                                                              	  	                    				
-          	}    
-        }
-    else // long keypress
-        {  
-          
- 	    if (aKey == EPtiKeyStar)
-            {
-
-           	ptiengine->DeleteKeyPress();
-            TPtrC text = ptiengine->PreviousCandidate();
-            fepMan->UpdateInlineEditL(text, text.Length());
-            fepMan->CommitInlineEditL();
-            ptiengine->ClearCurrentWord();
-
-            fepMan->LaunchSelectModeMenuL();               
-            }
-		else
-			{
-			// Insert number through long key press.			                  
-        	if (aKey != EKeyBackspace)
-        		{
-        		if (!fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-        			{
-        			// No edit transaction going on, we have ended here because of long
-        			// key press created editor on UI or some other similar non-standard situation.
-        			// We can't handle key press, so just consume it.
-        			return ETrue; 			
-        			}
-				
-			 	TPtrC text = ptiengine->PreviousCandidate();
-           	 	fepMan->UpdateInlineEditL(text, text.Length());
-               	fepMan->CommitInlineEditL();
-               	ptiengine->ClearCurrentWord();
-       			ret = EFalse;
-        		}
-        	else if (aKey == EKeyBackspace)
-        		{
-        		if (fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-        			{
-					fepMan->CommitInlineEditL();
-					ptiengine->ClearCurrentWord();
-					fepMan->TryCloseUiL();
-        			}
-        		ret = EFalse;	
-        		}
-        	else
-        		{
-        		ret = EFalse;
-        		}       		
-			}
-		
-        } 
-    return ret;
-    } 
-     
-// Decides wheather text should be commited or not. Makes comparison between latest key input
-// and "seed" jamos. if latest input match with one of "seed" jamos and star or hash key cannot make
-// any changes to input, then commit.
-// NOTE; the "seed" jamos are characters that are printed on keymat. Narat geul engine compiles all
-// the hanguls from 12 jamos.  
-TBool TAknFepInputStateInitialKoreanMultitap::CommitOrNot(TPtrC aData, TInt aKey)
-	{
-	TBool commit = EFalse;
-	TBuf<CAknFepManager::EMaximumFepWordLength> mappings;
-	TInt len;
-	
-	CPtiEngine* ptiengine = iOwner->PtiEngine();	
-	MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-	
-	ptiengine->MappingDataForKey((TPtiKey)aKey, mappings, ptiengine->Case());
-	len = mappings.Length();
-	
-	for (TInt i = 0; i < len; i++ )
-		{
-		if(aData.Compare(mappings.Left(i + 1)) == 0)
-			{
-			commit = ETrue;
-			break;
-			}
-		}
-		
-	return commit;
-	}
-
-// End of file