idlehomescreen/widgetmanager/src/wmplugin.cpp
branchRCL_3
changeset 17 b8fae6b8a148
parent 12 9674c1a575e9
child 18 d05a55b217df
equal deleted inserted replaced
12:9674c1a575e9 17:b8fae6b8a148
    84 // ---------------------------------------------------------
    84 // ---------------------------------------------------------
    85 //
    85 //
    86 void CWmPlugin::ConstructL()
    86 void CWmPlugin::ConstructL()
    87     {
    87     {
    88     iWmMainContainer = NULL;
    88     iWmMainContainer = NULL;
    89 	
    89     iPostponedCommand = ENone;
       
    90     
    90     // store static view app ui
    91     // store static view app ui
    91     CEikonEnv* eikonEnv = CEikonEnv::Static();
    92     CEikonEnv* eikonEnv = CEikonEnv::Static();
    92     if ( !eikonEnv ) User::Leave( KErrUnknown );
    93     if ( !eikonEnv ) User::Leave( KErrUnknown );
    93     iViewAppUi = (CAknViewAppUi*)eikonEnv->EikAppUi();
    94     iViewAppUi = (CAknViewAppUi*)eikonEnv->EikAppUi();
    94     if ( !iViewAppUi ) User::Leave( KErrUnknown );
    95     if ( !iViewAppUi ) User::Leave( KErrUnknown );
   162     {
   163     {
   163     TVwsViewId activeViewId(KNullUid,KNullUid);
   164     TVwsViewId activeViewId(KNullUid,KNullUid);
   164     if ( iViewAppUi->GetActiveViewId( activeViewId ) == KErrNone &&
   165     if ( iViewAppUi->GetActiveViewId( activeViewId ) == KErrNone &&
   165         activeViewId.iViewUid == TUid::Uid( EWmMainContainerViewId ) )
   166         activeViewId.iViewUid == TUid::Uid( EWmMainContainerViewId ) )
   166         {
   167         {
   167         if ( iPreviousViewUid.iViewUid == KNullUid )
   168         if ( iPreviousViewUid.iViewUid == KNullUid && 
       
   169             iViewAppUi->GetDefaultViewId( iPreviousViewUid ) != KErrNone ) 
   168             {            
   170             {            
   169             iPreviousViewUid.iAppUid = iViewAppUi->Application()->AppDllUid();
   171             iPreviousViewUid.iAppUid = iViewAppUi->Application()->AppDllUid();
   170             iPreviousViewUid.iViewUid = TUid::Uid( 1 );
   172             iPreviousViewUid.iViewUid = TUid::Uid( 1 );
   171             }        
   173             }
   172         return ETrue;
   174         return ETrue;
   173         }
   175         }
   174 
   176 
   175     return( iPreviousViewUid.iViewUid != KNullUid );
   177     return( iPreviousViewUid.iViewUid != KNullUid );
   176     }
   178     }
   182 void CWmPlugin::CloseView()
   184 void CWmPlugin::CloseView()
   183     {
   185     {
   184     if ( IsActive() )
   186     if ( IsActive() )
   185         {
   187         {
   186         iWmMainContainer->SetClosingDown( ETrue );
   188         iWmMainContainer->SetClosingDown( ETrue );
   187         TRAP_IGNORE( 
   189         TRAPD( err, 
   188             iEffectManager->BeginFullscreenEffectL(
   190             iEffectManager->BeginFullscreenEffectL(
   189                 KAppExitEffectStyle );
   191                 KAppExitEffectStyle );
   190             iViewAppUi->ActivateLocalViewL(
   192             iViewAppUi->ActivateLocalViewL(
   191                 iPreviousViewUid.iViewUid ); 
   193                 iPreviousViewUid.iViewUid ); 
   192             );
   194             );
       
   195         if ( KErrNone != err )
       
   196             {
       
   197             iWmMainContainer->SetClosingDown( EFalse );
       
   198             }
   193         }
   199         }
   194     }
   200     }
   195 
   201 
   196 // ---------------------------------------------------------
   202 // ---------------------------------------------------------
   197 // CWmPlugin::MainViewActivated
   203 // CWmPlugin::MainViewActivated
   198 // ---------------------------------------------------------
   204 // ---------------------------------------------------------
   199 //
   205 //
   200 void CWmPlugin::MainViewActivated( 
   206 void CWmPlugin::MainViewActivated( 
   201                     const TVwsViewId& aViewId,
   207                     const TVwsViewId& /*aViewId*/,
   202                     CWmMainContainer* aWmMainContainer )
   208                     CWmMainContainer* aWmMainContainer )
   203     {
   209     {
   204     iPreviousViewUid = aViewId;
   210     // previous view for Wm is always default view.
   205     // verify if we have correct viewid to activate.
   211     if ( iViewAppUi->GetDefaultViewId( iPreviousViewUid ) != KErrNone )
   206     if ( iPreviousViewUid.iViewUid == KNullUid )
       
   207         {
   212         {
   208         // use default if we got wrong viewid as previous view
   213         // use default if we got wrong viewid as previous view
   209         iPreviousViewUid.iAppUid = iViewAppUi->Application()->AppDllUid();
   214         iPreviousViewUid.iAppUid = iViewAppUi->Application()->AppDllUid();
   210         iPreviousViewUid.iViewUid = TUid::Uid( 1 );
   215         iPreviousViewUid.iViewUid = TUid::Uid( 1 );
   211         }
   216         }
   232     if ( iEffectManager )
   237     if ( iEffectManager )
   233         {
   238         {
   234         iEffectManager->UiRendered();
   239         iEffectManager->UiRendered();
   235         }
   240         }
   236 
   241 
   237     TRAP_IGNORE( ExecuteCommandL(); );
   242     TRAPD( err, ExecuteCommandL(); );
       
   243     if ( KErrNone != err )
       
   244         {
       
   245         delete iPostponedContent;
       
   246         iPostponedContent = NULL;
       
   247         iPostponedCommand = ENone;
       
   248         }
   238     }
   249     }
   239 
   250 
   240 // ---------------------------------------------------------
   251 // ---------------------------------------------------------
   241 // CWmPlugin::ForwardNumericKeysToPhone
   252 // CWmPlugin::ForwardNumericKeysToPhone
   242 // ---------------------------------------------------------
   253 // ---------------------------------------------------------