--- /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 <AknsItemData.h>
+#include <AknsItemDef.h>
+
+// 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