--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uiresources_pub/skins_api/inc/AknsItemData.h Thu Dec 17 09:14:12 2009 +0200
@@ -0,0 +1,1328 @@
+/*
+* Copyright (c) 2002 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 public item data classes.
+*
+*/
+
+
+#ifndef AKNSITEMDATA_H
+#define AKNSITEMDATA_H
+
+// INCLUDES
+#include <AknsItemID.h>
+#include <AknsRlEffect.h>
+#include <gdi.h>
+
+// FORWARD DECLARATIONS
+class CFbsBitmap;
+struct TAknsAppIconInfo;
+struct TAknsImageAttributeData;
+struct TAknsColorTableEntry;
+struct TAknsBmpAnimFrameInfo;
+class CAknsEffectParameter;
+class MAknsRlCommandIterator;
+class MAknsAlIterator;
+class CAknsNamedReference;
+class CAknsSizeBoundParameter;
+struct TAknsAlAnimationCommandData;
+struct TAknsAlTimingModelData;
+struct TAknsAlAnimationValueData;
+struct TAknsAlNamedReferenceData;
+struct TAknsAlSizeBoundParameterData;
+
+// CLASS DECLARATIONS
+
+/**
+* Base class for item data classes.
+* Item data encapsulates type information and resource instance (such as
+* CFbsBitmap object) of a specific skin item. Since actual data entries vary
+* depending on the type of the item, CAknsItemData contains only type
+* information and can not be instantiated.
+*
+* This is a public class with exported functions.
+* The class is not intended for derivation outside the library.
+*
+* @lib AknSkins.lib
+*
+* @since 2.0
+*/
+NONSHARABLE_CLASS(CAknsItemData) : public CBase
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Destructor.
+ * CAknsItemData itself has no dynamically allocated members, but
+ * derived classes may have them.
+ */
+ virtual ~CAknsItemData();
+
+ public: // New functions
+
+ /**
+ * Sets the perceived type of this item without affecting the
+ * real instance inheritance.
+ *
+ * @since 2.8
+ *
+ * @internal
+ *
+ * @param aType New type.
+ */
+ void SetType( const TAknsItemType aType );
+
+ /**
+ * Returns the type of the item data object.
+ * This method can be used to provide run-time type information.
+ * Corresponding classes are listed in definition of ::TAknsItemType.
+ *
+ * @since 2.0
+ *
+ * @return Type of the item data as TAknsItemType.
+ */
+ IMPORT_C TAknsItemType Type() const;
+
+ protected: // C++ protected constructor for derived classes
+
+ /**
+ * C++ constructor for derived classes.
+ * Constructs item data object with given item type.
+ *
+ * @param aType Item type of the new item data object.
+ *
+ * @internal
+ */
+ CAknsItemData( const TAknsItemType aType );
+
+ protected: // Data
+
+ TAknsItemType iType; //!< Type of the item data object.
+
+ };
+
+/**
+* Image item data.
+* Image item data contains (in addition to base class members) image
+* attributes, such as size or alignment. Item type for image item data
+* objects is ::EAknsITImage.
+*
+* This is a public class with exported functions.
+* The class is not intended for derivation outside the library.
+*
+* @lib AknSkins.lib
+*
+* @since 2.0
+*/
+NONSHARABLE_CLASS(CAknsImageItemData) : public CAknsItemData
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Destructor.
+ */
+ virtual ~CAknsImageItemData();
+
+ public: // New functions
+
+ /**
+ * Sets the image attributes for this image item data object.
+ *
+ * @since 2.0
+ *
+ * @param aAttributes Attribute data structure containing the new
+ * values.
+ */
+ IMPORT_C void SetAttributesL(
+ const TAknsImageAttributeData& aAttributes );
+
+ /**
+ * Returns a pointer to the image attribute structure owned by the
+ * item data object.
+ *
+ * @since 2.0
+ *
+ * @return Pointer to the image attribute structure, or @c NULL if
+ * there is none.
+ */
+ IMPORT_C const TAknsImageAttributeData* Attributes() const;
+
+ IMPORT_C void SetParentIID(const TAknsItemID& aIID);
+ IMPORT_C void SetDrawRect(const TRect& aRect);
+ IMPORT_C TAknsItemID ParentIID();
+ IMPORT_C TRect DrawRect();
+
+
+ protected: // C++ protected constructor for derived classes
+
+ /**
+ * C++ constructor for derived classes.
+ * Constructs an image item data object with given item type.
+ *
+ * @param aType Item type of the new item data object.
+ *
+ * @internal
+ */
+ CAknsImageItemData( const TAknsItemType aType );
+
+ protected: // Data
+
+ TAknsImageAttributeData* iAttributeData;
+ TAknsItemID iParentIID;
+ TRect iDrawRect;
+
+
+ };
+
+/**
+* Bitmap item data.
+* Bitmap item data contains (in addition to base class members) CFbsBitmap
+* instance of the bitmap. Item type for bitmap item data is always
+* ::EAknsITBitmap.
+*
+* This is a public class with exported functions.
+* The class is not intended for derivation outside the library.
+*
+* @lib AknSkins.lib
+*
+* @since 2.0
+*/
+NONSHARABLE_CLASS(CAknsBitmapItemData) : public CAknsImageItemData
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ * Constructs a new CAknsBitmapItemData object with bitmap set to
+ * @c NULL. Bitmap must be set afterwards by using
+ * SetBitmap(CFbsBitmap* aBitmap) method.
+ *
+ * @return Newly constructed CAknsBitmapItemData object.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error
+ * code.
+ */
+ IMPORT_C static CAknsBitmapItemData* NewL();
+
+ /**
+ * Destructor.
+ * Deletes bitmap object, if present.
+ */
+ virtual ~CAknsBitmapItemData();
+
+ public: // New functions
+
+ /**
+ * Sets the bitmap object for this item data instance.
+ *
+ * @since 2.0
+ *
+ * @c NULL value can be used to detach bitmap from item data.
+ *
+ * @param aBitmap Pointer to bitmap instance. Ownership of the bitmap
+ * object is transferred to item data. @c NULL value is also valid.
+ */
+ IMPORT_C void SetBitmap( CFbsBitmap* aBitmap );
+
+ /**
+ * Sets the bitmap object for this item data instance and destroys
+ * previous one, if any.
+ *
+ * @since 2.0
+ *
+ * @param aBitmap Pointer to bitmap instance. Ownership of the bitmap
+ * object is transferred to item data. @c NULL value is also valid.
+ */
+ IMPORT_C void DestroyAndSetBitmap( CFbsBitmap* aBitmap );
+
+ /**
+ * Returns the current bitmap object owned by item data instance.
+ *
+ * @since 2.0
+ *
+ * @return Pointer to bitmap instance, or @c NULL if none is currently
+ * associated with this item data.
+ */
+ IMPORT_C CFbsBitmap* Bitmap();
+
+ protected: // C++ protected constructor
+
+ /**
+ * C++ protected constructor.
+ * Constructs a new CAknsBitmapItemData with bitmap set to @c NULL.
+ *
+ * @param aType Item type of the new item data object. While this
+ * is always ::EAknsITBitmap for instances of this class, derived
+ * classes may specify another value.
+ *
+ * @internal
+ */
+ CAknsBitmapItemData( const TAknsItemType aType );
+
+ protected: // Data
+ CFbsBitmap* iBitmap; //!< Pointer to associated bitmap instance.
+
+ };
+
+/**
+* Masked bitmap item data.
+* Masked bitmap item data contains (in addition to base class members) an
+* additional member of type CFbsBitmap for the bitmap mask.
+* Item type for bitmap item data is always ::EAknsITMaskedBitmap.
+*
+* This is a public class with exported functions.
+* The class is not intended for derivation outside the library.
+*
+* @lib AknSkins.lib
+*
+* @since 2.0
+*/
+NONSHARABLE_CLASS(CAknsMaskedBitmapItemData) : public CAknsBitmapItemData
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ * Constructs a new CAknsMaskedBitmapItemData object with bitmaps set to
+ * @c NULL. Bitmaps must be set afterwards by using
+ * SetBitmap(CFbsBitmap* aBitmap) and SetMask(CFbsBitmap* aBitmap) methods.
+ *
+ * @return Newly constructed CAknsMaskedBitmapItemData object.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error
+ * code.
+ */
+ IMPORT_C static CAknsMaskedBitmapItemData* NewL();
+
+ /**
+ * Destructor.
+ * Deletes bitmap objects, if present.
+ */
+ virtual ~CAknsMaskedBitmapItemData();
+
+ public: // New functions
+
+ /**
+ * Sets the mask bitmap object for this item data instance.
+ * @c NULL value can be used to detach bitmap mask from item data.
+ *
+ * @since 2.0
+ *
+ * @param aMask Pointer to mask instance. Ownership of the bitmap
+ * object is transferred to item data. @c NULL value is also valid.
+ */
+ IMPORT_C void SetMask( CFbsBitmap* aMask );
+
+ /**
+ * Sets the mask bitmap object for this item data instance and destroys
+ * previous one, if any.
+ *
+ * @since 2.0
+ *
+ * @param aMask Pointer to mask instance. Ownership of the bitmap
+ * object is transferred to item data. @c NULL value is also valid.
+ */
+ IMPORT_C void DestroyAndSetMask( CFbsBitmap* aMask );
+
+ /**
+ * Returns the current bitmap mask object owned by item data instance.
+ *
+ * @since 2.0
+ *
+ * @return Pointer to mask instance, or @c NULL if none is currently
+ * associated with this item data.
+ */
+ IMPORT_C CFbsBitmap* Mask();
+
+ protected: // C++ protected constructor
+
+ /**
+ * C++ protected constructor.
+ * Constructs a new CAknsMaskedBitmapItemData with bitmaps set to @c NULL.
+ *
+ * @param aType Item type of the new item data object. While this
+ * is always ::EAknsITMaskedBitmap for instances of this class, derived
+ * classes may specify another value.
+ *
+ * @internal
+ */
+ CAknsMaskedBitmapItemData( const TAknsItemType aType );
+
+ protected: // Data
+ CFbsBitmap* iMask; //!< Pointer to associated mask bitmap instance.
+
+ };
+
+/**
+* Color table item data.
+* Color table item data contains (in addition to base class members) color
+* array of TRGB values. Item type for color item data is always
+* ::EAknsITColorTable.
+*
+* This is a public class with exported functions.
+* The class is not intended for derivation outside the library.
+*
+* @lib AknSkins.lib
+*
+* @since 2.0
+*/
+NONSHARABLE_CLASS(CAknsColorTableItemData) : public CAknsImageItemData
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ * Constructs a new CAknsColorTableItemData object. Values must
+ * be set separately using SetColorsL.
+ *
+ * @return Newly constructed CAknsColorTableItemData object.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error
+ * code.
+ */
+ IMPORT_C static CAknsColorTableItemData* NewL();
+
+ /**
+ * Destructor.
+ * Destroys color value array.
+ */
+ virtual ~CAknsColorTableItemData();
+
+ public: // New functions
+
+ /**
+ * Sets color values for this item data instance.
+ *
+ * @since 2.0
+ *
+ * @param aNumberOfColors Number of colors in aColors.
+ *
+ * @param aColors Pointer to first color value. Values are copied
+ * into an internal array.
+ */
+ IMPORT_C void SetColorsL( const TInt aNumberOfColors,
+ const TAknsColorTableEntry* aColors );
+
+ /**
+ * Returns the indexed color value.
+ *
+ * @since 2.0
+ *
+ * @param aIndex Index of the color to be retrieved. This must
+ * be within 0 (inclusive) and aNumberOfColors (exclusive).
+ *
+ * @return Color value as TInt. If the value is -1, RGB value
+ * should be queried instead.
+ *
+ * @par Note:
+ * This method does not perform any bounds checking. An access
+ * violation or panic will occur, if the given index is not
+ * within the bounds of the internal array. Use @c GetColorL
+ * instead, if such checking is required.
+ */
+ IMPORT_C TInt ColorIndexed( const TInt aIndex ) const;
+
+ /**
+ * Returns the RGB color value.
+ *
+ * @since 2.0
+ *
+ * @param aIndex Index of the color to be retrieved. This must
+ * be within 0 (inclusive) and aNumberOfColors (exclusive).
+ *
+ * @return Color value as TRgb. Note that the value is only
+ * valid if ColorIndexed() returned -1.
+ *
+ * @par Note:
+ * This method does not perform any bounds checking. An access
+ * violation or panic will occur, if the given index is not
+ * within the bounds of the internal array. Use @c GetColorL
+ * instead, if such checking is required.
+ */
+ IMPORT_C TRgb ColorRgb( const TInt aIndex ) const;
+
+ /**
+ * Retrieves a color value (indexed or RGB) with bounds checking.
+ *
+ * @since 2.6
+ *
+ * @param aIndex Index of the color to be retrieved.
+ *
+ * @param aColor On return, contains the color as an RGB value.
+ * If the color is indexed, the appropriate mapping using current
+ * palette is used.
+ *
+ * @par Exceptions:
+ * If the given index is outside the bounds of the array,
+ * the method leaves with an error code.
+ */
+ IMPORT_C void GetColorL( const TInt aIndex, TRgb& aColor ) const;
+
+ protected: // C++ protected constructor
+
+ /**
+ * C++ protected constructor.
+ * Constructs a new CAknsColorItemData without an array.
+ *
+ * @param aType Item type of the new item data object. While this
+ * is always ::EAknsITColorTable for instances of this class, derived
+ * classes may specify another value.
+ *
+ * @internal
+ */
+ CAknsColorTableItemData( const TAknsItemType aType );
+
+ protected: // Data
+
+ TAknsColorTableEntry* iColorArray; //!< Color array.
+ TInt iColorArraySize;
+
+ };
+
+/**
+* Icon table item data.
+* Icon table item data contains (in addition to base class members), an
+* array containing item IDs of images. Item type for
+* image table item data objects is always ::EAknsITImageTable.
+*
+* This is a public class with exported functions.
+* The class is not intended for derivation outside the library.
+*
+* @lib AknSkins.lib
+*
+* @since 2.0
+*/
+NONSHARABLE_CLASS(CAknsImageTableItemData) : public CAknsImageItemData
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ * Constructs a new CAknsImageTableItemData object. Values must
+ * be set separately using SetImagesL.
+ *
+ * @return Newly constructed CAknsImageTableItemData object.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error
+ * code.
+ */
+ IMPORT_C static CAknsImageTableItemData* NewL();
+
+ /**
+ * Destructor.
+ * Destroys image array.
+ */
+ virtual ~CAknsImageTableItemData();
+
+ public: // New functions
+
+ /**
+ * Sets image table values for this item data instance.
+ *
+ * @since 2.0
+ *
+ * @param aNumberOfImages Number of images in aImages.
+ *
+ * @param aImages Pointer to first image ID. Values are
+ * copied into an internal array.
+ */
+ IMPORT_C void SetImagesL( const TInt aNumberOfImages,
+ const TAknsItemID* aImages );
+
+ /**
+ * Returns the item ID of an image.
+ *
+ * @since 2.0
+ *
+ * @param aIndex Index of the image. This value must
+ * be within 0 (inclusive) and NumberOfImages (exclusive).
+ *
+ * @return Item ID of the image.
+ */
+ IMPORT_C TAknsItemID ImageIID( const TInt aIndex ) const;
+
+ /**
+ * Returns pointer to the first entry in the image array,
+ * owned by this object.
+ *
+ * @since 2.0
+ *
+ * @return Pointer to TAknsItemID.
+ */
+ IMPORT_C TAknsItemID* Images() const;
+
+ /**
+ * Returns the number of images.
+ *
+ * @since 2.0
+ *
+ * @return Number of images as an integer.
+ */
+ IMPORT_C TInt NumberOfImages() const;
+
+ protected: // C++ protected constructor
+
+ /**
+ * C++ protected constructor.
+ * Constructs a new CAknsImageTableItemData without an array.
+ *
+ * @param aType Item type of the new item data object. While this
+ * is always ::EAknsITImageTable for instances of this class, derived
+ * classes may specify another value.
+ *
+ * @internal
+ */
+ CAknsImageTableItemData( const TAknsItemType aType );
+
+ protected: // Data
+
+ TInt iNumberOfImages; //!< Number of images.
+ TAknsItemID* iImageArray; //!< Image array.
+
+ };
+
+/**
+* Bitmap animation item data.
+* Bitmap animation item data contains (in addition to base class members),
+* animation properties as well as an array containing frame properties
+* Item type for bitmap animation item data objects is always ::EAknsITBmpAnim.
+*
+* This is a public class with exported functions.
+* The class is not intended for derivation outside the library.
+*
+* @lib AknSkins.lib
+*
+* @since 2.0
+*/
+NONSHARABLE_CLASS(CAknsBmpAnimItemData) : public CAknsImageTableItemData
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ * Constructs a new CAknsBmpAnimItemData object. Values must
+ * be set separately using SetImagesL and SetFrameInfosL.
+ *
+ * @return Newly constructed CAknsBmpAnimItemData object.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error
+ * code.
+ */
+ IMPORT_C static CAknsBmpAnimItemData* NewL();
+
+ /**
+ * Destructor.
+ * Destroys arrays.
+ */
+ virtual ~CAknsBmpAnimItemData();
+
+ public: // New functions
+
+ /**
+ * Sets frame property values for this item data instance.
+ *
+ * The number of entries in the given array must match
+ * the number of images in the image table. Therefore
+ * SetFrameInfosL must be called only after SetImagesL
+ * has already been called.
+ *
+ * @since 2.0
+ *
+ * @param aFrameInfos Pointer to first frame info. Values are
+ * copied into an internal array.
+ */
+ IMPORT_C void SetFrameInfosL( const TAknsBmpAnimFrameInfo* aFrameInfos );
+
+ /**
+ * Returns pointer to the first entry in the frame property array,
+ * owned by this object.
+ *
+ * @since 2.0
+ *
+ * @return Pointer to TAknsBmpAnimFrameInfo.
+ */
+ IMPORT_C TAknsBmpAnimFrameInfo* FrameInfos() const;
+
+ /**
+ * Sets the flag indicating whether the last frame should be
+ * interpreted as the background (i.e. excluded from the animation
+ * itself).
+ *
+ * @since 2.0
+ *
+ * @param aLastFrameBg Boolean value.
+ */
+ IMPORT_C void SetLastFrameBackground( TBool aLastFrameBg );
+
+ /**
+ * Retrieves the flag value indicating whether the last frame
+ * should be interpreted as the background.
+ *
+ * @since 2.0
+ *
+ * @return Boolean value.
+ */
+ IMPORT_C TBool LastFrameBackground() const;
+
+ /**
+ * Sets the frame interval for the entire animation.
+ *
+ * @since 2.0
+ *
+ * @param aFrameInterval Frame interval in milliseconds or -1.
+ */
+ IMPORT_C void SetFrameInterval( const TInt16 aFrameInterval );
+
+ /**
+ * Retrieves the frame interval.
+ *
+ * @since 2.0
+ *
+ * @return Frame interval in milliseconds or -1.
+ */
+ IMPORT_C TInt16 FrameInterval() const;
+
+ /**
+ * Sets the play mode for the entire animation.
+ *
+ * @since 2.0
+ *
+ * @param aPlayMode Play mode.
+ */
+ IMPORT_C void SetPlayMode( const TInt16 aPlayMode );
+
+ /**
+ * Retrieves the play mode.
+ *
+ * @since 2.0
+ *
+ * @return Play mode.
+ */
+ IMPORT_C TInt16 PlayMode() const;
+
+ /**
+ * Sets the flash property for the entire animation.
+ *
+ * @since 2.0
+ *
+ * @param aFlash Flash flag value.
+ */
+ IMPORT_C void SetFlash( const TBool aFlash );
+
+ /**
+ * Retrieves the flash property.
+ *
+ * @since 2.0
+ *
+ * @return Flash flag value.
+ */
+ IMPORT_C TBool Flash() const;
+
+ protected: // C++ protected constructor
+
+ /**
+ * C++ protected constructor.
+ * Constructs a new CAknsBmpAnimItemData without an array.
+ *
+ * @param aType Item type of the new item data object. While this
+ * is always ::EAknsITBmpAnim for instances of this class, derived
+ * classes may specify another value.
+ *
+ * @internal
+ */
+ CAknsBmpAnimItemData( const TAknsItemType aType );
+
+ protected: // Data
+
+ TAknsBmpAnimFrameInfo* iFrameArray; //!< Frame info array.
+
+ TBool iLastFrameBackground; //!< Last frame used as background flag.
+ TInt16 iFrameInterval; //!< Frame interval.
+ TInt16 iPlayMode; //!< Play mode.
+ TBool iFlash; //!< Flash flag.
+
+ };
+
+/**
+* String item data.
+* String item data contains (in addition to base class members),
+* a single string value.
+* Item type for string item data objects is always ::EAknsITString.
+*
+* This is a public class with exported functions.
+* The class is not intended for derivation outside the library.
+*
+* @lib AknSkins.lib
+*
+* @since 2.6
+*/
+NONSHARABLE_CLASS(CAknsStringItemData) : public CAknsItemData
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ * Constructs a new CAknsStringItemData object. String value must
+ * be set separately using SetStringL.
+ *
+ * @return Newly constructed CAknsStringItemData object.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error
+ * code.
+ */
+ IMPORT_C static CAknsStringItemData* NewL();
+
+ /**
+ * Destructor.
+ * Destroys owned string instance.
+ */
+ virtual ~CAknsStringItemData();
+
+ public: // New functions
+
+ /**
+ * Sets the string value of this item data instance.
+ *
+ * @since 2.6
+ *
+ * @param aValue New value. The value is copied to a newly created
+ * internal buffer, and any previous value is discarded.
+ */
+ IMPORT_C void SetStringL( const TDesC& aValue );
+
+ /**
+ * Returns a reference to the string value. The value is still owned
+ * by the item data object and caller must take its lifetime properly
+ * into account.
+ *
+ * @since 2.6
+ *
+ * @return Reference to the value.
+ */
+ IMPORT_C const TDesC& String() const;
+
+ protected: // C++ protected constructor
+
+ /**
+ * C++ protected constructor.
+ * Constructs a new CAknsStringItemData without an array.
+ *
+ * @param aType Item type of the new item data object. While this
+ * is always ::EAknsITString for instances of this class, derived
+ * classes may specify another value.
+ *
+ * @internal
+ */
+ CAknsStringItemData( const TAknsItemType aType );
+
+ protected: // Data
+
+ HBufC* iString; //!< Buffer for string value.
+
+ };
+
+/**
+* Effect command data class.
+* Effect command class encapsulates the information of a single effect
+* command that is used with effect queue item data objects.
+*
+* This is a public class with exported functions.
+* The class is not intended for derivation outside the library.
+*
+* @lib AknSkins.lib
+*
+* @since 2.8
+*/
+NONSHARABLE_CLASS(CAknsEffectCommand) : public CBase
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ *
+ * @return Newly constructed object.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error
+ * code.
+ */
+ IMPORT_C static CAknsEffectCommand* NewL();
+
+ /**
+ * Destructor.
+ */
+ virtual ~CAknsEffectCommand();
+
+ public: // New functions
+
+ /**
+ * Sets the effect UID.
+ *
+ * @since 2.8
+ *
+ * @param aValue New effect UID.
+ */
+ IMPORT_C void SetEffectUid( const TUid aValue );
+
+ /**
+ * Returns the effect UID.
+ *
+ * @since 2.8
+ *
+ * @return Effect UID.
+ */
+ IMPORT_C TUid EffectUid() const;
+
+ /**
+ * Sets the layer configuration.
+ *
+ * @since 2.8
+ *
+ * @param aValue New layer configuration.
+ */
+ IMPORT_C void SetLayerConf( const TAknsRlRenderOpParam aValue );
+
+ /**
+ * Returns the layer configuration.
+ *
+ * @since 2.8
+ *
+ * @return Layer configuration.
+ */
+ IMPORT_C TAknsRlRenderOpParam LayerConf() const;
+
+ /**
+ * Appends a paramater to this effect command.
+ *
+ * @since 2.8
+ *
+ * @param aParameter Parameter to be appended. The given data is copied,
+ * and thus no ownership is transferred.
+ */
+ IMPORT_C void AppendParameterL(
+ const TAknsRlParameterData& aParameter );
+
+ /**
+ * Creates and returns a new parameter iterator.
+ *
+ * @since 2.8
+ *
+ * @return A new parameter iterator. Multiple iterators can be created.
+ * The ownership of the iterator is transferred to the caller, and
+ * the caller must ensure that the lifetime of the iterator
+ * does not exceed the lifetime of this object.
+ */
+ IMPORT_C MAknsRlParameterIterator* CreateParameterIteratorL();
+
+ protected: // C++ protected constructor
+
+ /**
+ * C++ protected constructor.
+ *
+ * @internal
+ */
+ CAknsEffectCommand();
+
+ protected: // Data
+
+ TUid iUid; //!< Effect UID.
+ TAknsRlRenderOpParam iLayerConf; //!< Layer configuration.
+ RPointerArray<CAknsEffectParameter> iParameters; //!< Parameters array.
+
+ };
+
+/**
+* Effect queue item data.
+* Effect queue item data contains (in addition to base class members),
+* the information required to render a single effect queue based
+* skin element.
+*
+* Item type for effect queue item data objects is always ::EAknsITEffectQueue.
+*
+* This is a public class with exported functions.
+* The class is not intended for derivation outside the library.
+*
+* @lib AknSkins.lib
+*
+* @since 2.8
+*/
+NONSHARABLE_CLASS(CAknsEffectQueueItemData) : public CAknsItemData
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ * Constructs a new CAknsEffectQueueItemData object.
+ *
+ * @return Newly constructed CAknsEffectQueueItemData object.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error
+ * code.
+ */
+ IMPORT_C static CAknsEffectQueueItemData* NewL();
+
+ /**
+ * Destructor.
+ */
+ virtual ~CAknsEffectQueueItemData();
+
+ public: // New functions
+
+ /**
+ * Sets the referenced item ID.
+ *
+ * @since 2.8
+ *
+ * @param aValue
+ */
+ IMPORT_C void SetRefItem( const TAknsItemID aValue );
+
+ /**
+ * Returns the referenced item ID.
+ *
+ * @since 2.8
+ *
+ * @return Referenced item ID, or @c KAknsIIDDefault if none.
+ */
+ IMPORT_C TAknsItemID RefItem() const;
+
+ /**
+ * Sets the input layer index value.
+ *
+ * @since 2.8
+ *
+ * @param aValue
+ */
+ IMPORT_C void SetInputLayer( const TInt aValue );
+
+ /**
+ * Returns the input layer index value.
+ *
+ * @since 2.8
+ *
+ * @return Input layer index, or -1 if not used.
+ */
+ IMPORT_C TInt InputLayer() const;
+
+ /**
+ * Sets the input layer mode value.
+ *
+ * @since 2.8
+ *
+ * @param aValue
+ */
+ IMPORT_C void SetInputLayerMode( const TInt aValue );
+
+ /**
+ * Returns the input layer mode value.
+ *
+ * @since 2.8
+ *
+ * @return Input layer mode.
+ */
+ IMPORT_C TInt InputLayerMode() const;
+
+ /**
+ * Sets the output layer index value.
+ *
+ * @since 2.8
+ *
+ * @param aValue
+ */
+ IMPORT_C void SetOutputLayer( const TInt aValue );
+
+ /**
+ * Returns the output layer index value.
+ *
+ * @since 2.8
+ *
+ * @return Output layer index.
+ */
+ IMPORT_C TInt OutputLayer() const;
+
+ /**
+ * Sets the output layer mode value.
+ *
+ * @since 2.8
+ *
+ * @param aValue
+ */
+ IMPORT_C void SetOutputLayerMode( const TInt aValue );
+
+ /**
+ * Returns the output layer mode value.
+ *
+ * @since 2.8
+ *
+ * @return Output layer mode.
+ */
+ IMPORT_C TInt OutputLayerMode() const;
+
+ /**
+ * Appends a command to this effect queue.
+ *
+ * @since 2.8
+ *
+ * @param aCommand Command to be appended. The ownership of the
+ * given instance is transferred to this object, even if the method
+ * leaves.
+ */
+ IMPORT_C void AppendCommandL( const CAknsEffectCommand* aCommand );
+
+ /**
+ * Creates and returns a new command iterator.
+ *
+ * @since 2.8
+ *
+ * @return A new command iterator. Multiple iterators can be created.
+ * The ownership of the iterator is transferred to the caller, and
+ * the caller must ensure that the lifetime of the iterator
+ * does not exceed the lifetime of this object.
+ */
+ IMPORT_C MAknsRlCommandIterator* CreateCommandIteratorL();
+
+ protected: // C++ protected constructor
+
+ /**
+ * C++ protected constructor.
+ * Constructs a new CAknsEffectQueueItemData.
+ *
+ * @param aType Item type of the new item data object. While this
+ * is always ::EAknsITEffectQueue for instances of this class, derived
+ * classes may specify another value.
+ *
+ * @internal
+ */
+ CAknsEffectQueueItemData( const TAknsItemType aType );
+
+ protected: // Data
+
+ TAknsItemID iRefId; //!< Referenced item ID.
+ TInt iInputLayer; //!< Input layer value.
+ TInt iInputLayerMode; //!< Input layer mode value.
+ TInt iOutputLayer; //!< Output layer value.
+ TInt iOutputLayerMode; //!< Output layer mode value.
+ RPointerArray<CAknsEffectCommand> iCommands; //!< Commands array.
+
+ };
+
+/**
+* Timing model data class.
+* Timing model class encapsulates the information of a single timing model that
+* is used with animation command item data objects.
+*
+* The class is not intended for derivation outside the library.
+*
+* @lib AknSkins.lib
+*
+* @since 3.0
+*/
+class CAknsTimingModel: public CBase
+ {
+ public: // Constructors and destructor
+ static CAknsTimingModel* NewL();
+ virtual ~CAknsTimingModel();
+
+ protected: // C++ protected constructor
+ CAknsTimingModel();
+
+ public:
+ void SetTimingModelUid( const TUid aValue );
+ TUid TimingModelUid() const;
+
+ void AppendParameterL( const TAknsRlParameterData& aParameter );
+ MAknsRlParameterIterator* CreateParameterIteratorL();
+
+ public: // Iteration support (internal)
+ void AssignOutL( TAknsAlTimingModelData& aData );
+
+ static void InitializeOut( TAknsAlTimingModelData& aData );
+ static void ReleaseOut( TAknsAlTimingModelData& aData );
+
+ private: // Data
+ TUid iTimingModelUid;
+ RPointerArray<CAknsEffectParameter> iParameters;
+ };
+
+/**
+* Animation value data class.
+* Animation value class encapsulates the information of a single animation
+* value (animation value uid, parameters for animation value and timing model
+* reference id) that is used with animation command item data objects.
+*
+* The class is not intended for derivation outside the library.
+*
+* @lib AknSkins.lib
+*
+* @since 3.0
+*/
+class CAknsAnimationValue: public CBase
+ {
+ public:
+ static CAknsAnimationValue* NewL();
+ virtual ~CAknsAnimationValue();
+
+ private:
+ CAknsAnimationValue();
+
+ public:
+ void SetAnimationValueUid( const TUid aValue );
+ TUid AnimationValueUid() const;
+
+ void SetTimingModelId( const TInt aId );
+ TInt TimingModelId() const;
+
+ void AppendParameterL( const TAknsRlParameterData& aParameter );
+ MAknsRlParameterIterator* CreateParameterIteratorL();
+
+ public: // Iteration support (internal)
+ void AssignOutL( TAknsAlAnimationValueData& aData );
+
+ static void InitializeOut( TAknsAlAnimationValueData& aData );
+ static void ReleaseOut( TAknsAlAnimationValueData& aData );
+
+ private:
+ TInt iTimingModelId;
+ TUid iAnimationValueUid;
+ RPointerArray<CAknsEffectParameter> iParameters;
+ };
+
+/**
+* Animation command data class.
+* Animation command class encapsulates the information of a single animation
+* command (in addition to base class members) that is used with animation item
+* data objects.
+*
+* The class is not intended for derivation outside the library.
+*
+* @lib AknSkins.lib
+*
+* @since 3.0
+*/
+class CAknsAnimationCommand: public CAknsEffectCommand
+ {
+ public:
+ static CAknsAnimationCommand* NewL();
+ virtual ~CAknsAnimationCommand();
+
+ private:
+ CAknsAnimationCommand();
+
+ public:
+ void AppendNamedReferenceL( const TAknsAlNamedReferenceData& aData );
+ MAknsAlIterator* CreateNamedReferenceIteratorL();
+
+ public: // Iteration support (internal)
+ void AssignOutL( TAknsAlAnimationCommandData& aData );
+
+ static void InitializeOut( TAknsAlAnimationCommandData& aData );
+ static void ReleaseOut( TAknsAlAnimationCommandData& aData );
+
+ private:
+ RPointerArray<CAknsNamedReference> iNamedReferences;
+ };
+
+/**
+* Animation item data.
+* Animation item data contains (in addition to base class members) the
+* information required to create an AnimationLibrary animation.
+*
+* Item type for animation item data objects is always ::EAknsITAnimation.
+*
+* The class is not intended for derivation outside the library.
+*
+* @lib AknSkins.lib
+*
+* @since 3.0
+*/
+class CAknsAnimationItemData: public CAknsItemData
+ {
+ public:
+ static CAknsAnimationItemData* NewL();
+ virtual ~CAknsAnimationItemData();
+
+ protected: // C++ protected constructor
+ CAknsAnimationItemData();
+
+ public: // New functions
+ void SetMinInterval( TInt aMin );
+ TInt MinInterval() const;
+
+ void SetMorphing( TBool aMorphing );
+ TBool Morphing() const;
+
+ void SetInputLayer( const TInt aValue );
+ TInt InputLayer() const;
+
+ void SetInputLayerMode( const TInt aValue );
+ TInt InputLayerMode() const;
+
+ void SetOutputLayer( const TInt aValue );
+ TInt OutputLayer() const;
+
+ void SetOutputLayerMode( const TInt aValue );
+ TInt OutputLayerMode() const;
+
+ /**
+ * @param aCommand Ownership is transferred
+ */
+ void AppendPreprocessCommandL( CAknsEffectCommand* aCommand );
+ MAknsRlCommandIterator* PreprocessCommandIteratorL() const;
+
+ /**
+ * @param aCommand Ownership is transferred
+ */
+ void AppendCommandL( CAknsAnimationCommand* aCommand );
+ MAknsAlIterator* CommandIteratorL() const;
+
+ /**
+ * @param aValue Ownership is transferred
+ */
+ void AppendTimingModelL( CAknsTimingModel* aModel );
+ MAknsAlIterator* TimingModelIteratorL() const;
+
+ /**
+ * @param aValue Ownership is transferred
+ */
+ void AppendAnimationValueL( CAknsAnimationValue* aValue );
+ MAknsAlIterator* AnimationValueIteratorL() const;
+
+ void AppendSizeBoundParamL( const TAknsAlSizeBoundParameterData& aParam );
+ MAknsAlIterator* SizeBoundParamIteratorL() const;
+
+ private:
+ TInt iMinInterval; // In milliseconds
+ TBool iMorphing;
+
+ TInt iInputLayer;
+ TInt iInputLayerMode;
+ TInt iOutputLayer;
+ TInt iOutputLayerMode;
+
+ RPointerArray<CAknsEffectCommand> iPreprocessCommands;
+ RPointerArray<CAknsAnimationCommand> iAnimationCommands;
+ RPointerArray<CAknsTimingModel> iTimingModels;
+ RPointerArray<CAknsAnimationValue> iAnimationValues;
+ RPointerArray<CAknsSizeBoundParameter> iSizeBoundParams;
+ };
+
+#endif // AKNSITEMDATA_H
+
+// End of File