textinput/peninputgenericitut/src/peninputitutchnuistatepredict.cpp
branchRCL_3
changeset 12 4eb1ae11334f
parent 10 6defe5d1bd39
child 14 e6a39382bb9c
equal deleted inserted replaced
10:6defe5d1bd39 12:4eb1ae11334f
   118     // may need to change resource id of candidte list to predictive, change keypad resource id if need
   118     // may need to change resource id of candidte list to predictive, change keypad resource id if need
   119     iOwner->DataMgr()->NotifyChangeControlLayout(
   119     iOwner->DataMgr()->NotifyChangeControlLayout(
   120         MItutPropertySubscriber::EItutPropertyCandidateListResourceId,
   120         MItutPropertySubscriber::EItutPropertyCandidateListResourceId,
   121         R_AKN_FEP_NORMAL_CAND_DROP_DOWN_LIST);
   121         R_AKN_FEP_NORMAL_CAND_DROP_DOWN_LIST);
   122         
   122         
   123         
       
   124     //hide navi button
       
   125     iOwner->LayoutContext()->ShowArrowBtn(0);
       
   126     
       
   127     //hide indicator 
       
   128     iOwner->LayoutContext()->Control(ECtrlIdIndicator)->Hide(ETrue);     
       
   129     // Show ICF, Backspace after position changed to avoid flick
       
   130     iOwner->LayoutContext()->Control(ECtrlIdICF)->Hide( EFalse );
       
   131     iOwner->LayoutContext()->Control(ECtrlIdBackspace)->Hide( EFalse );
       
   132     }
   123     }
   133 
   124 
   134 void CChnItutUiStatePredict::OnExit()
   125 void CChnItutUiStatePredict::OnExit()
   135     {
   126     {
   136     // hide dropdownlist & reset its status
   127     // hide dropdownlist & reset its status
   315                 }
   306                 }
   316         	}
   307         	}
   317         	break;
   308         	break;
   318         case EEventRawKeyDownEvent:
   309         case EEventRawKeyDownEvent:
   319         	{
   310         	{
   320         	TInt immode = iOwner->DataMgr()->InputMode();
   311 
   321  			const TKeyEvent *key = reinterpret_cast<const TKeyEvent*>(aEventData.Ptr());
   312         	if ( iOwner->UiManager()->IsAllowHandleRawKeyEvent())
   322             if ( ( immode == EPinyin && 
   313         		{
   323                  ( key->iScanCode == EPtiKey0 || key->iScanCode == EPtiKey1 || key->iScanCode == EPtiKeyStar ) ) ||
   314 				TInt immode = iOwner->DataMgr()->InputMode();
   324                  ( immode == EStroke && 
   315 				const TKeyEvent *key = reinterpret_cast<const TKeyEvent*>(aEventData.Ptr());
   325                  ( key->iScanCode == EPtiKeyStar || key->iScanCode == EPtiKey0 || (key->iScanCode >= EPtiKey7 && key->iScanCode <= EPtiKey9 ))) ||
   316 				if ( ( immode == EPinyin && 
   326                  ( immode == EZhuyin && key->iScanCode == EPtiKeyStar) ||
   317 					 ( key->iScanCode == EPtiKey0 || key->iScanCode == EPtiKey1 || key->iScanCode == EPtiKeyStar ) ) ||
   327                  ( key->iScanCode == EStdKeyBackspace))
   318 					 ( immode == EStroke && 
   328                 {                
   319 					 ( key->iScanCode == EPtiKeyStar || key->iScanCode == EPtiKey0 || (key->iScanCode >= EPtiKey7 && key->iScanCode <= EPtiKey9 ))) ||
   329 				// For those special keys, simulate down key immedidately.
   320 					 ( immode == EZhuyin && key->iScanCode == EPtiKeyStar) ||
   330                 // to ensure to simulate down key event before up key event
   321 					 ( key->iScanCode == EStdKeyBackspace))
   331                 iOwner->UiManager()->SimulateImmeRawEvent( key->iScanCode, TRawEvent::EKeyDown );
   322 					{                
   332                 iOwner->UiManager()->SetLastRawKeyDown( key->iScanCode, ETrue, aCtrl );               			
   323 					// For those special keys, simulate down key immedidately.
   333 				return ETrue;                               
   324 					// to ensure to simulate down key event before up key event
   334                 }        	
   325 					iOwner->UiManager()->SimulateImmeRawEvent( key->iScanCode, TRawEvent::EKeyDown );
       
   326 					iOwner->UiManager()->SetLastRawKeyDown( key->iScanCode, ETrue, aCtrl );               			
       
   327 					return ETrue;                               
       
   328 					}   
       
   329         		}
   335         	}
   330         	}
   336         	break;
   331         	break;
   337         case EEventRawKeyUpEvent:
   332         case EEventRawKeyUpEvent:
   338         	{
   333         	{
   339         	TInt immode = iOwner->DataMgr()->InputMode();
   334         	if ( iOwner->UiManager()->IsAllowHandleRawKeyEvent())
   340  			const TKeyEvent *key = reinterpret_cast<const TKeyEvent*>(aEventData.Ptr());
   335         		{
   341             if ( ( immode == EPinyin && 
   336 				TInt immode = iOwner->DataMgr()->InputMode();
   342                  ( key->iScanCode == EPtiKey0 || key->iScanCode == EPtiKey1 || key->iScanCode == EPtiKeyStar ) ) ||
   337 				const TKeyEvent *key = reinterpret_cast<const TKeyEvent*>(aEventData.Ptr());
   343                  ( immode == EStroke && 
   338 				if ( ( immode == EPinyin && 
   344                  ( key->iScanCode == EPtiKeyStar || key->iScanCode == EPtiKey0 || (key->iScanCode >= EPtiKey7 && key->iScanCode <= EPtiKey9 ))) ||
   339 					 ( key->iScanCode == EPtiKey0 || key->iScanCode == EPtiKey1 || key->iScanCode == EPtiKeyStar ) ) ||
   345                  ( immode == EZhuyin && key->iScanCode == EPtiKeyStar) ||
   340 					 ( immode == EStroke && 
   346                  ( key->iScanCode == EStdKeyBackspace))
   341 					 ( key->iScanCode == EPtiKeyStar || key->iScanCode == EPtiKey0 || (key->iScanCode >= EPtiKey7 && key->iScanCode <= EPtiKey9 ))) ||
   347                 {
   342 					 ( immode == EZhuyin && key->iScanCode == EPtiKeyStar) ||
   348 				// For those special keys, simulate up key events immediately before changing state.
   343 					 ( key->iScanCode == EStdKeyBackspace))
   349                 // The action can avoid up key event being delayed by running changing state,
   344 					{
   350 				// otherwise, short press will be thought as long press by window server.
   345 					// For those special keys, simulate up key events immediately before changing state.
   351 				iOwner->UiManager()->SimulateImmeRawEvent( key->iScanCode, TRawEvent::EKeyUp );
   346 					// The action can avoid up key event being delayed by running changing state,
   352 				iOwner->UiManager()->SetLastRawKeyDown( key->iScanCode, EFalse, aCtrl );                
   347 					// otherwise, short press will be thought as long press by window server.
   353 				iOwner->SetCurrentStateL( CGenericItutUiMgrBase::EStateStandby );
   348 					iOwner->UiManager()->SimulateImmeRawEvent( key->iScanCode, TRawEvent::EKeyUp );
   354 				return ETrue;                          
   349 					iOwner->UiManager()->SetLastRawKeyDown( key->iScanCode, EFalse, aCtrl );                
   355                 }
   350 					iOwner->SetCurrentStateL( CGenericItutUiMgrBase::EStateStandby );
       
   351 					return ETrue;                          
       
   352 					}
       
   353         		}
   356         	}
   354         	}
   357         	break;
   355         	break;
   358         default:
   356         default:
   359             break;
   357             break;
   360         }
   358         }