uifw/AvKon/src/AknViewAppUi.cpp
branchRCL_3
changeset 64 85902f042028
parent 56 d48ab3b357f1
child 72 a5e7a4f63858
equal deleted inserted replaced
59:978afdc0236f 64:85902f042028
    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;
   102     };
   109     };
   103 
   110 
   104 // ============================ MEMBER FUNCTIONS ===============================
   111 // ============================ MEMBER FUNCTIONS ===============================
   105 
   112 
   106 // -----------------------------------------------------------------------------
   113 // -----------------------------------------------------------------------------
   237 
   244 
   238 	// Only clear the window for foreground apps.
   245 	// Only clear the window for foreground apps.
   239 	if ( iEikonEnv->RootWin().OrdinalPosition() == 0 &&
   246 	if ( iEikonEnv->RootWin().OrdinalPosition() == 0 &&
   240 	     iExtension->iUseDefaultScreenClearer )
   247 	     iExtension->iUseDefaultScreenClearer )
   241         {
   248         {
   242 	    if ( !iEikonEnv->StartedAsServerApp() )
   249 	    if ( !iEikonEnv->StartedAsServerApp() ||
   243             {
   250 	         iExtension->iUseDefaultScreenClearerInEmbeddedLaunch )
       
   251             {
       
   252 	        // Use transparent screen clearer for embedded applications,
       
   253 	        // except for when application wants to use the normal
       
   254 	        // screen clearer.
   244             iClearer = CAknLocalScreenClearer::NewL( ETrue );
   255             iClearer = CAknLocalScreenClearer::NewL( ETrue );
   245             }
   256             }
   246         else
   257         else
   247             {
   258             {
   248             iClearer = CAknLocalScreenClearer::NewL( ETrue, ETrue );
   259             iClearer = CAknLocalScreenClearer::NewL( ETrue, ETrue );
  1012     if ( !iExtension )
  1023     if ( !iExtension )
  1013         {
  1024         {
  1014         TRAP_IGNORE( iExtension = CAknViewAppUiExtension::NewL() );
  1025         TRAP_IGNORE( iExtension = CAknViewAppUiExtension::NewL() );
  1015         }
  1026         }
  1016     
  1027     
  1017     // Update flag
  1028     // Update the flags
  1018     if ( iExtension )
  1029     if ( iExtension )
  1019         {
  1030         {
  1020         iExtension->iUseDefaultScreenClearer = aEnable;
  1031         iExtension->iUseDefaultScreenClearer = aEnable;
  1021         }
  1032         iExtension->iUseDefaultScreenClearerInEmbeddedLaunch = aEnable;
  1022 
  1033         }
  1023     // Create/delete iClearer if required
  1034 
  1024     if ( aEnable && !iClearer )
  1035     // Delete the clearer if it already exists but isn't required anymore.
  1025         {
  1036     // The clearer is created when needed on BaseConstructL.
  1026         TRAP_IGNORE( iClearer = CAknLocalScreenClearer::NewL( EFalse ) );
  1037     if ( !aEnable && iClearer )
  1027         }
       
  1028     else if ( !aEnable && iClearer )
       
  1029         {
  1038         {
  1030         delete iClearer;
  1039         delete iClearer;
  1031         iClearer = NULL;
  1040         iClearer = NULL;
  1032         }
  1041         }
  1033     }
  1042     }