fep/aknfep/src/AknFepUiInputStateHalfQwerty.cpp
changeset 36 a7632c26d895
parent 35 0f326f2e628e
child 42 b3eaa440ab06
--- a/fep/aknfep/src/AknFepUiInputStateHalfQwerty.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,668 +0,0 @@
-/*
-* Copyright (c) 2007 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 TAknFepInputStateHalfQwerty methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateHalfQwerty.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepCaseManager.h"
-
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-#include <PtiKeyMappings.h>
-#include <centralrepository.h> 
-#include <AknFepInternalCRKeys.h>       
-  
-
-TAknFepInputStateHalfQwerty::TAknFepInputStateHalfQwerty(MAknFepUIManagerStateInterface* aOwner)
-    :TAknFepInputStateBase(aOwner)
-    {
-    iState = EInitial;
-    iData = 0;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    ptiengine->ClearCurrentWord();
-    ptiengine->SetInputMode(EPtiEngineHalfQwerty);
-    }
-
-TBool TAknFepInputStateHalfQwerty::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    TBool ret = EFalse;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    if( ptiengine == NULL || aKey == EStdKeyNull || 
-    		aKey == EStdKeyF21 || aKey == EKeyF21 || aKey == EKeyF20 || aKey == EKeyF19 ||
-		aKey == EStdKeyLeftArrow || aKey == EStdKeyRightArrow || aKey == EStdKeyDownArrow || aKey == EStdKeyUpArrow )
-        return ret;
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CAknFepFnKeyManager::TFnKeyState fnKeyState  = fepMan->FnKeyState();    
-    TPtiTextCase CurCase = ptiengine->Case();
-
-    if (iData && (iData != aKey) )
-        {
-        ptiengine->CancelTimerActivity();        
-        fepMan->CommitInlineEditL();      
-        ptiengine->ClearCurrentWord();        
-        fepMan->ClearFlag(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);
-        iData = 0;
-        }
-    // if it is a long key press of the punctuation key,
-		 
-	  if( aLength == ELongKeyPress && aKey == EStdKeyFullStop)
-	  	{
-	  	// Commit the current word and then do the usual stuff
-	  	ptiengine->CancelTimerActivity();	  		  	
-	  	}
-	if( !fepMan->EditorHasFreeSpace() && !iData )
-		{
-		// Do not proceed as we have reached max limit and timer has expired
-		ptiengine->CancelTimerActivity();
-		ptiengine->ClearCurrentWord();        
-        fepMan->ClearFlag(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);
-        return 0;
-        }
-    
-    if( EStdKeyEnter == aKey )
-		{
-		// Asynchronous case update.
-		fepMan->SimulateKeyEventL(EKeyF19);
-		return 0;
-		}
-		
-    if (!iOwner->PtiEngine()->IsValidKey((TPtiKey)aKey))
-        {     
-        iData = 0;
-        ChrKeyTimerExpired();
-        fepMan->ClearFlag(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);        
-        ptiengine->CancelTimerActivity();		                
-        return ret;
-        }
-  TPtrC text;
-  /*
-        if ( fepMan->IsOnlyNumericPermitted() )    
-            {
-            ptiengine->CancelTimerActivity();       
-            text.Set(ptiengine->AppendKeyPress((TPtiKey)aKey)); 
-            TPtrC numericChars(KAllAllowedNumericChars, KNumAllowedIdleNumericChars);   
-            if (text.Length() && numericChars.Locate(text[0]) != KErrNotFound)
-                {
-                TBuf<1> chr;    
-                chr.Append(text[0]);
-                fepMan->NewCharacterL(chr);             
-                ptiengine->CancelTimerActivity();        
-                fepMan->CommitInlineEditL();      
-                ptiengine->ClearCurrentWord();                                      
-                }
-            
-            return ETrue;
-            }
- */
-#ifdef __REVERSE_FN_KEY_SUPPORTED
-	TInt origLanguage = ptiengine->CurrentLanguage()->LanguageCode();
-    TPtiEngineInputMode origInputMode = ptiengine->InputMode();
-    TBool languageChanged = EFalse;
-		
-    // In reverse fn key mapping filter the char applicable for
-    // Numeric editor.
-    if( fepMan->IsOnlyNumericPermitted() )
-        {
-        
-        if( EStdKeyLeftFunc == aKey )
-            {
-            TCallBack timerExpire(TimerExpire, this);
-            fepMan->MultitapThroughSCTCharL(timerExpire); 
-            return ETrue;
-            }
-        else 
-            {
-            ChrKeyTimerExpired();
-            }
-        if( !fepMan->IsValidCharForNumericInFnReverseL( aKey, iOwner->PtiEngine()->Case() ) )
-            {
-            if(CheckHasValidNumerKeyMappedL(aKey,languageChanged))
-                return ETrue;
-            }
-        }
-    
-#endif //__REVERSE_FN_KEY_SUPPORTED
-
-
-//    if( aLength == EShortKeyPress )
-        {
-        /*
-        if (aKey == EStdKeySpace && (fnKeyState == CAknFepFnKeyManager::EFnKeyNone))
-            {
-            _LIT(KSpaceCharacter, " ");
-            text.Set(KSpaceCharacter);        
-            }        
-        else*/ 
-   if( aKey == EStdKeySpace && fepMan->FnKeyState() == CAknFepFnKeyManager::EFnKeyNone)
-    		{
-    		_LIT(KSpace," "); 
-			fepMan->StartInlineEditL();
-            fepMan->UpdateInlineEditL(KSpace,0);
-            fepMan->CommitInlineEditL();
-        	return ETrue;        		
-    		}    
-        else
-            {
-            TBool isCharacter = ETrue;
-            if (!iData)
-                {
-                isCharacter = IsCharacterKey(aKey);
-                }
-            HandleCaseChange(aKey, isCharacter);        
-            CurCase = ptiengine->Case();
-
-            if(( (fepMan->IsHybridAplhaEditor() && !fepMan->IsHybridAlphaModeChangedtoAplhanumeric())
-                    || fepMan->IsPhoneNumberEditor() )
-                    && fepMan->FnKeyState() != CAknFepFnKeyManager::EFnKeyNone)
-            {            
-            if( EStdKeyLeftFunc == aKey )
-                {
-                TCallBack timerExpire(TimerExpire, this);
-                fepMan->MultitapThroughSCTCharL(timerExpire); 
-                return ETrue;
-                }
-            else
-                { 
-                ChrKeyTimerExpired();
-                }	
-
-            if(!fepMan->IsPhoneNumberEditor())
-			{
-				TChar validchr;
-				if(!CheckHasValidNumerKeyMappedL(aKey,languageChanged))
-					ptiengine->SetCase((TPtiTextCase)EPtiCaseLower);
-				else
-					return ETrue;
-			}
-            }
-            if(!iData)
-            	{
-            	// this should be called after case change 
-            	// so that the shift state is taken care of
-            	#ifdef __HALF_QWERTY_PREVIEW_PANE
-                	fepMan->PreparePreviewPaneL((TPtiKey)aKey);
-				#endif //__HALF_QWERTY_PREVIEW_PANE
-            	}
-
-            // Over ride the case changes, force to fnLower for 
-            // long key press.
-            if( aLength == ELongKeyPress && aKey == EStdKeyFullStop)
-            	{
-            	iOwner->PtiEngine()->SetCase( EPtiCaseFnLower );
-            	}
-            	            
-            // Get keymapping from PtiEngine.                
-            text.Set(ptiengine->AppendKeyPress((TPtiKey)aKey));
-
-            // send the text to be highlighted here
-            #ifdef __HALF_QWERTY_PREVIEW_PANE
-            	fepMan->ShowPaneL();
-			#endif //__HALF_QWERTY_PREVIEW_PANE            	
-            }
-            
-        if (text.Length() > 0)        
-             {               
-            TBuf<1> chr;    
-            chr.Append(text[0]);
-            if( fepMan->IsOnlyNumericPermitted() 
-            	&& !iOwner->FepMan()->IsValidCharInNumericEditorL(text[0]) )
-            	{
-            	ptiengine->CancelTimerActivity(); 
-            	
-#ifdef __REVERSE_FN_KEY_SUPPORTED            	
-	            if(languageChanged)
-    	            {
-        	        ptiengine->ActivateLanguageL(origLanguage);
-            	    ptiengine->SetInputMode(origInputMode );            		
-                	}            
-#endif                		
-	            if(fepMan->IsHybridAplhaEditor() && !fepMan->IsHybridAlphaModeChangedtoAplhanumeric())
-					ptiengine->SetCase(CurCase);      		
-            	return ETrue;
-            	}            
-            if(fepMan->IsHybridAplhaEditor() && !fepMan->IsHybridAlphaModeChangedtoAplhanumeric()
-                                            && fepMan->FnKeyState() != CAknFepFnKeyManager::EFnKeyNone)
-                {
-                if(!iOwner->FepMan()->IsValidCharInNumericEditorL(text[0]) )
-                    {
-                    ptiengine->CancelTimerActivity(); 
-                                    
-#ifdef __REVERSE_FN_KEY_SUPPORTED               
-                    if(languageChanged)
-                        {
-                        ptiengine->ActivateLanguageL(origLanguage);
-                        ptiengine->SetInputMode(origInputMode );                    
-                        }            
-#endif  
-                    }
-            	}
-            fepMan->NewCharacterL(chr);
-            
-           // if ( aKey == EStdKeyEnter)
-           //     {
-           //     fepMan->CommitInlineEditL();      
-           //     ptiengine->ClearCurrentWord();                
-           //     iData = 0;
-           //     }
-           // else            
-           //     {    
-                iData = aKey;            
-                fepMan->SetFlag(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);                   
-            //    }
-                                  
-            }
-        if((text.Length() > 0) || (IsKeymapped(aKey)))
-            {
-            ret = ETrue;
-            }
-        TBuf<32> mappedCharacters;
-        iOwner->PtiEngine()->MappingDataForKey((TPtiKey)aKey, mappedCharacters, iOwner->PtiEngine()->Case());
-        if( mappedCharacters.Length() < 2 )
-            {
-            ptiengine->CancelTimerActivity(); 
-            if( aLength == EShortKeyPress )
-            	{            	
-            	SetShortKeyPressText(text);
-            	}
-            }
-		if(fepMan->IsHybridAplhaEditor() && !fepMan->IsHybridAlphaModeChangedtoAplhanumeric())
-			ptiengine->SetCase(CurCase);
-    }
-    
-// else
-// //Long key press
-//    {
-//        if (aKey == EStdKeyEnter)
-//            {
-            // PtiEngine does not have mapping for the enter key.
-//            const TText KAknFEPLineFeedSymbol = 0x21B2;
-//            TBuf<1> lineFeed;
-//            lineFeed.Zero();
-//            lineFeed.Append(KAknFEPLineFeedSymbol);
-//            text.Set(lineFeed);
-//            }
-//        else
-//            {
-//            TBool isCharacter = ETrue;
-//            if (!iData)
-//            {
-//            isCharacter = IsCharacterKey(aKey);
-//            }
-//            //HandleCaseChange(aKey, isCharacter);
-//            //Forcing Fn mode for long key press
-//            
-//            /*
-//            //Start of Option-1
-//            ptiengine->SetCase(EPtiCaseFnLower);
-//            text.Set(ptiengine->AppendKeyPress((TPtiKey)aKey));
-//            // End of Option-1
-//            */
-//
-//            //Start of Option-2
-//            //To do: Space key lower case being mapped and removing 
-//            //hard coding of space in UI State.
-//            TBuf<5> allFnMappedCharacters;
-//            ptiengine->MappingDataForKey((TPtiKey)aKey, allFnMappedCharacters, EPtiCaseFnLower);
-//            text.Set(allFnMappedCharacters);
-//            // End of Option-2
-//
-//            }
-//        #ifdef __HALF_QWERTY_PREVIEW_PANE
-//        // in any case hide the preview pane
-//        	fepMan->HidePane();
-//		#endif //__HALF_QWERTY_PREVIEW_PANE
-//            
-//        if (text.Length() > 0)        
-//            {               
-//            TBuf<1> chr;    
-//            chr.Append(text[0]);
-//            fepMan->NewCharacterL(chr);
-//            fepMan->CommitInlineEditL();      
-//            ptiengine->ClearCurrentWord();                
-//            iData = 0;
-//            /*
-//            if (aKey == EStdKeyEnter)
-//                {
-//                fepMan->CommitInlineEditL();      
-//          ptiengine->ClearCurrentWord();                
-//          iLastKey = 0;
-//                }
-//            else            
-//                {    
-//                iLastKey = aKey;            
-//                fepMan->SetFlag(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);                   
-//                }
-//            */
-//                                  
-//            ret = ETrue;
-//            }
-//        else
-//            {
-//            // text.Length is zero. Handle long key.
-//            if( aKey == EStdKeyFullStop )
-//                {
-//                ptiengine->CancelTimerActivity();
-//                }
-//            }
-//        }
-    if( aKey!=EStdKeyBackspace && fnKeyState  != CAknFepFnKeyManager::EFnKeyNone)
-    	return ETrue;
-        
-    if(ptiengine->IsValidKey((TPtiKey)aKey))
-       	ret = ETrue;
-        
-#ifdef __REVERSE_FN_KEY_SUPPORTED
-	if(languageChanged)
-    	{
-        ptiengine->ActivateLanguageL(origLanguage);
-        ptiengine->SetInputMode(origInputMode );            		
-        }    
-#endif  
-  
-    return ret;
-    }
-
-// Functions from MPtiObserver interface
-void TAknFepInputStateHalfQwerty::KeyTimerExpired()
-    {
-    if (iData)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        TRAP_IGNORE(fepMan->CommitInlineEditL())
-
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        ptiengine->ClearCurrentWord();
-        #ifdef __HALF_QWERTY_PREVIEW_PANE
-        	fepMan->HidePane();
-		#endif //__HALF_QWERTY_PREVIEW_PANE
-        iData = 0;
-        fepMan->ClearFlag(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);
-        CAknFepFnKeyManager::TFnKeyState fnKeyState  = fepMan->FnKeyState();    
-        if( !fepMan->IsFlagSet( CAknFepManager::EFlagLongShiftKeyPress ) )
-            {
-            if(fnKeyState == CAknFepFnKeyManager::EFnKeyNext)
-                fepMan->SetFnKeyState(CAknFepFnKeyManager::EFnKeyNone);
-            }
-        }  
-    }
-    
-void TAknFepInputStateHalfQwerty::HandleCaseChange(TInt /*aKey*/, TBool aIsCharacter)
-    {
-    // Punctuation key multitapping should not change case
-    if( iData )
-        return;
-    
-    TPtiTextCase caseMode = EPtiCaseLower;
-
-    if (aIsCharacter)
-        {
-        if( iData == 0 || !( iOwner->FepMan()->IsOnlyNumericPermitted()  ) )
-            {
-            // use the Edwin case only when timer expires
-            // To handle cases like insert fn character empty editor
-            // followed by alpa character
-            switch(iOwner->CaseMan()->CurrentCase())
-               {
-                case EAknEditorLowerCase:
-                    caseMode = EPtiCaseLower;
-                    break;            
-                case EAknEditorTextCase:
-                case EAknEditorUpperCase:
-                   caseMode = EPtiCaseUpper;
-               default:
-                   break;
-               }
-            }
-        else
-            {
-            // user is still multitapping, use the existing PtiEngine case
-            caseMode = iOwner->PtiEngine()->Case();
-            }
-        }
-        
-    TPtiTextCase shiftedCase = caseMode;
-    
-    TPtiTextCase curCase = iOwner->PtiEngine()->Case();
-    if(curCase == EPtiCaseFnUpper || curCase == EPtiCaseFnLower)
-        return;
-
-    if ( iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) && 
-        ( !aIsCharacter|| iOwner->CaseMan()->IsAbleChangeCase() ) )
-        {
-        // Case mode is changed to opposite because shift key is/was pressed and
-        // in case of character key case changes are allowed. In case of
-        // number or special key, shift mode is used always when 
-        // shift key is pressed
-        
-                
-        // clear this flag so that the shift key mode gets reset 
-        // when shift key up event is received
-        
-        iOwner->FepMan()->ClearFlag(CAknFepManager::EFlagNoActionDuringShiftKeyPress);
-        
-		// Do not toggle case while multitapping
-        if( !iData )
-        	{
-        	switch ( caseMode )
-	            {
-	            case EPtiCaseUpper:
-	                shiftedCase = EPtiCaseLower;
-	                break;
-	            case EPtiCaseLower:
-	                shiftedCase = EPtiCaseUpper;
-	                break;
-	            default:
-	                break;
-	            }
-        	}
-        }
-        
-    if ( iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed) )
-        {
-        // Chr key is pressed down. Chr mode is used.
-        if (shiftedCase == EPtiCaseLower)
-            {
-            shiftedCase = EPtiCaseChrLower;
-            }
-        else if (shiftedCase == EPtiCaseUpper)
-            {
-            shiftedCase = EPtiCaseChrUpper;
-            }
-        }
-    iOwner->FepMan()->ClearFlag( CAknFepManager::EFlagNoActionDuringChrKeyPress );
-    iOwner->PtiEngine()->SetCase(shiftedCase);
-    
-    }
-
-TBool TAknFepInputStateHalfQwerty::IsCharacterKey(const TInt aKey)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();       
-    // Max length doesn't matter because we'll need only the first character.    
-    TBuf<KMaxName> lowerdata;   
-    
-    ptiengine->MappingDataForKey((TPtiKey)aKey, lowerdata, EPtiCaseLower);        
-    if (lowerdata.Length() > 0)
-        {
-        TChar lower = lowerdata[0];        
-        TUint upper = lower.GetUpperCase();
-    
-        if ( TUint(lower) != upper )
-            {
-            return ETrue;   
-            }
-        }
-   
-     return EFalse;
-    }       
-TBool TAknFepInputStateHalfQwerty::TryGetValidCharForKey(const TInt& aKey, TChar& aChar)
-    {    
-    if( ! TryGetValidCharForKeyAndCase( aKey, aChar, EPtiCaseFnLower) )
-        {
-        if(! TryGetValidCharForKeyAndCase( aKey, aChar, EPtiCaseUpper))
-            {
-            if(! TryGetValidCharForKeyAndCase( aKey, aChar, EPtiCaseLower))
-                {
-                return EFalse;
-                }
-            }
-        }
-    return ETrue;
-    }
-TBool TAknFepInputStateHalfQwerty::TryGetValidCharForKeyAndCase(const TInt& aKey, TChar& aChar, TPtiTextCase aCase)
-    {
-    TBuf<KMaxName> mappedCharacters;
-
-    iOwner->PtiEngine()->MappingDataForKey((TPtiKey)aKey, mappedCharacters, aCase);        
-    TRAP_IGNORE(
-    for (TInt i = 0; i < mappedCharacters.Length(); i++ )
-        {
-        if( iOwner->FepMan()->IsValidCharInNumericEditorL( mappedCharacters[i] ) )
-            {
-            aChar = mappedCharacters[i];
-            return ETrue;
-            } 
-        }); 
-    return EFalse;
-    }
-TInt TAknFepInputStateHalfQwerty::TimerExpire(TAny* aPtr)
-    {
-    reinterpret_cast<TAknFepInputStateHalfQwerty*>(aPtr)->ChrKeyTimerExpired();
-    return 1;
-    }
-TInt TAknFepInputStateHalfQwerty::ChrKeyTimerExpired()
-    {
-    if(iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction))
-        {
-        // this function is only called for number only editors 
-
-        TRAP_IGNORE(iOwner->FepMan()->CommitInlineEditL());
-        }    
-    return 1;
-    }
-
-
-TBool TAknFepInputStateHalfQwerty::IsKeymapped(TInt aKey)
-    {
-    TBuf<20> mapData;
-    TBool ret = EFalse;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    for(TInt count=0;count<EPtiCaseMax;count++)
-        {
-        ptiengine->MappingDataForKey(static_cast<TPtiKey>(aKey), mapData, static_cast<TPtiTextCase> (count)); 
-        if(mapData.Length())
-            {
-            ret = ETrue;
-            break;
-            }
-        }
-    return ret;
-    }
-
-TBool TAknFepInputStateHalfQwerty::CheckHasValidNumerKeyMappedL(TInt aKey, TBool &aLangChanged)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TInt origLanguage = ptiengine->CurrentLanguage()->LanguageCode();
-    TPtiEngineInputMode origInputMode = ptiengine->InputMode();
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    
-    //TBool languageChanged = EFalse;
-    
-                TChar chr;
-
-                if( ! TryGetValidCharForKey(aKey, chr) )
-                    {
-                    // If the key in not valid char in the current input language in Fn reverse mode,
-                    // then we will check if against English language. And if its valid then we will
-                    // insert the char based out of key for English input language and revert back 
-                    // the change in input language at the end.
-
-                    if(ptiengine->CurrentLanguage()->LanguageCode() == ELangEnglish)
-                        {
-                        if(fepMan->IsOnlyNumericPermitted())
-                            return ETrue;
-                        else
-                            return EFalse;
-                        }
-
-                    aLangChanged = ETrue;
-                    ptiengine->ActivateLanguageL(ELangEnglish);
-                    ptiengine->SetInputMode(EPtiEngineHalfQwerty); 
-
-                    if( !fepMan->IsValidCharForNumericInFnReverseL(aKey, iOwner->PtiEngine()->Case()) )
-                        {
-                        if( ! TryGetValidCharForKey(aKey, chr) )
-                            {
-                            ptiengine->ActivateLanguageL(origLanguage);
-                            ptiengine->SetInputMode(origInputMode );  
-                            if(fepMan->IsHybridAplhaEditor() && !fepMan->IsHybridAlphaModeChangedtoAplhanumeric())    
-                                return EFalse;
-                            else
-                                return ETrue;
-                            }
-                        else
-                            {
-                            if(aLangChanged)
-                                {
-                                ptiengine->ActivateLanguageL(origLanguage);
-                                ptiengine->SetInputMode(origInputMode );                    
-                                }
-
-                            TBuf<1> buf;    
-                            buf.Append(chr);
-                            fepMan->NewCharacterL(buf);
-                            fepMan->CommitInlineEditL();      
-                            ptiengine->ClearCurrentWord();                
-                            iData = 0;
-                            ptiengine->CancelTimerActivity();
-                            return ETrue;                       
-                            }
-                        }
-                    }
-                else
-                    {
-                    if(aLangChanged)
-                        {
-                        ptiengine->ActivateLanguageL(origLanguage);
-                        ptiengine->SetInputMode(origInputMode );                    
-                        }
-
-                    TBuf<1> buf;    
-                    buf.Append(chr);
-                    fepMan->NewCharacterL(buf);
-                    fepMan->CommitInlineEditL();      
-                    ptiengine->ClearCurrentWord();                
-                    iData = 0;
-                    ptiengine->CancelTimerActivity();
-                    return ETrue;
-                    }
-                
-    
-    return EFalse;
-    }	
-// End of file