diff -r 000000000000 -r 8466d47a6819 emailuis/emailui/inc/FreestyleEmailUiTextureManager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailuis/emailui/inc/FreestyleEmailUiTextureManager.h Thu Dec 17 08:39:21 2009 +0200 @@ -0,0 +1,345 @@ +/* +* 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" +* 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: FreestyleEmailUi generic texturemanager definition +* +*/ + + + +#ifndef __FREESTYLEEMAILUI_TEXTUREMANAGER_H__ +#define __FREESTYLEEMAILUI_TEXTUREMANAGER_H__ + + +// SYSTEM INCLUDES +#include"FSDelayedLoader.h" +// SF +#include +#include +#include +#include +// +#include + +// FORWARD DECLARATIONS +class CAlfEnv; +class CFreestyleEmailUiAppUi; +class CAlfFrameBrush; + + +enum TFSEmailUiTextures + { + // FIRST TEXTURE ID + ETextureFirst = 6000, // non-texture + + // OTHER + ETextureOtherFirst = 6001, // non-texture + EListTextureSelector = ETextureOtherFirst, + EListTextureNodeExpanded, + EListTextureNodeCollapsed, + EListTextureControlButton, + EListTextureMailboxDefaultIcon, + EListControlBarMailboxDefaultIcon, + EBackgroundTextureViewerHeading, + EBackgroundTextureBar, + EBackgroundTextureThumb, + EBackgroundTextureMailList, + EListControlMarkIcon, + EListControlMenuIcon, + EMailListBarBgIcon, + ESearchLookingGlassIcon, + EControlBarListBackgroundTexture, + EControlBarButtonBackgroundTexture, + EControlBarAscendingArrowTexture, + EControlBarDescendingArrowTexture, + + // MESSAGE TEXTURES + ETextureMessageFirst, // non-texture + EMessageReadIcon = ETextureMessageFirst, + EMessageLowPrioReadIcon, + EMessageLowPrioReadIconAttachment, + EMessageReadIconAttachment, + EMessageReadRepliedIcon, + EMessageReadRepliedIconAttachment, + EMessageReadRepliedHighPrioIcon, + EMessageReadRepliedHighPrioIconAttachment, + EMessageReadRepliedLowPrioIcon, + EMessageReadRepliedLowPrioIconAttachment, + EMessageReadForwardedIcon, + EMessageReadForwardedIconAttachment, + EMessageReadForwardedHighPrioIcon, + EMessageReadForwardedHighPrioIconAttachment, + EMessageReadForwardedLowPrioIcon, + EMessageReadForwardedLowPrioIconAttachment, + EMessageUnreadIcon, + EMessageUnreadIconAttachment, + EMessageLowPrioUnreadIcon, + EMessageLowPrioUnreadIconAttachment, + EMessageHighPrioReadIcon, + EMessageHighPrioReadIconAttachment, + EMessageHighPrioUnreadIcon, + EMessageHighPrioUnreadIconAttachment, + EAttachmentIcon, + EMessageUnreadForwardedIcon, + EMessageUnreadForwardedIconAttachment, + EMessageUnreadForwardedHighPrioIcon, + EMessageUnreadForwardedHighPrioIconAttachment, + EMessageUnreadForwardedLowPrioIcon, + EMessageUnreadForwardedLowPrioIconAttachment, + EMessageUnreadRepliedIcon, + EMessageUnreadRepliedIconAttachment, + EMessageUnreadRepliedHighPrioIcon, + EMessageUnreadRepliedHighPrioIconAttachment, + EMessageUnreadRepliedLowPrioIcon, + EMessageUnreadRepliedLowPrioIconAttachment, + + // CALENDAR EVENT TEXTURES + ETextureCalendarFirst, // non-texture + EMessageCalInvitation = ETextureCalendarFirst, + EMessageCalInvitationRead, + EMessageCalInvitationAttachments, + EMessageCalInvitationReadAttachments, + EMessageCalInvitationHighPrio, + EMessageCalInvitationReadHighPrio, + EMessageCalInvitationAttachmentsHighPrio, + EMessageCalInvitationReadAttachmentsHighPrio, + EMessageCalInvitationLowPrio, + EMessageCalInvitationReadLowPrio, + EMessageCalInvitationAttachmentsLowPrio, + EMessageCalInvitationReadAttachmentsLowPrio, + EMessageCalInvitationCancelled, + + // GRID TEXTURES + ETextureGridFirst, // non-texture + EGridInboxTexture = ETextureGridFirst, + EGridDirectoryTexture, + EGridSettingsTexture, + EGridAddNewBoxTexture, + EGridHelpTexture, + EGridAboutTexture, + EGridBackground, + + // FLAG ICONS + ETextureFlagFirst, // non-texture + EFollowUpFlag = ETextureFlagFirst, + EFollowUpFlagComplete, + EFollowUpFlagList, + EFollowUpFlagCompleteList, + + // FOLDER LIST ICONS + ETextureFolderFirst, // non-texture + EFolderListMoreFoldersTexture = ETextureFolderFirst, + EFolderListInboxTexture, + EFolderListInboxSubfoldersTexture, + EFolderListOutboxTexture, + EFolderListDraftsTexture, + EFolderListSentTexture, + EFolderListDeletedItemsTexture, + EFolderListServerFoldersTexture, + EFolderListEmailAccountTexture, + EFolderListMoreFoldersTexturePopup, + EFolderListInboxTexturePopup, + EFolderListInboxSubfoldersTexturePopup, + EFolderListOutboxTexturePopup, + EFolderListDraftsTexturePopup, + EFolderListSentTexturePopup, + EFolderListDeletedItemsTexturePopup, + EFolderListServerFoldersTexturePopup, + EFolderListEmailAccountTexturePopup, + + + + // STATUS INDICATOR ICONS + ETextureStatusFirst, // non-texture + EStatusTextureSynchronising = ETextureStatusFirst, + EStatusTextureConnected, + EStatusTextureConnecting, + EStatusTextureDisconnectedGeneral, + EStatusTextureDisconnectedError, + EStatusTextureDisconnectedLowBattery, + EStatusTextureMailSent, + + // VIEWER TEXTURES + ETextureViewerFirst, // non-texture + EViewerTextureHeaderBackGround = ETextureViewerFirst, + EViewerHighlightTexture, + + // COMPOSER TEXTURES + ETextureComposerFirst, // no-texture + EComposerTexturePriorityLow = ETextureComposerFirst, + EComposerTexturePriorityHigh, + + // ATTACHMENT ICONS + ETextureAttachmentsFirst, // non-texture + EAttachmentsDocFile = ETextureAttachmentsFirst, + EAttachmentsHtmlFile, + EAttachmentsImageFile, + EAttachmentsPdfFile, + EAttachmentsPptFile, + EAttachmentsRtfFile, + EAttachmentsUnknownFile, + EAttachmentsXls, + EAttachmentsNotDownloaded, + EAttachmentsCancelDownload, + EAttachmentsDownload, + EAttachmentsSaveAll, + EAttachmentsCancelAll, + EAttachmentsViewAll, + + // TEXTURE COUNT + ETextureCount, + + // Branded mailbox icons. Max 101 icons 3 sizes of each + // (Launcher grid, Inbox view and Folders dropdown view) + EBrandedIconStart = 8000, + EBrandedIconEnd = 8303, + + // GRID ECOM PLUGIN ICONS, Dynamically updated, + // do not add icons after this + EGridPluginIconFirst + }; + +class CFreestyleEmailUiTextureManager: + public CAlfControl, + public MAlfBitmapProvider, + public MFsDelayedLoadingInterface + { +// to prevent creating multiple instances NewL has been hidden +// and AppUi has been declared as friend class +friend class CFreestyleEmailUiAppUi; + +public: + // Get correct backgroung image for current resolution + CAlfTexture& BackgroundForThisResolutionL(); + // Get flush background image for the current resolution + CAlfTexture& WatermarkBackgroundForThisResolutionL(); + // Get any texture by ID + CAlfTexture& TextureByIndex( TFSEmailUiTextures aIndex ); + // Get new skinned selector brush object for gen ui list. + // Ownership is NOT transferred to caller. + CAlfFrameBrush* ListSelectorBrushL(); + // Get new skinned grid selector brush object + // Ownership is NOT transferred to caller. + CAlfFrameBrush* GridSelectorBrushL(); + // Get new skinned selector brush object for gen ui control bar. + // Ownership IS transferred to caller. + CAlfFrameBrush* NewCtrlBarSelectorBrushLC(); + // + // Get new skinned selector brush object for gen ui popup list. + // Ownership IS transferred to caller. + CAlfFrameBrush* NewListSelectorBrushL(); + // + // Get new scrollbar top background object. + // Ownership IS transferred to caller. + CAlfFrameBrush* NewScrollBarTopBgBrushLC(); + // Get new scrollbar bottom background object. + // Ownership IS transferred to caller. + CAlfFrameBrush* NewScrollBarBottomBgBrushLC(); + // Get new scrollbar center background object. + // Ownership IS transferred to caller. + CAlfFrameBrush* NewScrollBarCenterBgBrushLC(); + // Get new scrollbar thumb object. + // Ownership IS transferred to caller. + CAlfFrameBrush* NewScrollBarThumbBrushLC(); + // Get new mail list separator brush + // Ownership IS transferred to caller. + CAlfFrameBrush* NewMailListSeparatorBgBrushLC(); + // Get new mail list separator brush + // Ownership IS transferred to caller. + CAlfImageBrush* NewControlBarListBgBrushLC(); + // Get new controlbar button bg brush + // Ownership IS transferred to caller. + CAlfImageBrush* NewControlBarButtonBgBrushLC(); + + // + // Ownerhip not transfered. + CAlfFrameBrush* TitleDividerBgBrushL(); + // + + // Create branded mailbox icon into TextureManager + void CreateBrandedMailboxTexture( CGulIcon* aIcon, const TUid aPluginId, const TUint aMailboxId, const TSize& aSize ); + // Get branded mailbox icon + CAlfTexture& TextureByMailboxIdL( const TUid aPluginId, const TUint aMailboxId, const TSize& aSize ); + +public: // from MAlfBitmapProvider + + void ProvideBitmapL(TInt aId, CFbsBitmap*& aBitmap, CFbsBitmap*& aMaskBitmap); + +public: // from MFsDelayedLoadingInterface + + /** + * DelayLoadCallback + * Delayed loading callback + * @return ETrue to keep calling, EFalse to stop callbacks + */ + TInt DelayLoadCallback(); + +private: + // This class should not be used directly, use iAppUi->TextureManger() instance + static CFreestyleEmailUiTextureManager* NewL( CAlfEnv& aEnv, CFreestyleEmailUiAppUi* aAppUi ); + virtual ~CFreestyleEmailUiTextureManager(); + + CFreestyleEmailUiTextureManager( CAlfEnv& aEnv, CFreestyleEmailUiAppUi* aAppUi ); + void ConstructL(CAlfEnv& aEnv); + void CreateTexturesL(); + + void InitTextureArray(); + void LoadTextureL( TFSEmailUiTextures aTextureId ); // CHECKLATER - is this ok? see migration 3.12.1 + // S60 Skin support + void GetBackgroundBitmapL (CFbsBitmap*& bitmap) const; + void DrawContextL (CFbsBitmap*& bitmap, TAknsItemID id, TSize rsize) const; + // + +private: + // ALF environment - CHECKLATER - added this myself, but should be alright + CAlfEnv* iEnv; + + CFreestyleEmailUiAppUi* iAppUi; + CAlfFrameBrush* iFrameBrush; + // + CAlfFrameBrush* iNewFrameBrush; + CAlfFrameBrush* iTitleDividerBgBrush; + // + + /** + * array for holding texture objects + */ + RPointerArray iTextures; + + /** + * array for holding branded mailbox icons + */ + RPointerArray iBrandedMailboxIcons; + RArray iPluginId; + RArray iMailboxId; + RArray iSize; + /* + * Temporary variables for holding the mailbox icon and id + * before create. + */ + CFbsBitmap* iTmpBitmap; + CFbsBitmap* iTmpMaskBitmap; + TUid iTmpPluginId; + TUint iTmpMailboxId; + TSize iTmpSize; + + /** + * index indicating delay loading progress within + * textures array + */ + TInt iDelayLoadIndex; + + }; + +#endif // __FREESTYLEEMAILUI_LISTCONTROL_H__ +