diff -r 000000000000 -r 05e9090e2422 skins/AknSkins/inc/AknsItemDataFactory.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/skins/AknSkins/inc/AknsItemDataFactory.h Thu Dec 17 09:14:12 2009 +0200 @@ -0,0 +1,265 @@ +/* +* Copyright (c) 2002-2008 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: Defines an internal static factory class AknsItemDataFactory. +* +*/ + + +#ifndef AKNSITEMDATAFACTORY_H +#define AKNSITEMDATAFACTORY_H + +// INCLUDES +#include +#include + +// FORWARD DECLARATIONS +struct TAknsImageAttributeData; + +// CLASS DECLARATION + +/** +* Static factory class that creates item data objects based on item definitions. +* +* This is an internal static class with no exported functions. +* The class is not intended for derivation outside the library. +* +* @since 2.0 +* +* @internal +*/ +class AknsItemDataFactory + { + public: // New functions + + /** + * Creates new item data object specified by given item definition. + * + * @param aDef Item definition that specifies the item data to be + * constructed. + * + * @return Newly created item data. Type of the item data matches + * the one of the given item definition and pointer can be + * casted to the corresponding derived type. + * + * @par Exceptions: + * If construction fails, leaves with an error code. + * + * @internal + */ + static CAknsItemData* CreateL( const CAknsItemDef* aDef ); + + protected: // New functions + + /** + * Creates a bitmap item data object. This is an internal method used by + * AknsItemDataFactory::CreateL() to construct item data objects of type + * ::EAknsITBitmap. + * + * @param aFilename Filename of the MBM file. + * + * @param aIndex Index of the bitmap in the file. + * + * @param aAttributes Image attributes. + * + * @return Newly created bitmap item data object. + * + * @par Exceptions: + * If construction fails, leaves with an error code. + * + * @internal + */ + static CAknsBitmapItemData* CreateBitmapL( + const TDesC& aFilename, const TInt aIndex, + const TAknsImageAttributeData* aAttributes ); + + /** + * Creates a masked bitmap item data object. This is an internal method + * used by AknsItemDataFactory::CreateL() to construct item data objects + * of type ::EAknsITMaskedBitmap. + * + * @param aFilename Filename of the MBM file. + * + * @param aIndex Index of the bitmap in the file. + * + * @param aMaskIndex Index of the bitmap mask in the file. + * + * @param aAttributes Image attributes. + * + * @return Newly created masked bitmap item data object. + * + * @par Exceptions: + * If construction fails, leaves with an error code. + * + * @internal + */ + static CAknsMaskedBitmapItemData* CreateMaskedBitmapL( + const TDesC& aFilename, const TInt aIndex, const TInt aMaskIndex, + const TAknsImageAttributeData* aAttributes ); + + /** + * Creates a color table item data object. This is an internal method + * used by AknsItemDataFactory::CreateL() to construct item data objects + * of type ::EAknsITColorTable. + * + * @param aNumberOfColors Number of colors in color table. + * + * @param aColors Pointer to the first color. + * + * @param aAttributes Image attributes. + * + * @return Newly created color table item data object. + * + * @par Exceptions: + * If construction fails, leaves with an error code. + * + * @internal + */ + static CAknsColorTableItemData* CreateColorTableL( + const TInt aNumberOfColors, const TAknsColorTableEntry* aColors, + const TAknsImageAttributeData* aAttributes ); + + /** + * Creates an image table item data object. This is an internal + * method used by AknsItemDataFactory::CreateL() to construct item + * data objects of type + * ::EAknsITImageTable. + * + * @param aNumberOfImages Number of images in the array. + * + * @param aImages Pointer to the first image item ID. + * + * @param aAttributes Image attributes. + * + * @return Newly created image table item data object. + * + * @par Exceptions: + * If construction fails, leaves with an error code. + * + * @internal + */ + static CAknsImageTableItemData* CreateImageTableL( + const TInt aNumberOfImages, const TAknsItemID* aImages, + const TAknsImageAttributeData* aAttributes ); + + /** + * Creates a bitmap animation item data object. This is an internal + * method used by AknsItemDataFactory::CreateL() to construct item + * data objects of type + * ::EAknsITBmpAnim. + * + * @param aNumberOfImages Number of images in the array. + * + * @param aImages Pointer to the first image item ID. + * + * @param aFrameInfos Pointer to the first frame entry. + * + * @param aLastFrameBg Boolean value. + * + * @param aFrameInterval TInt16 value. + * + * @param aPlayMode TInt16 value. + * + * @param aFlash Boolean value. + * + * @param aAttributes Image attributes. + * + * @return Newly created bitmap animation item data object. + * + * @par Exceptions: + * If construction fails, leaves with an error code. + * + * @internal + */ + static CAknsBmpAnimItemData* CreateBmpAnimL( + const TInt aNumberOfImages, const TAknsItemID* aImages, + const TAknsBmpAnimFrameInfo* aFrameInfos, + const TBool aLastFrameBg, const TInt16 aFrameInterval, + const TInt16 aPlayMode, const TBool aFlash, + const TAknsImageAttributeData* aAttributes ); + + /** + * Creates a string item data object. This is an internal method + * used by AknsItemDataDataFactory::CreateL() to construct item + * data objects of type + * ::EAknsITString. + * + * @since 2.6 + * + * @param aString The string value. + * + * @par Exceptions: + * If construction fails, leaves with an error code. + * + * @internal + */ + static CAknsStringItemData* CreateStringL( + const TDesC& aString ); + + /** + * Creates an effect queue item data object. This is an internal method + * used by AknsItemDataDataFactory::CreateL() to construct item + * data objects of type + * ::EAknsITEffectQueue. + * + * @since 2.8 + * + * @param aDef item definition to base the effect queue item data object. + * + * @par Exceptions: + * If construction fails, leaves with an error code. + * + * @internal + */ + static CAknsEffectQueueItemData* CreateEffectQueueL( + const CAknsEffectQueueItemDef* aDef ); + + /** + * Creates an animation item data object. This is an internal method + * used by AknsItemDataDataFactory::CreateL() to construct item data + * objects of type + * ::EAknsITAnimation. + * + * @since 3.0 + * + * @par Exceptions: + * If construction fails, leaves with an error code. + * + * @internal + */ + static CAknsAnimationItemData* CreateAnimationL( + const CAknsAnimationItemDef* aDef ); + + /** + * Internal utility method for setting image attributes. + * + * @param aItemData Image item data object. + * + * @param aAttributes Attributes to be set. If @c NULL is given, + * default attributes are set. + */ + static void SetAttributesL( CAknsImageItemData* aItemData, + const TAknsImageAttributeData* aAttributes ); + + private: // Prohibited constructors and destructor + + // Static class, prohibited. + AknsItemDataFactory(); + // Static class, prohibited. + ~AknsItemDataFactory(); + + }; + +#endif // AKNSITEMDATAFACTORY_H + +// End of File