skins/AknSkins/srvinc/AknsSrvItemDef.h
changeset 0 05e9090e2422
--- /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