email/imum/Mtms/Src/Pop3MtmUiData.cpp
branchRCL_3
changeset 60 7fdbb852d323
parent 0 72b543305e3a
--- /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