diff -r 5b6f26637ad3 -r f4a778e096c2 phonebookui/Phonebook2/Presentation/inc/CPbk2ImageManagerImpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookui/Phonebook2/Presentation/inc/CPbk2ImageManagerImpl.h Wed Sep 01 12:29:52 2010 +0100 @@ -0,0 +1,156 @@ +/* +* Copyright (c) 2005-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: +* Class CPbk2ImageManager implementation classes. +* +*/ + + +#ifndef CPBK2IMAGEMANAGERIMPL_H +#define CPBK2IMAGEMANAGERIMPL_H + +// INCLUDES +#include "CPbk2ImageManager.h" +#include "VPbkFieldType.hrh" // TVPbkFieldStorageType + +// CONSTANTS +// Size of thumbnail images stored to contacts +#define KPbk2PersonalImageSize TSize(150,150) + +// FORWARD DECLARATIONS +class MPbk2ImageGetObserver; +class MPbk2ImageSetObserver; +class CVPbkContactManager; +class MVPbkBaseContactField; + + +// CLASS DECLARATION +/** + * Abstract thumbnail reader interface. + */ +class MPbk2ImageReader : + public MPbk2ImageOperation + { + public: // Interface + /** + * Starts reading a thumbnail from the contact specified at creation + * time. + * @param aParameters Optional parameters for the thumbnail. + * + * @see TPbkImageLoadParameters + */ + virtual void StartReadL + (const TPbk2ImageManagerParams* aParameters = NULL) =0; + + /** + * Cancels reading operation. + */ + virtual void CancelRead() =0; + }; + + +/** + * Abstract thumbnail image writer interface. + */ +class MPbk2ImageWriter : + public MPbk2ImageOperation + { + public: // Interface + /** + * Starts writing a bitmap to the contact. + * + * @param aBitmap bitmap to save to contact. + */ + virtual void StartWriteL(const CFbsBitmap& aBitmap) =0; + + /** + * Starts writing an image buffer to the contact. + * + * @param aBuffer image buffer to save to contact. + */ + virtual void StartWriteL(const TDesC8& aBuffer) =0; + + /** + * Starts writing a file image to the contact. + * + * @param aFileName file image to save to contact. + */ + virtual void StartWriteL(const TDesC& aFileName) = 0; + + /** + * Cancels writing operation. + */ + virtual void CancelWrite() =0; + }; + + +/** + * Factory class for creating concrete MPbk2ImageReader and + * MPbk2ImageWriter instances. + */ +class Pbk2ImageOperationFactory + { + public: + /** + * Creates a concrete image reader object based on the type of + * the thumbnail field in the contact. + * + * @param aContactManager Contact manager + * @param aContact contact to get thumbnail from. + * @param aObserver observer to notify about progress of the operation. + * @param aFieldType Phonebook field type of fetched image. + * Default field type is EPbkFieldIdThumbnailImage. + * @return thumbnail reader object or NULL if aContact contains no + * thumbnail. + */ + static MPbk2ImageReader* CreateReaderLC + (CVPbkContactManager& aContactManager, + const MVPbkBaseContact& aContact, + MPbk2ImageGetObserver& aObserver, + const MVPbkFieldType& aFieldType); + + /** + * Creates a concrete writer object based on the type of the thumbnail + * field in the contact or in global field typing. + * + * @param aContactManager Contact manager + * @param aContact contact to write thumbnail to. + * @param aObserver observer to notify about progress of the + * operation. + * @param aFieldType Phonebook field type of fetched image. + * Default field type is EPbkFieldIdThumbnailImage. + * @return thumbnail writer object. + */ + static MPbk2ImageWriter* CreateWriterLC + (CVPbkContactManager& aContactManager, + MVPbkStoreContact& aContact, + MPbk2ImageSetObserver& aObserver, + const MVPbkFieldType& aFieldType); + + /** + * Returns true if aStorageType is supported for thumbnail field. + * + * @param aField Contact field + * @return ETrue if field is supported, other EFalse + */ + static TBool SupportedStorageType(const MVPbkBaseContactField* aField); + + private: + /// Namespace class, constructor not implemented. + Pbk2ImageOperationFactory(); + }; + +#endif // CPBK2IMAGEMANAGERIMPL_H + +// End of File