uifw/AknGlobalUI/AknCapServer/src/aknKeyFilter.cpp
changeset 47 2f0c06423c72
parent 0 2f259fa3e83a
equal deleted inserted replaced
46:0e1e0022bd03 47:2f0c06423c72
    89 CAknServKeyFilter::~CAknServKeyFilter()
    89 CAknServKeyFilter::~CAknServKeyFilter()
    90     {
    90     {
    91     FreeHardwareStateKeys();
    91     FreeHardwareStateKeys();
    92 
    92 
    93     RWindowGroup& groupWin = iCoeEnv->RootWin();
    93     RWindowGroup& groupWin = iCoeEnv->RootWin();
    94     groupWin.CancelCaptureKeyUpAndDowns( iHomeKeyHandle );
       
    95     groupWin.CancelCaptureKeyUpAndDowns( iQwertyOnKeyHandle );
    94     groupWin.CancelCaptureKeyUpAndDowns( iQwertyOnKeyHandle );
    96     groupWin.CancelCaptureKeyUpAndDowns( iQwertyOffKeyHandle );
    95     groupWin.CancelCaptureKeyUpAndDowns( iQwertyOffKeyHandle );
    97     groupWin.CancelCaptureKey( iFlipOpenKeyHandle );
    96     groupWin.CancelCaptureKey( iFlipOpenKeyHandle );
    98     groupWin.CancelCaptureKey( iFlipCloseKeyHandle );
    97     groupWin.CancelCaptureKey( iFlipCloseKeyHandle );
    99 #ifdef RD_INTELLIGENT_TEXT_INPUT
    98 #ifdef RD_INTELLIGENT_TEXT_INPUT
   109 // ---------------------------------------------------------------------------
   108 // ---------------------------------------------------------------------------
   110 //
   109 //
   111 void CAknServKeyFilter::ConstructL( CAknCapAppServerAppUi& aAppUi )
   110 void CAknServKeyFilter::ConstructL( CAknCapAppServerAppUi& aAppUi )
   112     {
   111     {
   113     RWindowGroup& groupWin = iCoeEnv->RootWin();
   112     RWindowGroup& groupWin = iCoeEnv->RootWin();
   114     iHomeKeyHandle      = groupWin.CaptureKeyUpAndDowns(EStdKeyApplication0, 0, 0);
       
   115     iQwertyOnKeyHandle  = groupWin.CaptureKeyUpAndDowns(EStdKeyApplication7, 0, 0); // EKeyQwertyOn
   113     iQwertyOnKeyHandle  = groupWin.CaptureKeyUpAndDowns(EStdKeyApplication7, 0, 0); // EKeyQwertyOn
   116     iQwertyOffKeyHandle = groupWin.CaptureKeyUpAndDowns(EStdKeyApplication8, 0, 0); // EKeyQwertyOff
   114     iQwertyOffKeyHandle = groupWin.CaptureKeyUpAndDowns(EStdKeyApplication8, 0, 0); // EKeyQwertyOff
   117     iFlipOpenKeyHandle  = groupWin.CaptureKey(EKeyDeviceA, 0, 0); // EKeyFlipOpen
   115     iFlipOpenKeyHandle  = groupWin.CaptureKey(EKeyDeviceA, 0, 0); // EKeyFlipOpen
   118     iFlipCloseKeyHandle = groupWin.CaptureKey(EKeyDeviceB, 0, 0); // EKeyFlipClose
   116     iFlipCloseKeyHandle = groupWin.CaptureKey(EKeyDeviceB, 0, 0); // EKeyFlipClose
   119 
   117 
   340         {
   338         {
   341         iAppUi->PhoneKeyUpReceived();
   339         iAppUi->PhoneKeyUpReceived();
   342         return EKeyWasConsumed;
   340         return EKeyWasConsumed;
   343         }
   341         }
   344 
   342 
   345     if ( aKeyEvent.iScanCode == EStdKeyApplication0 )
   343     if ( aKeyEvent.iScanCode == EStdKeyApplication7 || // EKeyQwertyOn
   346         {
       
   347         return HandleHomeKeyEventL( aType );
       
   348         }
       
   349     else if ( aKeyEvent.iScanCode == EStdKeyApplication7 || // EKeyQwertyOn
       
   350               aKeyEvent.iScanCode == EStdKeyApplication8 )  // EKeyQwertyOff
   344               aKeyEvent.iScanCode == EStdKeyApplication8 )  // EKeyQwertyOff
   351         {
   345         {
   352         return HandleQwertyKeyEvent( aKeyEvent, aType );
   346         return HandleQwertyKeyEvent( aKeyEvent, aType );
   353         }
   347         }
   354     else if ( aType==EEventKey && HandleHardwareStateKeyL( aKeyEvent.iCode ) )
   348     else if ( aType==EEventKey && HandleHardwareStateKeyL( aKeyEvent.iCode ) )
   357         }
   351         }
   358 
   352 
   359     return EKeyWasNotConsumed;
   353     return EKeyWasNotConsumed;
   360     }
   354     }
   361 
   355 
   362 
       
   363 // ---------------------------------------------------------------------------
       
   364 // CAknServKeyFilter::HandleHomeKeyEventL
       
   365 // Handles the pressing of applications key.
       
   366 // ---------------------------------------------------------------------------
       
   367 //
       
   368 TKeyResponse CAknServKeyFilter::HandleHomeKeyEventL( TEventCode aType )
       
   369     {
       
   370     if ( iAppUi->IsAppsKeySuppressed() )
       
   371         {
       
   372         return EKeyWasNotConsumed;
       
   373         }
       
   374 
       
   375     if ( aType == EEventKeyDown )
       
   376         {
       
   377         delete iHomeTimer;
       
   378         iHomeTimer = NULL;
       
   379         iHomeTimer = CPeriodic::NewL( CActive::EPriorityHigh );
       
   380 
       
   381         iHomeTimer->Start( KHomeHoldDelay, 1, TCallBack( HomeTickL, this ) );
       
   382         return EKeyWasConsumed;
       
   383         }
       
   384     else if ( aType == EEventKeyUp )
       
   385         {
       
   386         if ( iHomeTimer && iHomeTimer->IsActive() )
       
   387             {
       
   388             iHomeTimer->Cancel();
       
   389             delete iHomeTimer;
       
   390             iHomeTimer = NULL;
       
   391             if ( !iAppUi->HandleShortAppsKeyPressL() )
       
   392                 {
       
   393                 RWsSession& ws = iEikonEnv->WsSession();
       
   394                 TApaTaskList apList( ws );
       
   395                 TApaTask task = apList.FindApp( iHomeViewId.iAppUid );
       
   396                 if( task.Exists() && task.WgId() == ws.GetFocusWindowGroup() )
       
   397                     {
       
   398                     GfxTransEffect::BeginFullScreen(
       
   399                         AknTransEffect::EApplicationExit,
       
   400                         TRect(),
       
   401                         AknTransEffect::EParameterType,
       
   402                         AknTransEffect::GfxTransParam( iHomeViewId.iAppUid ) );
       
   403                     }
       
   404 
       
   405                 ToggleShellL();
       
   406                 }
       
   407 
       
   408             return EKeyWasConsumed;
       
   409             }
       
   410         }
       
   411 
       
   412     return EKeyWasNotConsumed;
       
   413     }
       
   414 
   356 
   415 
   357 
   416 // ---------------------------------------------------------------------------
   358 // ---------------------------------------------------------------------------
   417 // CAknServKeyFilter::HandleQwertyKeyEvent
   359 // CAknServKeyFilter::HandleQwertyKeyEvent
   418 // Handles the pressing of QWERTY key.
   360 // Handles the pressing of QWERTY key.