--- a/emailuis/emailui/src/FreestyleEmailUiAppui.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiAppui.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2007 - 2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007 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,10 +89,6 @@
#include "cfsccontactactionmenu.h"
//</cmail>
#include <layoutmetadata.cdl.h> // for Layout_Meta_Data
-#include <aknnavilabel.h>
-#include <AknPriv.hrh>
-#include "freestyleemailcenrepkeys.h"
-#include <centralrepository.h>
// INTERNAL INCLUDE FILES
#include "FreestyleEmailUiContactHandler.h"
@@ -158,7 +154,6 @@
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;
@@ -749,7 +744,7 @@
// Destruction must be done here as other Tls data depends on it.
CFSEmailDownloadInfoMediator::Destroy();
- delete iNaviDecorator;
+ delete iNaviDecorator2MailViewer;
delete iConnectionStatusIconAnimTimer;
delete iFakeSyncAnimStopTimer;
@@ -892,19 +887,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 )
{
// this function removes setting view from view stack so
// it cannot be active any more
iSettingsViewActive = EFalse;
-
iPreviousActiveView = iCurrentActiveView;
// Check if the view is in the history stack. In that case, we don't
@@ -1359,6 +1347,7 @@
{
iLastWsEventType = EEventKey;
}
+
TInt key = aEvent.Key()->iScanCode;
// <cmail>
// to disable voice commands during creating new mail message
@@ -1504,15 +1493,6 @@
// </cmail>
CAknAppUi::HandleResourceChangeL( aType );
- if ( aType == KAknSplitInputEnabled || aType == KAknSplitInputDisabled )
- {
- StatusPane()->MakeVisible( aType == KAknSplitInputDisabled );
- if ( iCurrentActiveView != NULL )
- {
- iCurrentActiveView->HandleStatusPaneSizeChange();
- }
- }
-
// Refresh mode is changed to manual to avoid any flickering during
// resource change handling in list views. Trap any leaves so that we set
// the automatic refresh mode back on even in case of error.
@@ -1542,8 +1522,7 @@
// CAlfEnv::Static()->NotifySkinChangedL();
// }
- if( aType == KEikDynamicLayoutVariantSwitch
- || aType == KAknSplitInputEnabled || aType == KAknSplitInputDisabled )
+ if ( aType == KEikDynamicLayoutVariantSwitch )
{
// Changing layout for status pane (just in case it is not switched
// correctly), fix for HMNN-82BAGR error
@@ -1570,7 +1549,7 @@
{
TRect screenRect;
- screenRect = ClientRect();
+ AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, screenRect );
StatusPane()->DrawNow();
if(iEnv)
{
@@ -1588,8 +1567,6 @@
case KAknsMessageSkinChange:
type = CFsEmailUiViewBase::ESkinChanged;
break;
- case KAknSplitInputEnabled: // fall though
- case KAknSplitInputDisabled: // fall though
case KEikDynamicLayoutVariantSwitch:
type = CFsEmailUiViewBase::EScreenLayoutChanged;
break;
@@ -1608,7 +1585,8 @@
{
iPendingLayoutSwitch = ETrue;
}
- if ( iCurrentActiveView && !iSettingsViewActive && !iMRViewer )
+
+ if ( iCurrentActiveView && !iSettingsViewActive )
{
iCurrentActiveView->HandleDynamicVariantSwitchL( type );
}
@@ -2592,7 +2570,7 @@
if ( iConnectionIconBitmap )
{
TSize iconSize = LayoutHandler()->statusPaneIconSize();
- AknIconUtils::SetSizeAndRotation(iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved, iConnectionStatusIconAngle);
+ AknIconUtils::SetSize( iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved );
}
titlePane->SetSmallPicture( iConnectionIconBitmap, iConnectionIconMask, iConnectionIconBitmap && iConnectionIconMask);
}
@@ -2702,7 +2680,7 @@
if ( iConnectionIconBitmap )
{
TSize iconSize( LayoutHandler()->statusPaneIconSize() );
- AknIconUtils::SetSizeAndRotation(iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved, iConnectionStatusIconAngle);
+ AknIconUtils::SetSize( iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved );
}
titlePane->SetSmallPicture( iConnectionIconBitmap, iConnectionIconMask, iConnectionIconMask && iConnectionIconBitmap );
if (startTimer)
@@ -3034,6 +3012,7 @@
{
return iLastWsEventType;
}
+
// CFreestyleEmailUiAppUi::RunFakeSyncAnimL
// -----------------------------------------------------------------------------
void CFreestyleEmailUiAppUi::RunFakeSyncAnimL()
@@ -3063,15 +3042,13 @@
iConnectionIconMask );
if ( iConnectionIconBitmap && iConnectionIconMask )
{
- AknIconUtils::SetSizeAndRotation(
- iConnectionIconBitmap,
- LayoutHandler()->statusPaneIconSize(),
- EAspectRatioNotPreserved,
- iConnectionStatusIconAngle );
-
- titlePane->SetSmallPicture(
- iConnectionIconBitmap,
- iConnectionIconMask,
+ AknIconUtils::SetSize(
+ iConnectionIconBitmap,
+ LayoutHandler()->statusPaneIconSize(),
+ EAspectRatioNotPreserved );
+ titlePane->SetSmallPicture(
+ iConnectionIconBitmap,
+ iConnectionIconMask,
ETrue );
iConnectionStatusIconAnimTimer->Start(
KConnectionStatusIconRotationInterval );
@@ -3085,6 +3062,60 @@
}
}
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+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 )
@@ -3103,7 +3134,6 @@
TSize iconSize = LayoutHandler()->statusPaneIconSize();
iConnectionStatusIconAngle += KConnectionStatusIconRotationAmount;
- iConnectionStatusIconAngle %= KFullCircleInDegrees;
AknIconUtils::SetSizeAndRotation(iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved, iConnectionStatusIconAngle);
titlePane->DrawNow();
iConnectionStatusIconAnimTimer->Start(KConnectionStatusIconRotationInterval);
@@ -3175,35 +3205,7 @@
}
}
-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;
- }
- }
- }
+
////////////////////////////////////////////////////////////////////////////////
//