textinput/peninputgenericitut/src/peninputgenericitutlayout.cpp
branchRCL_3
changeset 10 6defe5d1bd39
parent 8 6ceef9a83b1a
child 22 1bbdde98cc2d
equal deleted inserted replaced
8:6ceef9a83b1a 10:6defe5d1bd39
    44 #include "peninputitutchnuimgr.h"
    44 #include "peninputitutchnuimgr.h"
    45 #include "peninputitutwesternuimgr.h"
    45 #include "peninputitutwesternuimgr.h"
    46 #include "peninputgenericitutconverter.h"
    46 #include "peninputgenericitutconverter.h"
    47 #include "peninputgenericitutwindowmanager.h"
    47 #include "peninputgenericitutwindowmanager.h"
    48 
    48 
       
    49 const TInt KChineseSpell = 100;
       
    50 const TInt KWesternSpell = 101;
    49 
    51 
    50 
    52 
    51 CGenericItutUiLayout* CGenericItutUiLayout::NewL(MLayoutOwner* aLayoutOwner,
    53 CGenericItutUiLayout* CGenericItutUiLayout::NewL(MLayoutOwner* aLayoutOwner,
    52                                                  const TAny* aInitData)
    54                                                  const TAny* aInitData)
    53     {
    55     {
   202             }
   204             }
   203             break;
   205             break;
   204         case ECmdPenInputFingerSpelling:
   206         case ECmdPenInputFingerSpelling:
   205             {
   207             {
   206 
   208 
   207             // Fix bug EZLG-7YUAP7
       
   208             // When writing language is Chinese, and Spell On, enforce setting language to English 
       
   209             if( (*(reinterpret_cast<TBool*>(aData))) && iDataMgr->IsChinese() )  
       
   210             	{
       
   211             	iDataMgr->SetLanguageL( ELangEnglish );
       
   212             	}
       
   213            //
       
   214 
       
   215             if (UiMgr())
   209             if (UiMgr())
   216                 {
   210                 {
   217                 TInt handled = KErrNone;
   211                 TInt handled = KErrNone;
   218                 TRAP_IGNORE(handled = UiMgr()->HandleCommandL(aCmd, aData));
   212                 TRAP_IGNORE(handled = UiMgr()->HandleCommandL(aCmd, aData));
   219                 return handled;
   213                 return handled;
   296         case ECmdPenInputCharacterPreview:
   290         case ECmdPenInputCharacterPreview:
   297             {
   291             {
   298             iWindowMgr->ShowBubble(*aData);    
   292             iWindowMgr->ShowBubble(*aData);    
   299             }
   293             }
   300             break;
   294             break;
       
   295         case ECmdPeninputSpellLanguageMode:
       
   296         	{
       
   297             if ( *data == KChineseSpell )
       
   298             	{
       
   299 				iDataMgr->SetChineseSpellFlag( ETrue );
       
   300 				return KErrNone;
       
   301             	}
       
   302             
       
   303             if ( *data == KWesternSpell )
       
   304             	{
       
   305 				iDataMgr->SetChineseSpellFlag( EFalse );
       
   306 				return KErrNone;
       
   307             	}
       
   308         	}
       
   309         	break;
       
   310         case ECmdPeninputSpellICFDisplayContent:
       
   311         	{
       
   312         	TRAP_IGNORE( iWindowMgr->HandleCommandL( aCmd, aData ));
       
   313         	}
       
   314         	break;
   301         default:
   315         default:
   302             break;
   316             break;
   303         }
   317         }
   304 
   318 
   305     return KErrNone;
   319     return KErrNone;
   372 void CGenericItutUiLayout::SetInputModeL(TInt aMode)
   386 void CGenericItutUiLayout::SetInputModeL(TInt aMode)
   373     {
   387     {
   374 		TBool numericOnlyChanged = iDataMgr->IsCharFlagChanged() ? ETrue : EFalse;
   388 		TBool numericOnlyChanged = iDataMgr->IsCharFlagChanged() ? ETrue : EFalse;
   375 		//only number mode need judge it
   389 		//only number mode need judge it
   376 
   390 
   377 		// fix EJML-7HM6GM, e.g. both EStrokeFind and EStroke will be stored as Estroke  ///// 
   391 		//  both EStrokeFind and EStroke will be stored as Estroke  ///// 
   378 		if ( aMode != iDataMgr->InputMode() || 
   392 		if ( aMode != iDataMgr->InputMode() || 
   379 			 aMode == EStroke || aMode == EStrokeFind || 
   393 			 aMode == EStroke || aMode == EStrokeFind || 
   380 			 aMode == EZhuyin || aMode == EZhuyinFind || 
   394 			 aMode == EZhuyin || aMode == EZhuyinFind || 
   381 			 numericOnlyChanged )
   395 			 numericOnlyChanged )
   382         {
   396         {
   400     iDataMgr->SetLanguageL(aLanguage);
   414     iDataMgr->SetLanguageL(aLanguage);
   401     iWindowMgr->SetLanguageL(aLanguage);
   415     iWindowMgr->SetLanguageL(aLanguage);
   402     
   416     
   403     if (previousLang != aLanguage)
   417     if (previousLang != aLanguage)
   404         {
   418         {
   405 
       
   406         // Fix bug for EZLG-7YUAP7 
       
   407         // When state is spelling, don¡¯t apply LAF Data   
   419         // When state is spelling, don¡¯t apply LAF Data   
   408         if(iCurrentUiMgr 
   420         if(iCurrentUiMgr 
   409            && iCurrentUiMgr->CurrentState()
   421            && iCurrentUiMgr->CurrentState()
   410            && iCurrentUiMgr->CurrentState()->StateType() == CGenericItutUiMgrBase::EStateSpelling) 
   422            && iCurrentUiMgr->CurrentState()->StateType() == CGenericItutUiMgrBase::EStateSpelling) 
   411             {
   423             {