textinput/peninputfingerhwrar/src/peninputfingerhwrarstatemanager.cpp
branchRCL_3
changeset 10 6defe5d1bd39
parent 7 a47de9135b21
child 19 5e18d8c489d6
equal deleted inserted replaced
8:6ceef9a83b1a 10:6defe5d1bd39
   366         case EEventHwrCharacterTimerOut:
   366         case EEventHwrCharacterTimerOut:
   367             {
   367             {
   368             OnEndWritingL( aEventData );
   368             OnEndWritingL( aEventData );
   369             }
   369             }
   370             break;
   370             break;
   371         case EHwrEventCandidateSelected:
       
   372             {
       
   373             OnSelectedCandidatesL(aEventData);
       
   374             }    
       
   375             break;                  
       
   376         default:
   371         default:
   377             break;
   372             break;
   378         }
   373         }
   379     }
   374     }
   380 
   375 
   408     
   403     
   409     RPointerArray<HBufC> candidates = iDataStore.Candidate();
   404     RPointerArray<HBufC> candidates = iDataStore.Candidate();
   410     if ( candidates.Count() > 0 )
   405     if ( candidates.Count() > 0 )
   411         {
   406         {
   412         HBufC* defaultCandiate = candidates[0];
   407         HBufC* defaultCandiate = candidates[0];
   413         
   408         iStateManager.HwrLayout().SubmitStringToFep( *defaultCandiate );
   414         if( iDataStore.IsSpecialDisplayChars( *defaultCandiate ) )
       
   415             {
       
   416             HBufC* realCandidate = iDataStore.ConvertDisplayChars( *defaultCandiate );
       
   417             iStateManager.HwrLayout().SubmitStringToFep( *realCandidate );
       
   418             delete realCandidate;
       
   419             }
       
   420         else
       
   421             {
       
   422             iStateManager.HwrLayout().SubmitStringToFep( *defaultCandiate );
       
   423             }
       
   424             
   409             
   425         //check if the default candidate is need to be sent directly
   410         iStateManager.SetState( CPeninputFingerHwrArStateManager::
   426         if( iDataStore.IsDirectlySentCandidate( *defaultCandiate ) )
       
   427             {
       
   428             iStateManager.SetState( CPeninputFingerHwrArStateManager::
       
   429                 EPeninputFingerHwrArStateStandby );
       
   430             }
       
   431         else
       
   432             {
       
   433             
       
   434             iStateManager.SetState( CPeninputFingerHwrArStateManager::
       
   435                 EPeninputFingerHwrArStateCandidateSelecting );  
   411                 EPeninputFingerHwrArStateCandidateSelecting );  
   436             }        
       
   437         
   412         
   438         } 
   413         } 
   439 	}
   414 	}
   440 
       
   441 // -----------------------------------------------------------------------------
       
   442 // CPeninputFingerHwrArStateWriting::OnSelectedCandidatesL()
       
   443 // .
       
   444 // -----------------------------------------------------------------------------
       
   445 //	
       
   446 void CPeninputFingerHwrArStateWriting::OnSelectedCandidatesL( 
       
   447     const TDesC& aEventData )
       
   448     {
       
   449     const TInt cellNo = aEventData[aEventData.Length() - 1];
       
   450     if (!iDataStore.IsValidCandidate( cellNo ))
       
   451         {
       
   452         iStateManager.SetState(CPeninputFingerHwrArStateManager::
       
   453                         EPeninputFingerHwrArStateStandby );
       
   454         return;
       
   455         }    
       
   456     
       
   457     TPtrC ptr;
       
   458     ptr.Set(( aEventData.Left( aEventData.Length() - 1 ) ) );
       
   459     RPointerArray<HBufC> candidates = iDataStore.Candidate();
       
   460 
       
   461     //handle special display char
       
   462     if( iDataStore.IsSpecialDisplayChars( ptr ) )
       
   463         {
       
   464         HBufC* realCandidate = iDataStore.ConvertDisplayChars( ptr );
       
   465         iStateManager.HwrLayout().SubmitStringToFep( ptr );
       
   466         delete realCandidate;
       
   467         }
       
   468     else
       
   469         {
       
   470         iStateManager.HwrLayout().SubmitStringToFep( ptr );         
       
   471         }        
       
   472         
       
   473     iDataStore.SetArabicSymbolL();
       
   474     
       
   475     // record the default cell highlight flag
       
   476     iDataStore.SetHighlight(EFalse);
       
   477     
       
   478 //    iStateManager.SetState( 
       
   479 //        CPeninputFingerHwrArStateManager::
       
   480 //        EPeninputFingerHwrArStateStandby );     
       
   481     }
       
   482     
       
   483 
       
   484 	
       
   485 
   415 
   486 // -----------------------------------------------------------------------------
   416 // -----------------------------------------------------------------------------
   487 // CPeninputFingerHwrArStateWriting::OnEntry()
   417 // CPeninputFingerHwrArStateWriting::OnEntry()
   488 // .
   418 // .
   489 // -----------------------------------------------------------------------------
   419 // -----------------------------------------------------------------------------
   590     //the selected char is not same as default
   520     //the selected char is not same as default
   591     //replace the default candidate
   521     //replace the default candidate
   592     HBufC* defaultCandidate = candidates[0];
   522     HBufC* defaultCandidate = candidates[0];
   593     if( *defaultCandidate != ptr )
   523     if( *defaultCandidate != ptr )
   594         {
   524         {
   595         if( iDataStore.IsSpecialDisplayChars( ptr ) )
   525         iStateManager.HwrLayout().Replace( *defaultCandidate, ptr );         
   596             {
       
   597             HBufC* realCandidate = iDataStore.ConvertDisplayChars( ptr );
       
   598             iStateManager.HwrLayout().Replace( *defaultCandidate, 
       
   599                 *realCandidate );
       
   600             delete realCandidate;
       
   601             }
       
   602         else
       
   603             {
       
   604             iStateManager.HwrLayout().Replace( *defaultCandidate, ptr );         
       
   605             }        
       
   606         }
   526         }
   607     iDataStore.SetArabicSymbolL();
   527     iDataStore.SetArabicSymbolL();
   608 //    iStateManager.SetState( CPeninputFingerHwrArStateManager::
       
   609 //            EPeninputFingerHwrArStateStandby );
       
   610     
       
   611     }
   528     }
   612 
   529 
   613 
   530 
   614 // -----------------------------------------------------------------------------
   531 // -----------------------------------------------------------------------------
   615 // CPeninputFingerHwrStateHandlerCandidateSelecting::OnClickBackSpaceL()
   532 // CPeninputFingerHwrStateHandlerCandidateSelecting::OnClickBackSpaceL()