idlehomescreen/widgetmanager/src/wmmaincontainerview.cpp
branchRCL_3
changeset 9 f966699dea19
parent 2 08c6ee43b396
child 15 ff572dfe6d86
--- a/idlehomescreen/widgetmanager/src/wmmaincontainerview.cpp	Tue Feb 02 00:04:13 2010 +0200
+++ b/idlehomescreen/widgetmanager/src/wmmaincontainerview.cpp	Fri Feb 19 22:42:37 2010 +0200
@@ -55,7 +55,8 @@
 	{
     if ( iWmMainContainer != NULL )
         {
-        AppUi()->RemoveFromViewStack( *this, iWmMainContainer );
+        AppUi()->RemoveFromStack( iWmMainContainer );
+
         delete iWmMainContainer;
         iWmMainContainer = NULL;
         }
@@ -140,7 +141,7 @@
                 break;
             case EWmMainContainerViewBackMenuItemCommand: // flow through
             case EAknSoftkeyBack:
-                iWmPlugin.Deactivate();
+                iWmPlugin.CloseView();
                 break;
             case EWmMainContainerViewWiddetDetailsMenuItemCommand:
                 HandleDetailsMenuItemSelectedL();
@@ -170,29 +171,34 @@
 		TUid /*aCustomMessageId*/,
 		const TDesC8& /*aCustomMessage*/ )
 	{
-	if ( iWmMainContainer == NULL )
-		{
-		iWmMainContainer = CreateContainerL();
-		iWmMainContainer->SetMopParent( this );
-		AppUi()->AddToStackL( *this, iWmMainContainer );
-		}
-	
-	SetupStatusPaneL();
-   
-    iWmPlugin.MainViewActivated( aPrevViewId, iWmMainContainer );
+    // setup status pane layout
     StatusPane()->SwitchLayoutL( 
             R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT );
     StatusPane()->ApplyCurrentSettingsL();
+    
+    // title in status pane
+    SetTitleL();
+    
     StatusPane()->DrawNow();
+    
+    // update cba
     CEikButtonGroupContainer* bgc( Cba() );
-        
     CEikCba* cba = static_cast< CEikCba* >( bgc->ButtonGroup() );
     if ( cba ) 
-        {
-        
+        {       
         bgc->SetBoundingRect( TRect() );
         cba->DrawNow();
         }
+
+    // create container
+    if ( iWmMainContainer == NULL )
+        {
+        iWmMainContainer = CreateContainerL();
+        iWmMainContainer->SetMopParent( this );
+        AppUi()->AddToStackL( *this, iWmMainContainer );
+        }
+    
+    iWmPlugin.MainViewActivated( aPrevViewId, iWmMainContainer );
 	}
 
 // ---------------------------------------------------------
@@ -203,12 +209,11 @@
 	{
 	if ( iWmMainContainer != NULL )
 		{
-		AppUi()->RemoveFromViewStack( *this, iWmMainContainer );
+        AppUi()->RemoveFromStack( iWmMainContainer );
 		delete iWmMainContainer;
 		iWmMainContainer = NULL;
+		iWmPlugin.MainViewDeactivated();
 		}
-
-	iWmPlugin.MainViewDeactivated();
 	}
 
 // ---------------------------------------------------------
@@ -233,10 +238,10 @@
 	}
 
 // ---------------------------------------------------------
-// CWmMainContainerView::SetupStatusPaneL
+// CWmMainContainerView::SetTitleL
 // ---------------------------------------------------------
 //
-void CWmMainContainerView::SetupStatusPaneL()
+void CWmMainContainerView::SetTitleL()
 	{	
 	// setup the title pane
 	TUid titlePaneUid = TUid::Uid( EEikStatusPaneUidTitle );
@@ -412,4 +417,17 @@
     return ETrue;
     }
 
+// ---------------------------------------------------------
+// CWmMainContainerView::HandleForegroundEventL
+// ---------------------------------------------------------
+//
+void CWmMainContainerView::HandleForegroundEventL( TBool aForeground )
+    {
+    CAknView::HandleForegroundEventL( aForeground );
+    if ( iWmMainContainer )
+        {
+        iWmMainContainer->ProcessForegroundEvent( aForeground );
+        }
+    }
+
 // End of file