emailuis/emailui/src/FreestyleEmailUiAppui.cpp
branchRCL_3
changeset 26 968773a0b6ef
parent 25 3533d4323edc
--- a/emailuis/emailui/src/FreestyleEmailUiAppui.cpp	Wed Sep 01 12:28:57 2010 +0100
+++ b/emailuis/emailui/src/FreestyleEmailUiAppui.cpp	Tue Sep 14 20:48:24 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007 - 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -89,7 +89,7 @@
 #include "cfsccontactactionmenu.h"
 //</cmail>
 #include <layoutmetadata.cdl.h>         // for Layout_Meta_Data
-
+#include <aknnavilabel.h>
 #include <AknPriv.hrh>
 #include "freestyleemailcenrepkeys.h"
 #include <centralrepository.h>
@@ -158,6 +158,7 @@
 const TUint KConnectionStatusIconRotationInterval = 100;
 const TUint KFakeSyncAnimStopTimerInterval = 3000; // 3 secs
 const TInt KConnectionStatusIconRotationAmount = 18;
+const TInt KFullCircleInDegrees = 360;
 // Length of the drive letter descriptor (e.g. "c:")
 const TInt KDriveDescLength = 2;
 
@@ -748,7 +749,7 @@
     // Destruction must be done here as other Tls data depends on it.
     CFSEmailDownloadInfoMediator::Destroy();
 
-    delete iNaviDecorator2MailViewer;
+    delete iNaviDecorator;
 
     delete iConnectionStatusIconAnimTimer;
     delete iFakeSyncAnimStopTimer;
@@ -891,6 +892,12 @@
         return;
         }
 
+    if( aViewId == MailListId )
+        {
+        // notify Eik that SplitInput was disabled when entering the list form homescreen
+        CEikAppUi::HandleResourceChangeL( KAknSplitInputDisabled );    
+        }
+
     // Do nothing if the externally activated view was already active
     if ( iCurrentActiveView->Id() != aViewId )
         {
@@ -1601,8 +1608,7 @@
                 {
                 iPendingLayoutSwitch = ETrue;
                 }
-
-            if ( iCurrentActiveView && !iSettingsViewActive )
+            if ( iCurrentActiveView && !iSettingsViewActive && !iMRViewer )
                 {
                 iCurrentActiveView->HandleDynamicVariantSwitchL( type );
                 }
@@ -2586,7 +2592,7 @@
 		if ( iConnectionIconBitmap )
             {
             TSize iconSize = LayoutHandler()->statusPaneIconSize();
-            AknIconUtils::SetSize( iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved );
+            AknIconUtils::SetSizeAndRotation(iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved, iConnectionStatusIconAngle);
             }
 		titlePane->SetSmallPicture( iConnectionIconBitmap, iConnectionIconMask, iConnectionIconBitmap && iConnectionIconMask);
 		}
@@ -2696,7 +2702,7 @@
 			if ( iConnectionIconBitmap )
 				{
                 TSize iconSize( LayoutHandler()->statusPaneIconSize() );
-				AknIconUtils::SetSize( iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved );
+                AknIconUtils::SetSizeAndRotation(iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved, iConnectionStatusIconAngle);
 				}
 			titlePane->SetSmallPicture( iConnectionIconBitmap, iConnectionIconMask, iConnectionIconMask && iConnectionIconBitmap );
 			if (startTimer)
@@ -3057,13 +3063,15 @@
                         iConnectionIconMask );
                     if ( iConnectionIconBitmap && iConnectionIconMask )
                         {
-                        AknIconUtils::SetSize( 
-                            iConnectionIconBitmap, 
-                            LayoutHandler()->statusPaneIconSize(), 
-                            EAspectRatioNotPreserved );
-                        titlePane->SetSmallPicture( 
-                            iConnectionIconBitmap, 
-                            iConnectionIconMask, 
+                        AknIconUtils::SetSizeAndRotation(
+                            iConnectionIconBitmap,
+                            LayoutHandler()->statusPaneIconSize(),
+                            EAspectRatioNotPreserved,
+                            iConnectionStatusIconAngle );
+
+                        titlePane->SetSmallPicture(
+                            iConnectionIconBitmap,
+                            iConnectionIconMask,
                             ETrue );
                         iConnectionStatusIconAnimTimer->Start(
                             KConnectionStatusIconRotationInterval );
@@ -3077,60 +3085,6 @@
         }
     }
 
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-void CFreestyleEmailUiAppUi::ConstructNaviPaneL()
-    {
-    FUNC_LOG;
-
-    CAknNavigationControlContainer* naviPaneContainer =
-        static_cast<CAknNavigationControlContainer*>(
-        StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
-
-    // Following navipane is for mailviewer view
-    if ( !iNaviDecorator2MailViewer )
-        {
-        // Constructing a decorator with own decorated control,
-        // which is (currently an empty) container.
-        CFreestyleEmailUiNaviPaneControlContainer2MailViewer* c =
-            CFreestyleEmailUiNaviPaneControlContainer2MailViewer::NewL();
-        c->SetContainerWindowL( *naviPaneContainer );
-        iNaviDecorator2MailViewer = CAknNavigationDecorator::NewL(
-            naviPaneContainer,
-            c,
-            CAknNavigationDecorator::ENotSpecified );
-
-        // In order to get navi arrows visible, they must be set visible AND not dimmed...
-        iNaviDecorator2MailViewer->SetContainerWindowL( *naviPaneContainer );
-        iNaviDecorator2MailViewer->MakeScrollButtonVisible( ETrue );
-        iNaviDecorator2MailViewer->SetScrollButtonDimmed( CAknNavigationDecorator::ELeftButton, EFalse );
-        iNaviDecorator2MailViewer->SetScrollButtonDimmed( CAknNavigationDecorator::ERightButton, EFalse );
-
-        iNaviDecorator2MailViewer->SetComponentsToInheritVisibility( ETrue );
-        naviPaneContainer->PushL( *iNaviDecorator2MailViewer );
-        }
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-CAknNavigationDecorator* CFreestyleEmailUiAppUi::NaviDecoratorL(  const TUid aViewId  )
-    {
-    FUNC_LOG;
-    CAknNavigationDecorator* decorator( NULL );
-    // Depending on who's asking, return proper navipane instance
-    if ( aViewId.iUid == MailViewerId.iUid )
-        {
-        if ( !iNaviDecorator2MailViewer )
-            {
-            ConstructNaviPaneL();
-            }
-        decorator = iNaviDecorator2MailViewer;
-        }
-    return decorator;
-    }
-
 void CFreestyleEmailUiAppUi::TimerEventL( CFSEmailUiGenericTimer* aTriggeredTimer )
     {
     if ( aTriggeredTimer == iConnectionStatusIconAnimTimer )
@@ -3149,6 +3103,7 @@
 
                 TSize iconSize = LayoutHandler()->statusPaneIconSize();
                 iConnectionStatusIconAngle += KConnectionStatusIconRotationAmount;
+                iConnectionStatusIconAngle %= KFullCircleInDegrees;
                 AknIconUtils::SetSizeAndRotation(iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved, iConnectionStatusIconAngle);
                 titlePane->DrawNow();
                 iConnectionStatusIconAnimTimer->Start(KConnectionStatusIconRotationInterval);
@@ -3220,7 +3175,35 @@
 		}
 	}
 
-
+void CFreestyleEmailUiAppUi::SetNaviPaneTextL( const TDesC& aText )
+    {
+    if (aText.Length())
+        {
+        CAknNavigationControlContainer* np =
+                static_cast<CAknNavigationControlContainer*>(
+                        StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
+    
+        if (!iNaviDecorator)
+            {
+            iNaviDecorator = np->CreateNavigationLabelL( KNullDesC() );
+            np->PushL( *iNaviDecorator );
+            }
+        CAknNaviLabel* naviLabel = static_cast<CAknNaviLabel*>( iNaviDecorator->DecoratedControl() );
+        if( naviLabel )
+            {
+            naviLabel->SetTextL( aText );
+            iNaviDecorator->DrawDeferred();
+            }
+        }
+    else
+        {
+        if (iNaviDecorator)
+            {
+            delete iNaviDecorator;
+            iNaviDecorator = NULL;
+            }
+        }
+    }
 
 ////////////////////////////////////////////////////////////////////////////////
 //