fep/aknfep/src/AknFepManager.cpp
branchRCL_3
changeset 3 f5a1e66df979
parent 0 eb1f2e154e89
child 5 a47de9135b21
equal deleted inserted replaced
0:eb1f2e154e89 3:f5a1e66df979
  3359          (keyScanCode == EPtiKeyQwertyHash)  ||
  3359          (keyScanCode == EPtiKeyQwertyHash)  ||
  3360          (keyScanCode == EPtiKeyQwertySlash) ||
  3360          (keyScanCode == EPtiKeyQwertySlash) ||
  3361          (keyScanCode == EPtiKeyQwertyApostrophe) )
  3361          (keyScanCode == EPtiKeyQwertyApostrophe) )
  3362          && !( iFepPluginManager && iFepPluginManager->EnableITIOnFSQ() ) )          
  3362          && !( iFepPluginManager && iFepPluginManager->EnableITIOnFSQ() ) )          
  3363         {
  3363         {
  3364         SendEventsToPluginManL( EPluginCloseMode, EFalse );
  3364         //SendEventsToPluginManL( EPluginCloseMode, EFalse );
  3365         //iFepPluginManager->ClosePluginInputModeL(ETrue);
  3365         //iFepPluginManager->ClosePluginInputModeL(ETrue);
  3366         }
  3366         }
  3367     else if( keyHandled )
  3367     else if( keyHandled )
  3368         {
  3368         {
  3369         //for QWERTY, number only, the number is send to editor
  3369         //for QWERTY, number only, the number is send to editor
  3726                 SendEventsToPluginManL( EPluginEditorActivate );
  3726                 SendEventsToPluginManL( EPluginEditorActivate );
  3727                 break;
  3727                 break;
  3728             case EAknClosePenInputRequest:
  3728             case EAknClosePenInputRequest:
  3729                 if ( iFepPluginManager )
  3729                 if ( iFepPluginManager )
  3730                     {
  3730                     {
       
  3731                     // Fix bug ou1cimx1#225126, editor team asks that the parameter is EFalse.
  3731                     iFepPluginManager->ClosePluginInputModeL( EFalse );
  3732                     iFepPluginManager->ClosePluginInputModeL( EFalse );
  3732                     }
  3733                     }
  3733                 break;
  3734                 break;
  3734             case EAknEdwinStatePromptUpdate:
  3735             case EAknEdwinStatePromptUpdate:
  3735                 SendEventsToPluginManL( EPluginPromptChanged ); 
  3736                 SendEventsToPluginManL( EPluginPromptChanged ); 
  3750 
  3751 
  3751             default:
  3752             default:
  3752                 break;
  3753                 break;
  3753             }
  3754             }
  3754         }
  3755         }
       
  3756 #ifdef RD_SCALABLE_UI_V2
       
  3757     else
       
  3758         {
       
  3759         // Close touch input when inMenu is opened. When inMenu is opened, 
       
  3760         // editor loses focus, and inMenu gets focus. After touch input has 
       
  3761         // been force closed, menu state should be restored and last focused
       
  3762         // window ,which launches touch input, should be removed.
       
  3763         if( aEventType == EAknClosePenInputRequest  
       
  3764                 && iFepPluginManager  
       
  3765                 && iFepPluginManager->IsInMenuOpen() )
       
  3766             {
       
  3767             CCoeEnv* env = CCoeEnv::Static();
       
  3768             TKeyEvent keyEvent = {EKeyCBA2, EStdKeyNull, 0, 0};
       
  3769             env->SimulateKeyEventL(keyEvent,EEventKey);            
       
  3770             iFepPluginManager->ResetMenuState();            
       
  3771             iFepPluginManager->RemoveLastFocusedWinFromOpenList();
       
  3772             // Fix bug ou1cimx1#225126, editor team asks that the parameter is EFalse.
       
  3773             iFepPluginManager->ClosePluginInputModeL( EFalse );
       
  3774             }
       
  3775         }
       
  3776 #endif // RD_SCALABLE_UI_V2  
  3755     }
  3777     }
  3756 
  3778 
  3757 
  3779 
  3758 CAknExtendedInputCapabilities::TEditorType CAknFepManager::EditorType() const
  3780 CAknExtendedInputCapabilities::TEditorType CAknFepManager::EditorType() const
  3759     {
  3781     {
  4065 void CAknFepManager::ExitPluginSpellModeByOkL()
  4087 void CAknFepManager::ExitPluginSpellModeByOkL()
  4066     {
  4088     {
  4067 #ifdef RD_SCALABLE_UI_V2        		    
  4089 #ifdef RD_SCALABLE_UI_V2        		    
  4068     if (iFepPluginManager->IsSpellVisible())
  4090     if (iFepPluginManager->IsSpellVisible())
  4069         {
  4091         {
       
  4092         CommitInlineEditL();
  4070         HBufC* spell = iFepPluginManager->SpellTextInput();
  4093         HBufC* spell = iFepPluginManager->SpellTextInput();
  4071         
  4094         
  4072         iFepPluginManager->SetITUTSpellingStateL(EFalse); 
  4095         iFepPluginManager->SetITUTSpellingStateL(EFalse); 
  4073         iFepPluginManager->DestroySpellEditor();
  4096         iFepPluginManager->DestroySpellEditor();
  4074         
  4097         
  8718         iSpellInitText = NULL;
  8741         iSpellInitText = NULL;
  8719 	    iSpellInitText = aInitialText.AllocL();
  8742 	    iSpellInitText = aInitialText.AllocL();
  8720 	    iSpellInitCurSel = aTextSpanToReplace;
  8743 	    iSpellInitCurSel = aTextSpanToReplace;
  8721 
  8744 
  8722         iFepPluginManager->SetCaseUpdatesSupressed(isCaseUpdatesSupressed);
  8745         iFepPluginManager->SetCaseUpdatesSupressed(isCaseUpdatesSupressed);
  8723         iFepPluginManager->SetITUTSpellingStateL(ETrue);    
  8746 		//add to avoid text update late when open spell.
       
  8747         //iFepPluginManager->SetITUTSpellingStateL(ETrue);    
  8724         iFepPluginManager->SetCursorSelection(aTextSpanToReplace);
  8748         iFepPluginManager->SetCursorSelection(aTextSpanToReplace);
  8725         CleanupStack::PopAndDestroy();
  8749         CleanupStack::PopAndDestroy();
  8726         
  8750         
  8727         return;
  8751         return;
  8728         }
  8752         }
 12009     	SetCcpuFlag(ECcpuStataCommitPredictiveWord);
 12033     	SetCcpuFlag(ECcpuStataCommitPredictiveWord);
 12010     	// Addition for ITI on FSQ
 12034     	// Addition for ITI on FSQ
 12011     	// When FSQ is opened with the ITI-supported input language, 
 12035     	// When FSQ is opened with the ITI-supported input language, 
 12012     	// if switch to another language which doesn't support ITI, such as Korean,
 12036     	// if switch to another language which doesn't support ITI, such as Korean,
 12013     	// need to restore the previous configuration on FEP
 12037     	// need to restore the previous configuration on FEP
 12014         if ( iFepPluginManager )
 12038         if ( iFepPluginManager && !iFepPluginManager->IsSupportITIOnFSQ() )
 12015         	{    	
 12039         	{    	
 12016         	iFepPluginManager->ResetItiStateL();
 12040         	iFepPluginManager->ResetItiStateL();
 12017         	}    	
 12041         	}    	
 12018     	if ( !TryChangeModeL(NewInputModeAfterLanguageChange()) )
 12042     	if ( !TryChangeModeL(NewInputModeAfterLanguageChange()) )
 12019 	        {
 12043 	        {
 15566     TInt index = 0;
 15590     TInt index = 0;
 15567     SetFlag( EFlagForegroundUIComponentVisible );
 15591     SetFlag( EFlagForegroundUIComponentVisible );
 15568     CleanupStack::Pop( icons );	// iUiInterface->LaunchListPopupL takes ownership immediately
 15592     CleanupStack::Pop( icons );	// iUiInterface->LaunchListPopupL takes ownership immediately
 15569 #ifdef RD_SCALABLE_UI_V2 
 15593 #ifdef RD_SCALABLE_UI_V2 
 15570     /* tp teleca fix 17.9.2009 to IKIM-7VK8GG*/
 15594     /* tp teleca fix 17.9.2009 to IKIM-7VK8GG*/
 15571     /*if( iFepFullyConstructed && iFepPluginManager)
 15595     if( iFepFullyConstructed && iFepPluginManager)
 15572             {
 15596             {
 15573             iFepPluginManager->SetMenuState();            
 15597             iFepPluginManager->SetMenuState();            
 15574             }*/
 15598             }
 15575     // tp teleca fix end
 15599     // tp teleca fix end
 15576 #endif              
 15600 #endif              
 15577     // Fire up the dialog
 15601     // Fire up the dialog
 15578 #ifdef RD_SCALABLE_UI_V2
 15602 #ifdef RD_SCALABLE_UI_V2
 15579     iCancelPopupInQwerty = aLaunchedByTouchWin;
 15603     iCancelPopupInQwerty = aLaunchedByTouchWin;
 20595     aKey = 0;
 20619     aKey = 0;
 20596 	
 20620 	
 20597 	if (!iPtiEngine)
 20621 	if (!iPtiEngine)
 20598 		return;
 20622 		return;
 20599 		
 20623 		
 20600     CPtiCoreLanguage* lang = (CPtiCoreLanguage*)iPtiEngine->GetLanguage(iLanguageCapabilities.iInputLanguageCode);
 20624     CPtiCoreLanguage* lang = (CPtiCoreLanguage*)iPtiEngine->GetLanguage(iLanguageCapabilities.iInputLanguageCode);    
 20601     TPtiEngineInputMode inputMode = iPtiEngine->InputMode();
       
 20602     
       
 20603     if (!lang)
 20625     if (!lang)
 20604         return;
 20626         return;
 20605 
 20627 
 20606     const TBool vietnamese = (iLanguageCapabilities.iInputLanguageCode == ELangVietnamese);
 20628     const TBool vietnamese = (iLanguageCapabilities.iInputLanguageCode == ELangVietnamese);
 20607 
 20629     
 20608     MPtiKeyMappings* map;
 20630     MPtiKeyMappings* map;
 20609     if (inputMode == EPtiEngineQwerty || inputMode == EPtiEngineQwertyPredictive)
 20631     TPtiKeyboardType keyboardLayout = KeyboardLayout();
 20610         {
 20632 	if ( keyboardLayout == EPtiKeyboardQwerty4x12 
 20611         map = lang->GetQwertyKeymappings();
 20633 		 || keyboardLayout == EPtiKeyboardQwerty4x10
 20612         }
 20634 		 || keyboardLayout == EPtiKeyboardQwerty3x11
 20613     else if( inputMode == EPtiEngineHalfQwerty || inputMode == EPtiEngineHalfQwertyPredictive )
 20635 		 || keyboardLayout == EPtiKeyboardCustomQwerty )
 20614         {
 20636 		{
 20615         map = lang->GetHalfQwertyKeymappings();
 20637 		map = lang->GetQwertyKeymappings();
 20616         }
 20638 		}
 20617     else    
 20639 	else if( keyboardLayout == EPtiKeyboardHalfQwerty )
 20618         {
 20640 		{
 20619         map = lang->GetKeymappings();
 20641 		map = lang->GetHalfQwertyKeymappings();
 20620         }
 20642 		}
       
 20643 	else    
       
 20644 		{
       
 20645 		map = lang->GetKeymappings();
       
 20646 		}          
 20621 
 20647 
 20622     if (!map)
 20648     if (!map)
 20623         {
 20649         {
 20624         return;
 20650         return;
 20625         }   
 20651         }   
 20626 
 20652 
 20627     TUint16 ch;
 20653     TUint16 ch;
 20628     ch = (TUint16)map->KeyForCharacter(aChar); 
 20654     ch = (TUint16)map->KeyForCharacter(aChar); 
 20629     if (!ch && vietnamese)
 20655     if ( !ch && vietnamese 
       
 20656          && !( iFepPluginManager && iFepPluginManager->IsSupportITIOnFSQ() ) )
 20630         {
 20657         {
 20631         // This may be Vietnamese tone mark or an accented character which isn't listed
 20658         // This may be Vietnamese tone mark or an accented character which isn't listed
 20632         // in keymappings. 
 20659         // in keymappings. 
 20633         ch = RemapVietnameseAccentedCharacter(aChar);
 20660         ch = RemapVietnameseAccentedCharacter(aChar);
 20634         }
 20661         }