phoneapp/phoneuicontrol/src/cphonekeyeventforwarder.cpp
branchRCL_3
changeset 15 2a26698d78ba
parent 0 5f000ab63145
child 17 38529f706030
equal deleted inserted replaced
14:24062c24fe38 15:2a26698d78ba
   270     {
   270     {
   271     __LOGMETHODSTARTEND( EPhoneControl,
   271     __LOGMETHODSTARTEND( EPhoneControl,
   272         "CPhoneKeyEventForwarder::OfferKeyEventBeforeControlStackL");
   272         "CPhoneKeyEventForwarder::OfferKeyEventBeforeControlStackL");
   273 
   273 
   274     TKeyResponse response( EKeyWasNotConsumed );
   274     TKeyResponse response( EKeyWasNotConsumed );
   275     if( !IsKeyBlocked( aKeyEvent ) )
   275 
   276         {
   276     // Handle key events before FEP
   277         // Handle key events before FEP
   277     // This is must becouse FEP consumes * key and when
   278         // This is must becouse FEP consumes * key and when
   278     // editor is in alphanumeric mode FEP consumes all alphanumeric
   279         // editor is in alphanumeric mode FEP consumes all alphanumeric
   279     // keys
   280         // keys
   280     switch( aType )
   281         switch( aType )
   281         {
   282             {
   282          // EEventKeyDown
   283              // EEventKeyDown
   283         case EEventKeyDown:
   284             case EEventKeyDown:
   284             response = HandleEventKeyDownBeforeControlStackL( aKeyEvent );
   285                 response = HandleEventKeyDownBeforeControlStackL( aKeyEvent );
   285             break;
   286                 break;
   286         // EEventKey
   287             // EEventKey
   287         case EEventKey:
   288             case EEventKey:
   288             response = HandleEventKeyBeforeControlStackL( aKeyEvent );
   289                 response = HandleEventKeyBeforeControlStackL( aKeyEvent );
   289             break;
   290                 break;
   290         // EEventKeyUp
   291             // EEventKeyUp
   291         case EEventKeyUp:
   292             case EEventKeyUp:
   292             response = HandleEventKeyUpBeforeControlStackL( aKeyEvent );
   293                 response = HandleEventKeyUpBeforeControlStackL( aKeyEvent );
   293             break;
   294                 break;
   294         default:
   295             default:
   295             break;
   296                 break;
       
   297             }
       
   298 
       
   299         }
   296         }
   300     return response;
   297     return response;
   301     }
   298     }
   302 
   299 
   303 
   300 
   311     TEventCode aType )
   308     TEventCode aType )
   312     {
   309     {
   313     __LOGMETHODSTARTEND( EPhoneControl,
   310     __LOGMETHODSTARTEND( EPhoneControl,
   314         "CPhoneKeyEventForwarder::OfferKeyEventAfterControlStackL");
   311         "CPhoneKeyEventForwarder::OfferKeyEventAfterControlStackL");
   315     
   312     
   316 	if( !IsKeyBlocked( aKeyEvent ) )
   313     // Send key to editor
   317         {
   314     iStateMachine->State()->HandleKeyEventL( aKeyEvent, aType );
   318         // Send key to editor
   315     
   319         iStateMachine->State()->HandleKeyEventL( aKeyEvent, aType );
   316     if( EEventKeyUp == aType 
   320         
   317             && EKeyNull != iKeyPressedDown )
   321         if( EEventKeyUp == aType 
   318         {
   322                 && EKeyNull != iKeyPressedDown )
   319         // Handle short key press
   323             {
   320         iStateMachine->State()->HandleKeyMessageL( 
   324             // Handle short key press
   321             MPhoneKeyEvents::EPhoneKeyShortPress, 
   325             iStateMachine->State()->HandleKeyMessageL( 
   322             TKeyCode( iKeyPressedDown ) );
   326                 MPhoneKeyEvents::EPhoneKeyShortPress, 
   323 
   327                 TKeyCode( iKeyPressedDown ) );
   324         // Reset key code
   328 
   325         iScanCode = EStdKeyNull;
   329             // Reset key code
   326         iKeyPressedDown = EKeyNull;
   330             iScanCode = EStdKeyNull;
       
   331             iKeyPressedDown = EKeyNull;
       
   332             }
       
   333         }
   327         }
   334 
   328 
   335     return EKeyWasNotConsumed;
   329     return EKeyWasNotConsumed;
   336     }
   330     }
   337 
   331 
   545 
   539 
   546     __PHONELOG1( EBasic, EPhoneControl,
   540     __PHONELOG1( EBasic, EPhoneControl,
   547         "CPhoneKeyEventHandler::ConvertKeyCode aCode (%d)", aCode );
   541         "CPhoneKeyEventHandler::ConvertKeyCode aCode (%d)", aCode );
   548     }
   542     }
   549 
   543 
   550 // -----------------------------------------------------------------------------
       
   551 // CPhoneKeyEventForwarder::IsKeyBlocked
       
   552 // -----------------------------------------------------------------------------
       
   553 //
       
   554 TBool CPhoneKeyEventForwarder::IsKeyBlocked( const TKeyEvent& aKeyEvent ) const
       
   555     {
       
   556     TBool ret = EFalse;
       
   557     
       
   558     // Check blocked keys
       
   559     const RArray<TInt>& keyScanCodeList = iStateMachine->State()->GetBlockedKeyList();
       
   560     TInt count = keyScanCodeList.Count();
       
   561     if( count )
       
   562         {
       
   563         for( TInt i = 0; i < count; i++ )
       
   564             {
       
   565             if( keyScanCodeList[i] == aKeyEvent.iScanCode )
       
   566                 {
       
   567                 ret = ETrue;
       
   568                 }
       
   569             }
       
   570         }
       
   571     __PHONELOG1( EBasic, EPhoneControl,
       
   572         "CPhoneKeyEventHandler::IsKeyBlocked return (%d)", ret );
       
   573     
       
   574     return ret;
       
   575     }
       
   576 
       
   577 //  End of File
   544 //  End of File
   578 
   545