diff -r 000000000000 -r ff3acec5bc43 mpxplugins/viewplugins/views/collectionviewhg/inc/mpxcollectionviewhgtnloader.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpxplugins/viewplugins/views/collectionviewhg/inc/mpxcollectionviewhgtnloader.h Thu Dec 17 08:45:05 2009 +0200 @@ -0,0 +1,101 @@ + + +/* +* 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: Thumbnail loader +* +*/ + +#ifndef MPXCOLLECTIONVIEWHGTNLOADER_H_ +#define MPXCOLLECTIONVIEWHGTNLOADER_H_ + +#include +#include // needs to be included here because of a bug in thumbnailmanagerobserver.h +#include + +class CThumbnailManager; +class CFbsBitmap; +class CAsyncCallBack; + +/** + * Observer iface + */ +class MMpxTNLoaderObserver + { +public: + virtual void TNReadyL(TInt aError, CFbsBitmap* aBitmap, CFbsBitmap* aMask, TInt aIndex) = 0; + }; + +/** + * TN Loader + */ +NONSHARABLE_CLASS( CMpxTNLoader ) : public CBase, public MThumbnailManagerObserver + { +public: // CONSTRUCTORS & DESCTRUCTOR + + static CMpxTNLoader* NewL(MMpxTNLoaderObserver& aObserver, TThumbnailSize aSize ); + virtual ~CMpxTNLoader(); + +public: // NEW FUNCTIONS + + void LoadThumbL(TInt aIndex, const TDesC& aFileName ); + void CancelThumb( TInt aIndex ); + void CancelAll(); + void SetSizeL( TThumbnailSize aSize ); + +private: // From MThumbnailManagerObserver + + void ThumbnailPreviewReady( MThumbnailData& aThumbnail, + TThumbnailRequestId aId ); + void ThumbnailReady( TInt aError, MThumbnailData& aThumbnail, + TThumbnailRequestId aId ); + +private: // CONSTRUCTORS + + CMpxTNLoader(MMpxTNLoaderObserver& aObserver, + TThumbnailSize aSize ); + void ConstructL(); + +private: // NEW FUNCTIONS + + TInt FindLoadingById(TThumbnailRequestId aId, TBool aRemove = EFalse); + TInt FindLoadingByIndex(TInt aIndex, TBool aRemove = EFalse); + static TInt LoadThumbnail( TAny* aSelf ); + void LoadNextTN(); + +private: // DATA + + MMpxTNLoaderObserver& iObserver; + CThumbnailManager* iTnEngine; // Own + + // Loading information + class TLoadingTN + { + public: + TLoadingTN(TThumbnailRequestId aId, TInt aIndex, const TDesC& aFileName ) + : iId(aId), iIndex(aIndex), iFileName( aFileName ) + { + } + + TThumbnailRequestId iId; + TInt iIndex; + TFileName iFileName; + }; + + RPointerArray iLoading; // Loading Thubmbs + CAsyncCallBack* iAsyncCallBack; + TThumbnailSize iSize; + }; + +#endif // MPXCOLLECTIONVIEWHGTNLOADER_H_