--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/email/imum/Mtms/Src/Pop3MtmUiData.cpp Wed Sep 01 12:31:54 2010 +0100
@@ -0,0 +1,627 @@
+/*
+* Copyright (c) 2006 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* POP3 MTM Ui data layer base API
+*
+*/
+
+
+// Standard includes
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <mtmuidsdef.hrh>
+#endif
+#include <coemain.h> // ccoeenv
+#include <eikon.rsg>
+
+// Messaging include
+#include <mtclbase.h>
+#include <mtmuidef.hrh>
+#include <miutset.h>
+#include <mtud.hrh>
+#include <MtmExtendedCapabilities.hrh>
+
+#include <AknsUtils.h>
+#include <AknsConstants.h>//skinned icon ids
+
+#include <data_caging_path_literals.hrh>
+
+// Specific includes
+#include <pop3cmds.h>
+#include <popcmtm.h>
+#include "ImumPanic.h"
+#include <imum.rsg>
+#include <muiu.mbg>
+#include "Pop3MtmUiData.h"
+#include "EmailEditorViewerUids.h"
+#include "ImumMtmLogging.h"
+
+// Constants
+const TInt KPop3MtmUdNumberOfZoomStates = 2; // second one is mask!
+const TInt KImumPop3FirstBitmapIndex = EMbmMuiuQgn_prop_mce_remote_sub;
+const TInt KImumPop3LastBitmapIndex = EMbmMuiuQgn_prop_mce_mail_unfet_unread_mask;
+
+// Defines
+_LIT( KPop3MtmUdResourceFile, "IMUM");
+// Correct path is added to literal when it is used.
+_LIT( KPop3MtmUdBitmapFile, "z:muiu.MBM");
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::NewPP3IMtmUiDataLayerL()
+// ----------------------------------------------------------------------------
+EXPORT_C CBaseMtmUiData* NewPP3IMtmUiDataLayerL(CRegisteredMtmDll& aRegisteredDll)
+ {
+ return CPop3MtmUiData::NewL(aRegisteredDll);
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::NewL()
+// ----------------------------------------------------------------------------
+CPop3MtmUiData* CPop3MtmUiData::NewL(CRegisteredMtmDll& aRegisteredDll)
+ {
+ IMUM_STATIC_CONTEXT( CPop3MtmUiData::NewL, 0, mtm, KImumMtmLog );
+ IMUM_IN();
+
+ CPop3MtmUiData* base=new(ELeave) CPop3MtmUiData(aRegisteredDll);
+ CleanupStack::PushL(base);
+ base->ConstructL();
+ CleanupStack::Pop();
+ IMUM_OUT();
+ return base;
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::CPop3MtmUiData()
+// ----------------------------------------------------------------------------
+CPop3MtmUiData::CPop3MtmUiData(CRegisteredMtmDll& aRegisteredDll)
+ : CBaseMtmUiData(aRegisteredDll)
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::CPop3MtmUiData, 0, KImumMtmLog );
+ IMUM_IN();
+
+ __DECLARE_NAME(_S("CPop3MtmUiData"));
+ IMUM_OUT();
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::ConstructL()
+// ----------------------------------------------------------------------------
+void CPop3MtmUiData::ConstructL()
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::ConstructL, 0, KImumMtmLog );
+ IMUM_IN();
+
+ CBaseMtmUiData::ConstructL();
+
+ iLastResortIcon = new(ELeave) CArrayPtrFlat<CFbsBitmap>(1);
+ CWsBitmap* bitmap = new(ELeave) CWsBitmap(iCoeEnv->WsSession());
+ CleanupStack::PushL(bitmap);
+ User::LeaveIfError( bitmap->Create(TSize(1, 1), iCoeEnv->ScreenDevice()->DisplayMode()) );
+ iLastResortIcon->AppendL(bitmap);
+ CleanupStack::Pop(); // bitmap
+ IMUM_OUT();
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::~CPop3MtmUiData()
+// ----------------------------------------------------------------------------
+CPop3MtmUiData::~CPop3MtmUiData()
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::~CPop3MtmUiData, 0, KImumMtmLog );
+ IMUM_IN();
+
+ if(iLastResortIcon)
+ {
+ iLastResortIcon->ResetAndDestroy();
+ delete iLastResortIcon;
+ }
+ IMUM_OUT();
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::OperationSupportedL()
+// ----------------------------------------------------------------------------
+TInt CPop3MtmUiData::OperationSupportedL(
+ TInt aOperationId,
+ const TMsvEntry& aContext) const
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::OperationSupportedL, 0, KImumMtmLog );
+ IMUM_IN();
+
+ if ( CheckEntry( aContext ) )
+ {
+ switch ( aOperationId )
+ {
+ case KMtmUiFunctionFetchAll:
+ case KMtmUiFunctionFetchNew:
+ case KMtmUiFunctionFetchSelected:
+ case KMtmUiFunctionGetNew:
+ IMUM_OUT();
+ return 0; // Operation *IS* supported
+
+ case KPOP3MTMDisconnect:
+ if ( aContext.Connected() )
+ {
+ IMUM_OUT();
+ return 0;// Operation *IS* supported
+ }
+ return R_EIK_TBUF_NOT_AVAILABLE;
+
+ case KPOP3MTMConnect:
+ if ( !aContext.Connected() )
+ {
+ IMUM_OUT();
+ return 0;// Operation *IS* supported
+ }
+ IMUM_OUT();
+ return R_EIK_TBUF_NOT_AVAILABLE;
+
+ case KMtmUiFunctionMessageInfo:
+ if ( aContext.iType.iUid==KUidMsvMessageEntryValue )
+ {
+ IMUM_OUT();
+ return 0;// Operation *IS* supported
+ }
+ break;
+ default:
+ // Not supported.
+ break;
+ }
+ }
+ IMUM_OUT();
+
+ return R_EIK_TBUF_NOT_AVAILABLE;
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::QueryCapability()
+// ----------------------------------------------------------------------------
+TInt CPop3MtmUiData::QueryCapability(TUid aCapability, TInt& aResponse) const
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::QueryCapability, 0, KImumMtmLog );
+ IMUM_IN();
+
+ switch (aCapability.iUid)
+ {
+ // --- Supported valued capabilities ---
+ case KUidMtmQueryMaxBodySizeValue:
+ case KUidMtmQueryMaxTotalMsgSizeValue:
+ aResponse=KMaxTInt;
+ break;
+ case KUidMsvMtmQueryEditorUidValue:
+ aResponse=KUidMsgInternetMailEditorAppValue;
+ break;
+ case KUidMsvMtmQueryViewerUidValue:
+ aResponse=KUidMsgInternetMailViewerAppValue;
+ break; //
+ case KUidMtmQuerySupportedBodyValue:
+ aResponse = KMtm7BitBody | KMtm8BitBody | KMtm16BitBody;
+ break;
+
+ // --- Supported non-valued capabilities ---
+ case KUidMsvMtmUiQueryConnectionOrientedServices:
+ case KUidMtmQueryCanReceiveMsgValue:
+ case KUidMsvMtmUiQueryCanGetNew:
+ case KMtmUiFunctionMessageInfo:
+ break;
+ default:
+ IMUM_OUT();
+ return KErrNotSupported;
+ };
+ IMUM_OUT();
+ return KErrNone;
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::ContextIcon()
+// ----------------------------------------------------------------------------
+const CBaseMtmUiData::CBitmapArray& CPop3MtmUiData::ContextIcon(
+ const TMsvEntry& aContext,
+ TInt aStateFlags ) const
+ {
+ IMUM_CONTEXT( CBaseMtmUiData::CBitmapArray, 0, KImumMtmLog );
+ IMUM_IN();
+
+ __ASSERT_DEBUG( CheckEntry(aContext), User::Panic(KImumMtmUiPanic, EPop3MtmUdNoIconAvailable) );
+
+ __ASSERT_ALWAYS( aContext.iType.iUid != KUidMsvAttachmentEntryValue, User::Panic(KImumMtmUiPanic, EPop3MtmUdNoIconForAttachment) );
+
+ if ( iIconArrays && !iIconArrays->Count() )
+ {
+ TRAPD( err, const_cast<CPop3MtmUiData*>(this)->
+ CreateSkinnedBitmapsL( KPop3MtmUdNumberOfZoomStates ) );
+ if ( err != KErrNone )
+ {
+ IMUM_OUT();
+ // Failed to load
+ return *iLastResortIcon;
+ }
+ }
+
+ TInt retIndex = 0;
+ if ( aContext.iType.iUid == KUidMsvServiceEntryValue )
+ {
+ retIndex = ( aStateFlags & EMtudEntryStateOpen ) ?
+ EImumPropMceRemoteNewSub :
+ EImumPropMceRemoteSub;
+ }
+ else
+ {
+ // Email message bitmap
+ TMsvEmailEntry mailEntry( aContext );
+ if ( EDisconnectedDeleteOperation == mailEntry.DisconnectedOperation() )
+ {
+ retIndex = EImumPropMceMailFetReaDel;
+ }
+ else if ( !aContext.Complete() )
+ {
+ retIndex = aContext.Unread() ?
+ EImumPropMceMailUnfetUnread :
+ EImumPropMceMailUnfetRead;
+ }
+ else
+ {
+ retIndex = aContext.Unread() ?
+ EImumPropMceMailFetUnread :
+ EImumPropMceMailFetRead;
+ }
+ }
+ IMUM_OUT();
+ return *iIconArrays->At( retIndex / KPop3MtmUdNumberOfZoomStates );
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::PopulateArraysL()
+// ----------------------------------------------------------------------------
+void CPop3MtmUiData::PopulateArraysL()
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::PopulateArraysL, 0, KImumMtmLog );
+ IMUM_IN();
+
+ ReadFunctionsFromResourceFileL(R_POP3UD_FUNCTION_ARRAY);
+
+ IMUM_OUT();
+ // Defer bitmap loading until requested.
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::GetResourceFileName()
+// ----------------------------------------------------------------------------
+void CPop3MtmUiData::GetResourceFileName(TFileName& aFileName) const
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::GetResourceFileName, 0, KImumMtmLog );
+ IMUM_IN();
+
+ aFileName=KPop3MtmUdResourceFile;
+ IMUM_OUT();
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::CanCreateEntryL()
+// ----------------------------------------------------------------------------
+TBool CPop3MtmUiData::CanCreateEntryL(const TMsvEntry& aParent, TMsvEntry& aNewEntry, TInt& aReasonResourceId) const
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::CanCreateEntryL, 0, KImumMtmLog );
+ IMUM_IN();
+
+ aReasonResourceId=R_EIK_TBUF_NOT_AVAILABLE;
+ if (CheckEntry(aNewEntry))
+ {
+ // --- Can't create POP3 attachments or messages - They're created when receiving ---
+ if ( (aNewEntry.iType.iUid==KUidMsvServiceEntryValue) && (aParent.Id()==KMsvRootIndexEntryIdValue) )
+ {
+ aReasonResourceId=0;
+ IMUM_OUT();
+ return ETrue;
+ }
+ }
+ IMUM_OUT();
+ return EFalse;
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::CanOpenEntryL()
+// ----------------------------------------------------------------------------
+TBool CPop3MtmUiData::CanOpenEntryL(const TMsvEntry& /*aContext*/, TInt& aReasonResourceId) const
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::CanOpenEntryL, 0, KImumMtmLog );
+ IMUM_IN();
+
+ aReasonResourceId=R_EIK_TBUF_NOT_AVAILABLE;
+ IMUM_OUT();
+ return EFalse;
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::CanCloseEntryL()
+// ----------------------------------------------------------------------------
+TBool CPop3MtmUiData::CanCloseEntryL(const TMsvEntry& /*aContext*/, TInt& aReasonResourceId) const
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::CanCloseEntryL, 0, KImumMtmLog );
+ IMUM_IN();
+
+ aReasonResourceId=R_EIK_TBUF_NOT_AVAILABLE;
+ IMUM_OUT();
+ return EFalse;
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::CanViewEntryL()
+// ----------------------------------------------------------------------------
+TBool CPop3MtmUiData::CanViewEntryL(const TMsvEntry& /*aContext*/, TInt& aReasonResourceId) const
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::CanViewEntryL, 0, KImumMtmLog );
+ IMUM_IN();
+
+ aReasonResourceId=R_EIK_TBUF_NOT_AVAILABLE;
+ IMUM_OUT();
+ return EFalse;
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::CanEditEntryL()
+// ----------------------------------------------------------------------------
+TBool CPop3MtmUiData::CanEditEntryL(const TMsvEntry& /*aContext*/, TInt& aReasonResourceId) const
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::CanEditEntryL, 0, KImumMtmLog );
+ IMUM_IN();
+
+ aReasonResourceId=R_EIK_TBUF_NOT_AVAILABLE;
+ IMUM_OUT();
+ return EFalse;
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::CanDeleteFromEntryL()
+// ----------------------------------------------------------------------------
+TBool CPop3MtmUiData::CanDeleteFromEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::CanDeleteFromEntryL, 0, KImumMtmLog );
+ IMUM_IN();
+
+ aReasonResourceId=R_EIK_TBUF_NOT_AVAILABLE;
+ if (CheckEntry(aContext))
+ {
+ const TMsvEmailEntry& context=aContext;
+ if(context.iType.iUid==KUidMsvMessageEntryValue &&
+ context.DisconnectedOperation()==ENoDisconnectedOperations)
+ {
+ aReasonResourceId=0;
+ IMUM_OUT();
+ return ETrue;
+ }
+ }
+ IMUM_OUT();
+ return EFalse;
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::CanUnDeleteFromEntryL()
+// ----------------------------------------------------------------------------
+TBool CPop3MtmUiData::CanUnDeleteFromEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::CanUnDeleteFromEntryL, 0, KImumMtmLog );
+ IMUM_IN();
+
+ // N.B. Current Message Centre implementation specifies that aContext is actually the entry
+ // to be undeleted, not the parent.
+ aReasonResourceId=R_EIK_TBUF_NOT_AVAILABLE;
+ if (CheckEntry(aContext))
+ {
+ const TMsvEmailEntry& context=aContext;
+ if(context.iType.iUid==KUidMsvMessageEntryValue && context.DisconnectedOperation()==EDisconnectedDeleteOperation)
+ {
+ aReasonResourceId=0;
+ IMUM_OUT();
+ return ETrue;
+ }
+ }
+ IMUM_OUT();
+ return EFalse;
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::CanDeleteServiceL()
+// ----------------------------------------------------------------------------
+TBool CPop3MtmUiData::CanDeleteServiceL(const TMsvEntry& /*aService*/, TInt& aReasonResourceId) const
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::CanDeleteServiceL, 0, KImumMtmLog );
+ IMUM_IN();
+
+ aReasonResourceId=R_EIK_TBUF_NOT_AVAILABLE;
+ IMUM_OUT();
+ return EFalse;
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::CanCopyMoveFromEntryL()
+// ----------------------------------------------------------------------------
+TBool CPop3MtmUiData::CanCopyMoveFromEntryL(const TMsvEntry& /*aContext*/, TInt& aReasonResourceId) const
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::CanCopyMoveFromEntryL, 0, KImumMtmLog );
+ IMUM_IN();
+
+ aReasonResourceId=R_EIK_TBUF_NOT_AVAILABLE;
+ IMUM_OUT();
+ return EFalse;
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::CanCopyMoveToEntryL()
+// ----------------------------------------------------------------------------
+TBool CPop3MtmUiData::CanCopyMoveToEntryL(const TMsvEntry& /*aContext*/, TInt& aReasonResourceId) const
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::CanCopyMoveToEntryL, 0, KImumMtmLog );
+ IMUM_IN();
+
+ aReasonResourceId=R_EIK_TBUF_NOT_AVAILABLE;
+ IMUM_OUT();
+ return EFalse;
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::CanReplyToEntryL()
+// ----------------------------------------------------------------------------
+TBool CPop3MtmUiData::CanReplyToEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::CanReplyToEntryL, 0, KImumMtmLog );
+ IMUM_IN();
+
+ __ASSERT_DEBUG( aContext.iMtm == KUidMsgTypePOP3, User::Panic(KImumMtmUiPanic, EPop3MtmUdWrongMtm ));
+ if ( aContext.iMtm == KUidMsgTypePOP3
+ && aContext.iType == KUidMsvMessageEntry )
+ {
+ IMUM_OUT();
+ return ETrue;
+ }
+ else
+ {
+ IMUM_OUT();
+ aReasonResourceId = R_EIK_TBUF_NOT_AVAILABLE;
+ return EFalse;
+ }
+
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::CanForwardEntryL()
+// ----------------------------------------------------------------------------
+TBool CPop3MtmUiData::CanForwardEntryL(const TMsvEntry& aContext, TInt& aReasonResourceId) const
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::CanForwardEntryL, 0, KImumMtmLog );
+ IMUM_IN();
+
+ __ASSERT_DEBUG( aContext.iMtm == KUidMsgTypePOP3, User::Panic(KImumMtmUiPanic, EPop3MtmUdWrongMtm ));
+ if ( aContext.iMtm == KUidMsgTypePOP3
+ && aContext.iType == KUidMsvMessageEntry
+ && aContext.ReadOnly() )
+ {
+ IMUM_OUT();
+ return ETrue;
+ }
+ else
+ {
+ IMUM_OUT();
+ aReasonResourceId = R_EIK_TBUF_NOT_AVAILABLE;
+ return EFalse;
+ }
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::CanCancelL()
+// ----------------------------------------------------------------------------
+TBool CPop3MtmUiData::CanCancelL(const TMsvEntry& /*aContext*/, TInt& /*aReasonResourceId*/) const
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::CanCancelL, 0, KImumMtmLog );
+ IMUM_IN();
+
+ IMUM_OUT();
+ return EFalse;
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::StatusTextL()
+// ----------------------------------------------------------------------------
+HBufC* CPop3MtmUiData::StatusTextL(const TMsvEntry& /*aContext*/) const
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::StatusTextL, 0, KImumMtmLog );
+ IMUM_IN();
+ IMUM_OUT();
+
+ // POP messages never have a status in the outbox.
+ return HBufC::NewL(0);
+ }
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::CheckEntry()
+// ----------------------------------------------------------------------------
+TBool CPop3MtmUiData::CheckEntry(const TMsvEntry& aContext) const
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::CheckEntry, 0, KImumMtmLog );
+ IMUM_IN();
+ IMUM_OUT();
+
+ return ( (aContext.iMtm==KUidMsgTypePOP3) && (aContext.iType.iUid!=KUidMsvFolderEntryValue) );
+ }
+
+
+// ----------------------------------------------------------------------------
+// CPop3MtmUiData::CreateSkinnedBitmapsL()
+// ----------------------------------------------------------------------------
+void CPop3MtmUiData::CreateSkinnedBitmapsL( TInt aNumZoomStates )
+ {
+ IMUM_CONTEXT( CPop3MtmUiData::CreateSkinnedBitmapsL, 0, KImumMtmLog );
+ IMUM_IN();
+
+ MAknsSkinInstance* skins = AknsUtils::SkinInstance();
+ TAknsItemID id;
+ CFbsBitmap* bitmap;
+ CFbsBitmap* bitmapMask;
+ TBool found = ETrue;;
+
+ CBitmapArray* array = NULL;
+
+
+ for( TInt i=KImumPop3FirstBitmapIndex; i<KImumPop3LastBitmapIndex+1; i++ )
+ {
+ found = ETrue;
+ switch( i )
+ {
+ case EMbmMuiuQgn_prop_mce_remote_sub:
+ id.Set( KAknsIIDQgnPropMceRemoteSub );
+ break;
+ case EMbmMuiuQgn_prop_mce_remote_new_sub:
+ id.Set( KAknsIIDQgnPropMceRemoteNewSub );
+ break;
+ case EMbmMuiuQgn_prop_mce_mail_fet_rea_del:
+ id.Set( KAknsIIDQgnPropMceMailFetReaDel );
+ break;
+ case EMbmMuiuQgn_prop_mce_mail_fet_read:
+ id.Set( KAknsIIDQgnPropMceMailFetRead );
+ break;
+ case EMbmMuiuQgn_prop_mce_mail_fet_unread:
+ id.Set( KAknsIIDQgnPropMceMailFetUnread );
+ break;
+ case EMbmMuiuQgn_prop_mce_mail_unfet_read:
+ id.Set( KAknsIIDQgnPropMceMailUnfetRead );
+ break;
+ case EMbmMuiuQgn_prop_mce_mail_unfet_unread:
+ id.Set( KAknsIIDQgnPropMceMailUnfetUnread );
+ break;
+ default:
+ found = EFalse;
+ break;
+ }
+
+ if( found )
+ {
+ array = new(ELeave) CArrayPtrFlat< CFbsBitmap >( aNumZoomStates );
+ CleanupStack::PushL( array );
+
+ TParse tp;
+ tp.Set( KPop3MtmUdBitmapFile, &KDC_APP_BITMAP_DIR, NULL );
+
+ AknsUtils::CreateIconL( skins, id, bitmap,
+ bitmapMask, tp.FullName(), i, i + 1 );
+
+ array->AppendL( bitmap );
+ array->AppendL( bitmapMask );
+ iIconArrays->AppendL( array );
+
+ CleanupStack::Pop();//array
+ }
+ }
+ IMUM_OUT();
+ }
+
+// End of File