skins/AknSkins/sdcinc/SDCData.h
changeset 0 05e9090e2422
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/skins/AknSkins/sdcinc/SDCData.h	Thu Dec 17 09:14:12 2009 +0200
@@ -0,0 +1,332 @@
+/*
+* Copyright (c) 2003 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:  Data classs and structures.
+*
+*/
+
+
+#if !defined(AFX_SDCDATA_H__67B83F2E_D9A5_4F97_B3DE_6C5F6F81C67D__INCLUDED_)
+#define AFX_SDCDATA_H__67B83F2E_D9A5_4F97_B3DE_6C5F6F81C67D__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include <vector>
+
+using namespace std;
+
+enum TSDCColorDepth
+    {
+    ESDCColorDepthNone,
+    ESDCColorDepth1,
+    ESDCColorDepth2,
+    ESDCColorDepth4,
+    ESDCColorDepth8,
+    ESDCColorDepthC4,
+    ESDCColorDepthC8,
+    ESDCColorDepthC12,
+    ESDCColorDepthC16,
+    ESDCColorDepthC24,
+    ESDCColorDepthC32
+    };
+
+struct TSDCMBMEntry
+    {
+    int iIndex;
+    wchar_t iSourcePath[512];
+
+    TSDCColorDepth iColorDepth;
+    wchar_t iSourceFilename[512];
+
+    TSDCColorDepth iMaskColorDepth;
+    wchar_t iMaskSourceFilename[512];
+
+    bool iSvgAnim;
+    };
+
+struct TSDCIID
+    {
+    int iMajor;
+    int iMinor;
+    };
+
+struct TSDCPID
+    {
+    int iPID1;
+    int iPID2;
+    };
+
+enum TSDCImageAttribute
+    {
+    ESDCImageAttributeNone      =0x00,
+    ESDCImageAttributeCoords    =0x01,
+    ESDCImageAttributeSize      =0x02,
+    ESDCImageAttributeStretch   =0x04,
+    ESDCImageAttributeTile      =0x08,
+    ESDCImageAttributeAlign     =0x10,
+    ESDCImageAttributeScale     =0x20,
+    ESDCImageAttributeTileX     =0x40,
+    ESDCImageAttributeTileY     =0x80,
+    ESDCImageAttributeNBC       =0x100
+    };
+
+enum TSDCImageAlignment
+    {
+    ESDCImageAlignNone          =0x00,
+    ESDCImageAlignVTop          =0x01,
+    ESDCImageAlignVBottom       =0x02,
+    ESDCImageAlignVCenter       =0x04,
+    ESDCImageAlignHLeft         =0x08,
+    ESDCImageAlignHRight        =0x10,
+    ESDCImageAlignHCenter       =0x20,
+    ESDCImageAlignTL            =ESDCImageAlignVTop|ESDCImageAlignHLeft,
+    ESDCImageAlignTR            =ESDCImageAlignVTop|ESDCImageAlignHRight,
+    ESDCImageAlignTC            =ESDCImageAlignVTop|ESDCImageAlignHCenter,
+    ESDCImageAlignBL            =ESDCImageAlignVBottom|ESDCImageAlignHLeft,
+    ESDCImageAlignBR            =ESDCImageAlignVBottom|ESDCImageAlignHRight,
+    ESDCImageAlignBC            =ESDCImageAlignVBottom|ESDCImageAlignHCenter,
+    ESDCImageAlignCL            =ESDCImageAlignVCenter|ESDCImageAlignHLeft,
+    ESDCImageAlignCR            =ESDCImageAlignVCenter|ESDCImageAlignHRight,
+    ESDCImageAlignCC            =ESDCImageAlignVCenter|ESDCImageAlignHCenter,
+    ESDCImageAlignVMask         =ESDCImageAlignVTop|ESDCImageAlignVBottom|
+                                    ESDCImageAlignVCenter,
+    ESDCImageAlignHMask         =ESDCImageAlignHLeft|ESDCImageAlignHRight|
+                                    ESDCImageAlignHCenter
+    };
+
+struct TSDCImageAttributes
+    {
+    int iAttributeFlags;
+    int iCoordX;
+    int iCoordY;
+    int iSizeW;
+    int iSizeH;
+    TSDCImageAlignment iAlignmentFlags;
+    };
+
+struct TSDCBitmapDef
+    {
+    TSDCIID iIID;
+    int iMBMIndex;
+    int iMaskMBMIndex;
+    TSDCImageAttributes iAttributes;
+    bool iAppIconBitmap;
+    int iRestriction;
+    };
+
+struct TSDCColorTableEntry
+    {
+    int iIndex;
+    int iRgb;
+    };
+
+struct TSDCColorTableDef
+    {
+    TSDCIID iIID;
+    vector<TSDCColorTableEntry> iColors;
+    int iRestriction;
+    };
+
+struct TSDCFrameDef
+    {
+    TSDCIID iIID;
+    vector<TSDCIID> iElements;
+    int iRestriction;
+    };
+
+struct TSDCNameEntry
+    {
+    int iLanguageID;
+    wchar_t iName[512];
+    };
+
+struct TSDCAppIconDef
+    {
+    TSDCIID iIID;
+    vector<TSDCIID> iIcons;
+    int iRestriction;
+    };
+
+struct TSDCBmpAnimFrame
+    {
+    TSDCIID iIID;
+    int iTime;
+    int iPosX;
+    int iPosY;
+    };
+
+struct TSDCBmpAnimDef
+    {
+    TSDCIID iIID;
+    int iInterval;
+    int iPlayMode;
+    int iFlash;
+    vector<TSDCBmpAnimFrame> iFrames;
+    int iRestriction;
+    };
+
+struct TSDCTargetDeviceEntry
+    {
+    wchar_t iDeviceName[128];
+    };
+
+struct TSDCStringDef
+    {
+    TSDCIID iIID;
+    wchar_t iString[512];
+    int iRestriction;
+    };
+
+struct TSDCEffectParameter
+    {
+    wchar_t iName[512];
+    int iType;
+    int iNumber;
+    int iRawDataCount; // Raw data itself is stored in iString
+    wchar_t iString[512];
+    TSDCColorDepth iColorDepth;
+    int iBmpIndex;
+    int iMaskIndex;
+    };
+
+struct TSDCEffectCommand
+    {
+    int iUid;
+    int iInputA;
+    int iInputB;
+    int iOutput;
+    vector<TSDCEffectParameter> iParameters;
+    };
+
+struct TSDCScalableItemDef
+    {
+    TSDCIID iIID;
+    TSDCIID iRefIID;
+    int iInput;
+    int iOutput;
+    vector<TSDCEffectCommand> iCommands;
+    int iRestriction;
+    };
+
+struct TSDCAnimParamGroup
+    {
+    int iValueA;
+    int iValueB;
+    vector<TSDCEffectParameter> iParameters;
+    };
+
+struct TSDCAnimationDef
+    {
+    TSDCIID iIID;
+    int iInput;
+    int iOutput;
+    int iMinInterval;
+    bool iMorphing;
+    vector<TSDCEffectCommand> iPreprocessCommands;
+    vector<TSDCEffectCommand> iAnimCommands;
+    vector<TSDCAnimParamGroup> iValues;
+    vector<TSDCAnimParamGroup> iTimingModels;
+    vector<TSDCAnimParamGroup> iSizeBoundParams;
+    int iRestriction;
+    };
+
+class CSDCData
+    {
+    public:
+        CSDCData();
+        virtual ~CSDCData();
+
+    public:
+        bool IsScalable();
+
+    public:
+        bool IsDefined( const TSDCIID aIID );
+        bool IsDefined( const TSDCIID aIID, const int aRestriction );
+
+    public:
+        void AppendNameEntry( const int aLanguageID, const wchar_t* aName );
+        void AppendTargetDeviceEntry( const wchar_t* aDeviceName );
+
+    public:
+        bool HasMbmEntry( const TSDCColorDepth aColorDepth, const wchar_t* aFilename );
+        TSDCMBMEntry* FindMbmEntry( const TSDCColorDepth aColorDepth, const wchar_t* aFilename );
+        TSDCMBMEntry* AppendMbmEntry( const bool aSvg,
+            const TSDCColorDepth aColorDepth, const wchar_t* aFilename, const bool aSvgAnim = false );
+        void SetBmpPath( const wchar_t* aPath );
+
+    public:
+        void CreateBitmapDef( const TSDCIID aIID, const int aIndex, const int aMaskIndex, const TSDCImageAttributes aAttributes, const bool aAppIcon, const int aRestriction );
+        TSDCBitmapDef* GetBitmapDef( const TSDCIID aIID );
+
+    public:
+        void CreateColorTableDef( const TSDCIID aIID, const vector<TSDCColorTableEntry> aColors, const int aRestriction );
+
+    public:
+        void CreateFrameDef( const TSDCIID aIID, const vector<TSDCIID> aElements, const int aRestriction );
+
+    public:
+        void CreateAppIconDef( const TSDCIID aIID, const vector<TSDCIID> aIcons, const int aRestriction );
+
+    public:
+        void CreateBmpAnimDef( const TSDCIID aIID, const int aInterval, const int aPlayMode, const int aFlash, const vector<TSDCBmpAnimFrame> aFrames, const int aRestriction );
+
+    public:
+        void CreateStringDef( const TSDCIID aIID, const wchar_t* aString, const int aRestriction );
+
+    public:
+        void CreateScalableItemDef( const TSDCIID aIID, const int aInput, const int aOutput, const vector<TSDCEffectCommand> aCommands, const int aRestriction );
+        void CreateScalableItemRefDef( const TSDCIID aIID, const TSDCIID aRefIID, const int aRestriction );
+
+    public:
+        void CreateAnimationDef( const TSDCIID aIID, const int aInput, const int aOutput, const int aMinInterval,
+            const vector<TSDCEffectCommand> aPreprocessCommands, const vector<TSDCEffectCommand> aAnimCommands,
+            const vector<TSDCAnimParamGroup> aValues, const vector<TSDCAnimParamGroup> aTimingModels,
+            const vector<TSDCAnimParamGroup> aSizeBoundParams, const bool aMorphing, const int aRestriction );
+            
+    private:
+    		bool CheckFile( const wchar_t* aPath , const wchar_t* aFileName );
+
+    public:
+        TSDCPID iPid;
+        int iSkinType;
+        TSDCPID iAHOverridePid;
+        TSDCPID iParentPid;
+        TSDCPID iPalettePid;
+        int iNextOwnMinor;
+        int iProtection;
+        wchar_t iAuthor[512];
+        wchar_t iCopyright[512];
+        wchar_t iTool[512];
+        int iCurrentRestriction;
+
+        vector<TSDCNameEntry*> iNameVector;
+        vector<TSDCMBMEntry*> iMbmVector;
+        vector<TSDCBitmapDef*> iBitmapDefVector;
+        vector<TSDCColorTableDef*> iColorTableDefVector;
+        vector<TSDCFrameDef*> iFrameDefVector;
+        vector<TSDCAppIconDef*> iAppIconDefVector;
+        vector<TSDCBmpAnimDef*> iBmpAnimDefVector;
+        vector<TSDCTargetDeviceEntry*> iTargetDeviceVector;
+        vector<TSDCStringDef*> iStringDefVector;
+        vector<TSDCScalableItemDef*> iScalableItemDefVector;
+        vector<TSDCAnimationDef*> iAnimationDefVector;
+        vector<int> iLanguageVector;
+
+        wchar_t iBmpPath[512];
+
+        int iNextIconIndex;
+    };
+
+#endif // !defined(AFX_SDCDATA_H__67B83F2E_D9A5_4F97_B3DE_6C5F6F81C67D__INCLUDED_)