uifw/AvKon/src/AknViewAppUi.cpp
branchRCL_3
changeset 72 a5e7a4f63858
parent 64 85902f042028
equal deleted inserted replaced
64:85902f042028 72:a5e7a4f63858
    97         RArray<CAknViewAppUi::TAknSplitViewContainer> iSplitViews;
    97         RArray<CAknViewAppUi::TAknSplitViewContainer> iSplitViews;
    98         CAknViewNavigator* iNavigator;
    98         CAknViewNavigator* iNavigator;
    99         TInt iFlags;
    99         TInt iFlags;
   100 #endif // RD_SPLIT_VIEW
   100 #endif // RD_SPLIT_VIEW
   101         TBool iUseDefaultScreenClearer;
   101         TBool iUseDefaultScreenClearer;
   102         
       
   103         /**
       
   104          * Used to control whether or not the default screen clearer
       
   105 		 * is used when launching the application as embedded. By default the
       
   106          * clearer isn't used for embedded applications.
       
   107          */
       
   108         TBool iUseDefaultScreenClearerInEmbeddedLaunch;
       
   109     };
   102     };
   110 
   103 
   111 // ============================ MEMBER FUNCTIONS ===============================
   104 // ============================ MEMBER FUNCTIONS ===============================
   112 
   105 
   113 // -----------------------------------------------------------------------------
   106 // -----------------------------------------------------------------------------
   244 
   237 
   245 	// Only clear the window for foreground apps.
   238 	// Only clear the window for foreground apps.
   246 	if ( iEikonEnv->RootWin().OrdinalPosition() == 0 &&
   239 	if ( iEikonEnv->RootWin().OrdinalPosition() == 0 &&
   247 	     iExtension->iUseDefaultScreenClearer )
   240 	     iExtension->iUseDefaultScreenClearer )
   248         {
   241         {
   249 	    if ( !iEikonEnv->StartedAsServerApp() ||
   242 	    if ( !iEikonEnv->StartedAsServerApp() )
   250 	         iExtension->iUseDefaultScreenClearerInEmbeddedLaunch )
   243             {
   251             {
       
   252 	        // Use transparent screen clearer for embedded applications,
       
   253 	        // except for when application wants to use the normal
       
   254 	        // screen clearer.
       
   255             iClearer = CAknLocalScreenClearer::NewL( ETrue );
   244             iClearer = CAknLocalScreenClearer::NewL( ETrue );
   256             }
   245             }
   257         else
   246         else
   258             {
   247             {
   259             iClearer = CAknLocalScreenClearer::NewL( ETrue, ETrue );
   248             iClearer = CAknLocalScreenClearer::NewL( ETrue, ETrue );
   278     if ( CAknAppUi::CurrentFixedToolbar() )
   267     if ( CAknAppUi::CurrentFixedToolbar() )
   279         {
   268         {
   280         CAknAppUi::CurrentFixedToolbar()->SetToolbarVisibility( EFalse );
   269         CAknAppUi::CurrentFixedToolbar()->SetToolbarVisibility( EFalse );
   281         }
   270         }
   282 
   271 
   283     delete iClearer;
   272 	delete iClearer;
   284     delete iShutter;
   273 	delete iShutter;
   285     delete iActivationTick;
   274 	delete iActivationTick;
   286 
   275 	
   287 	if ( iActivationQueue )
   276 	if ( iActivationQueue )
   288 		{
   277 		{
   289 		iActivationQueue->ResetAndDestroy();
   278 		iActivationQueue->ResetAndDestroy();
   290 		delete iActivationQueue;
   279 		delete iActivationQueue;
   291 		}
   280 		}
  1023     if ( !iExtension )
  1012     if ( !iExtension )
  1024         {
  1013         {
  1025         TRAP_IGNORE( iExtension = CAknViewAppUiExtension::NewL() );
  1014         TRAP_IGNORE( iExtension = CAknViewAppUiExtension::NewL() );
  1026         }
  1015         }
  1027     
  1016     
  1028     // Update the flags
  1017     // Update flag
  1029     if ( iExtension )
  1018     if ( iExtension )
  1030         {
  1019         {
  1031         iExtension->iUseDefaultScreenClearer = aEnable;
  1020         iExtension->iUseDefaultScreenClearer = aEnable;
  1032         iExtension->iUseDefaultScreenClearerInEmbeddedLaunch = aEnable;
  1021         }
  1033         }
  1022 
  1034 
  1023     // Create/delete iClearer if required
  1035     // Delete the clearer if it already exists but isn't required anymore.
  1024     if ( aEnable && !iClearer )
  1036     // The clearer is created when needed on BaseConstructL.
  1025         {
  1037     if ( !aEnable && iClearer )
  1026         TRAP_IGNORE( iClearer = CAknLocalScreenClearer::NewL( EFalse ) );
       
  1027         }
       
  1028     else if ( !aEnable && iClearer )
  1038         {
  1029         {
  1039         delete iClearer;
  1030         delete iClearer;
  1040         iClearer = NULL;
  1031         iClearer = NULL;
  1041         }
  1032         }
  1042     }
  1033     }