--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/skins/AknSkins/srvinc/AknsSrvItemDef.h Thu Dec 17 09:14:12 2009 +0200
@@ -0,0 +1,401 @@
+/*
+* 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: Item definition base class.
+*
+*/
+
+
+#ifndef AKNSSRVITEMDEF_H
+#define AKNSSRVITEMDEF_H
+
+// INCLUDES
+#include <AknsItemID.h>
+#include <AknsPkgID.h>
+#include <AknsItemDef.h>
+
+// CLASS DECLARATIONS
+
+/**
+* Type enumeration for TAknsSrvMPPtr
+*
+* @since 2.0
+*/
+enum TAknsSrvMPPtrType
+ {
+ EAknsSrvMPPtrAbsoluteROM = 4,
+ EAknsSrvMPPtrAbsoluteRAM = 2,
+ EAknsSrvMPPtrBaseRelativeRAM = 3
+ };
+
+/**
+* Multipurpose pointer template.
+*
+* @since 2.0
+*/
+template<class T> struct TAknsSrvMPPtr
+ {
+ /**
+ * The type of the multipurpose pointer.
+ */
+ TAknsSrvMPPtrType iPtrType;
+
+ /**
+ * The address or offset (depending on the type) of the pointer.
+ */
+ T iAddressOrOffset;
+
+ /**
+ * Converts the value of the multipurpose pointer to the concrete address
+ * using the given base address for relative values.
+ *
+ * @param aBase Base address, used if the type of the pointer is relative.
+ *
+ * @return The concrete address.
+ *
+ * @since 2.0
+ */
+ inline T Address( const TAny* aBase ) const
+ {
+ if( iPtrType == EAknsSrvMPPtrBaseRelativeRAM )
+ {
+ TInt retValue = (TInt)iAddressOrOffset + (TInt)aBase;
+ // Server panic constants not available, values used instead:
+ __ASSERT_DEBUG( retValue%4==0, User::Panic(
+ _L("AknSkinServer"), 7 ) );
+ // Offset, const qualifiers intentionally ignored
+ return reinterpret_cast<T>( retValue );
+ }
+ // Otherwise used as address
+ return iAddressOrOffset;
+ };
+ };
+
+/**
+* Server item definition structure for typed item definitions.
+*
+* @since 2.0
+*/
+struct TAknsSrvDef
+ {
+ public:
+ // IID
+ TAknsItemID iID;
+ // Item type (determines the type of iDef).
+ TAknsItemType iType;
+ // Pointer to item definition.
+ TAknsSrvMPPtr<const TAny*> iDef;
+ //Hash next
+ TInt iHashNext;
+ };
+
+/**
+* Server item definition structure for bitmaps.
+*
+* @since 2.0
+*/
+struct TAknsSrvBitmapDef
+ {
+ public:
+ // Bitmap filename.
+ TAknsSrvMPPtr<const TText*> iFilename;
+ // Index in bitmap file.
+ TInt iIndex;
+
+ // Image attributes.
+ TInt iImageAttributes;
+ // Image alignment.
+ TInt iImageAlignment;
+ // X-coordinate.
+ TInt iImageCoordX;
+ // Y-coordinate.
+ TInt iImageCoordY;
+ // Width of the size.
+ TInt iImageSizeW;
+ // Height of the size
+ TInt iImageSizeH;
+ };
+
+/**
+* Server item definition structure for masked bitmaps.
+*
+* @since 2.0
+*/
+struct TAknsSrvMaskedBitmapDef
+ {
+ public:
+ // Bitmap filename.
+ TAknsSrvMPPtr<const TText*> iFilename;
+ // Index in bitmap file.
+ TInt iIndex;
+ // Index of mask in bitmap file.
+ TInt iMaskIndex;
+
+ // Image attributes.
+ TInt iImageAttributes;
+ // Image alignment.
+ TInt iImageAlignment;
+ // X-coordinate.
+ TInt iImageCoordX;
+ // Y-coordinate.
+ TInt iImageCoordY;
+ // Width of the size.
+ TInt iImageSizeW;
+ // Height of the size
+ TInt iImageSizeH;
+ };
+
+/**
+* Server item definition structure for color tables.
+*
+* @since 2.0
+*/
+struct TAknsSrvColorTableDef
+ {
+ public:
+ // Number of colors
+ TInt iNumberOfColors;
+ // Color array
+ TAknsSrvMPPtr<const TAknsColorTableEntry*> iColors;
+
+ // Image attributes.
+ TInt iImageAttributes;
+ // Image alignment.
+ TInt iImageAlignment;
+ // X-coordinate.
+ TInt iImageCoordX;
+ // Y-coordinate.
+ TInt iImageCoordY;
+ // Width of the size.
+ TInt iImageSizeW;
+ // Height of the size
+ TInt iImageSizeH;
+ };
+
+/**
+* Server item definition structure for image tables.
+*
+* @since 2.0
+*/
+struct TAknsSrvImageTableDef
+ {
+ public:
+ // Number of images
+ TInt iNumberOfImages;
+ // Image information array
+ TAknsSrvMPPtr<const TAknsItemID*> iImages;
+
+ // Image attributes.
+ TInt iImageAttributes;
+ // Image alignment.
+ TInt iImageAlignment;
+ // X-coordinate.
+ TInt iImageCoordX;
+ // Y-coordinate.
+ TInt iImageCoordY;
+ // Width of the size.
+ TInt iImageSizeW;
+ // Height of the size
+ TInt iImageSizeH;
+ };
+
+/**
+* Server item definition structure for bitmap animations.
+*
+* @since 2.0
+*/
+struct TAknsSrvBmpAnimDef
+ {
+ public:
+ // Number of images
+ TInt iNumberOfImages;
+ // Image information array
+ TAknsSrvMPPtr<const TAknsItemID*> iImages;
+ // Frame property array
+ TAknsSrvMPPtr<const TAknsBmpAnimFrameInfo*> iFrameInfos;
+ // Frame interval
+ TInt16 iFrameInterval;
+ // Play mode
+ TInt16 iPlayMode;
+ // Flash flag
+ TBool iFlash;
+ // Last frame background flag
+ TBool iLastFrameBackground;
+
+ // Image attributes.
+ TInt iImageAttributes;
+ // Image alignment.
+ TInt iImageAlignment;
+ // X-coordinate.
+ TInt iImageCoordX;
+ // Y-coordinate.
+ TInt iImageCoordY;
+ // Width of the size.
+ TInt iImageSizeW;
+ // Height of the size
+ TInt iImageSizeH;
+ };
+
+/**
+* Server item definition structure for strings.
+*
+* @since 2.6
+*/
+struct TAknsSrvStringDef
+ {
+ public:
+ // String value.
+ TAknsSrvMPPtr<const TText*> iString;
+ };
+
+/**
+*
+*
+* @since 2.8
+*/
+struct TAknsSrvEffectParameterDef
+ {
+ public:
+ TUint32 iParameterLength;
+ TUint32 iParameterType;
+ // parameter data after this
+ };
+
+/**
+* Note that since 3.0 this structure is also used for AnimationCommands.
+*
+* @since 2.8
+*/
+struct TAknsSrvEffectDef
+ {
+ public:
+ TUid iEffectUid;
+ TUint32 iInputLayerAIndex;
+ TUint32 iInputLayerAMode;
+ TUint32 iInputLayerBIndex;
+ TUint32 iInputLayerBMode;
+ TUint32 iOutputLayerIndex;
+ TUint32 iOutputLayerMode;
+ TUint32 iEffectParameterCount;
+ TUint32 iEffectSize;
+ // parameter data after this...
+ };
+
+/**
+*
+*
+* @since 2.8
+*/
+struct TAknsSrvEffectQueueDef
+ {
+ public:
+ TUint32 iEffectQueueSize;
+ TUint32 iInputLayerIndex;
+ TUint32 iInputLayerMode;
+ TUint32 iOutputLayerIndex;
+ TUint32 iOutputLayerMode;
+ TUint32 iEffectCount;
+ TUint32 iRefMajor;
+ TUint32 iRefMinor;
+ // effect data after this
+ };
+
+/**
+* @since 3.0
+*/
+struct TAknsSrvEffectAnimDef
+ {
+ public:
+ TUint32 iEffectAnimSize;
+ TUint32 iInputLayerIndex;
+ TUint32 iInputLayerMode;
+ TUint32 iOutputLayerIndex;
+ TUint32 iOutputLayerMode;
+ TUint32 iMinInterval;
+ TUint32 iAnimType;
+ TUint32 iPreprocessCount;
+ TUint32 iAnimCommandCount;
+ TUint32 iAnimValueCount;
+ TUint32 iTimingModelCount;
+ TUint32 iSizeBoundCount;
+ };
+
+/**
+* @since 3.0
+*/
+struct TAknsSrvParamGroupDef
+ {
+ public:
+ TUint32 iGroupSize;
+ TUint32 iParameterCount;
+ TUint32 iValueA;
+ TUint32 iValueB;
+ // parameter data after this...
+ };
+
+/**
+*
+*
+* @since 2.8
+*/
+struct TAknsSrvScalableItemDef
+ {
+ public:
+ TAknsItemID iID;
+ TUint32 iBitmapHandle;
+ TUint32 iMaskHandle;
+ TInt iLayoutType;
+ TBool isMorphing;
+ TTime iTimeStamp;
+ TSize iLayoutSize;
+ };
+
+/**
+* Server definition structure for item definition set classes.
+*
+* @since 2.0
+*/
+struct TAknsSrvClassDef
+ {
+ public:
+ // Definition table (may be NULL if zero definitions)
+ const TAknsSrvDef* iDefTable;
+ // Number of definitions
+ TInt iNumberOfDefs;
+ };
+
+/**
+* Server definition structure for whole skins.
+*
+* @since 2.0
+*/
+struct TAknsSrvSkinDef
+ {
+ public:
+ // Skin package ID
+ TAknsPkgID iPID;
+ // Bitmap class
+ const TAknsSrvClassDef* iBitmapClass;
+ // Application icon class
+ const TAknsSrvClassDef* iAppIconClass;
+ // Color set class
+ const TAknsSrvClassDef* iColorSetClass;
+ // Color set skin package ID (if iColorSetClass is NULL)
+ TAknsPkgID iColorSetPID;
+ // Language override skin package ID
+ TAknsPkgID iLanguageOverridePID;
+ };
+
+#endif // AKNSSRVITEMDEF_H
+
+// End of File