classicui_plat/extended_animation_api/inc/aknAnimData.h
changeset 0 2f259fa3e83a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/classicui_plat/extended_animation_api/inc/aknAnimData.h	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,245 @@
+/*
+* 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:
+*
+*/
+
+
+// AknAnimData.H
+//
+// Copyright (c) 1997-1999 Symbian Ltd.  All rights reserved.
+//
+
+// Animation Data class
+
+
+#if !defined(__AKNANIMDATA_H__)
+#define __AKNANIMDATA_H__
+
+#include <e32std.h>
+#include <gdi.h>
+
+class TResourceReader;
+
+
+
+class TAnimLineDrawStep
+	{
+public:
+	inline TPoint StartPoint();
+	inline TPoint EndPoint();
+public:
+	TUint16 iSteps;
+	TInt16 iStartX;
+	TInt16 iStartY;
+	TInt16 iEndX;
+	TInt16 iEndY;
+	};
+
+class TAnimBlitStep
+	{
+public:
+	TPoint StartPoint();
+	TPoint EndPoint();
+	TSize Size();
+public:
+	TUint16 iSteps;
+	TInt16 iSrcX;
+	TInt16 iSrcY;
+	TInt16 iDestX;
+	TInt16 iDestY;
+	TUint16 iWidth;
+	TUint16 iHeight;
+	};
+
+class TAnimSlideStep
+	{
+public:
+	TPoint StartPoint();
+	TPoint EndPoint();
+	TSize Size();
+public:
+	TUint16 iSteps;
+	TInt16 iSrcX;
+	TInt16 iSrcY;
+	TInt16 iSlideToX;
+	TInt16 iSlideToY;
+	TInt16 iSlideFromX;
+	TInt16 iSlideFromY;
+	TUint16 iWidth;
+	TUint16 iHeight;
+	};
+
+class TAnimWaitStep
+	{
+public:
+	TUint16 iSteps;
+	};
+
+class TAnimSetColorStep
+	{
+public:
+	TRgb Color();
+public:
+	TUint8 iRed;
+	TUint8 iGreen;
+	TUint8 iBlue;
+	};
+
+
+class TAnimUserStep
+	{
+public:
+	TInt Param1();
+	TInt Param2();
+	TInt Param3();
+	TInt Param4();
+	TInt Param5();
+	TInt Param6();
+	};
+
+
+union UStepData
+	{
+	TAnimLineDrawStep iLineDrawStep;
+	TAnimBlitStep iBlitStep;
+	TAnimSetColorStep iSetColorStep;
+	TAnimSlideStep	iSlideStep;
+	TAnimWaitStep iWaitStep;
+	};
+
+class TAnimStep 
+	{
+
+public:
+	inline TAnimStep();
+	inline TAnimLineDrawStep* LineDrawStep();
+	inline TAnimBlitStep* BlitStep();
+	inline TAnimSetColorStep* SetColorStep();
+	inline TAnimSlideStep* SlideStep();
+	inline TAnimWaitStep* WaitStep();
+	inline void SetType(TUint8 aType);
+	inline TUint8 Type();
+private:
+	TUint8 iType;
+	TUint16 iSteps;
+	UStepData iStepData;
+	};
+
+
+class TAnimMultiStep
+	{
+public:
+	inline TAnimMultiStep(TAnimStep aStep);
+public:
+	TAnimStep iDrawStep;
+	TUint16 iSubStep;
+	};
+
+class CAknAnimationData : public CArrayFixFlat<TAnimStep>
+	{
+public:
+	IMPORT_C CAknAnimationData();
+	IMPORT_C ~CAknAnimationData();
+	IMPORT_C void ConstructFromResourceL(TInt aResourceId);
+	IMPORT_C void SetScreenSize(TSize aSize);
+	IMPORT_C void SetViewBitmap(CFbsBitmap* aViewBitmap);
+	IMPORT_C void SetOldBitmap(CFbsBitmap* aOldBitmap);
+	IMPORT_C void SetClearOldView();
+	IMPORT_C TBool ClearOldView();
+	IMPORT_C TBool WaitBetweenSections();
+	IMPORT_C void SetWaitForeverAtEnd();
+	IMPORT_C TBool WaitForeverAtEnd();
+	IMPORT_C TBool DrawNextAnimationStep(CBitmapContext& aGc);
+	IMPORT_C TInt Interval();
+protected:
+	IMPORT_C void ConstructL();
+	IMPORT_C virtual TBool DrawUserAnimationStep(CBitmapContext& aGc, TAnimMultiStep& aStep);
+	IMPORT_C virtual void ConstructUserAnimationStepL(TAnimStep& aAnimStep, TResourceReader& aReader);
+private:
+	void ReadAnimStepL(TResourceReader& aReader);
+	TBool DrawPendingAnimationSteps(CBitmapContext& aGc);
+	TBool ExecutePendingAnimationStep(CBitmapContext& aGc, TAnimMultiStep* aStep);
+private:
+	TUint16 iFlags;
+	CArrayFixFlat<TAnimMultiStep>* iPendingSteps;
+	CArrayFixFlat<TUint8>* iDrawStepsPerAnimStep;
+protected:
+	TSize iScreenSize;
+	CFbsBitmap* iViewBitmap;
+	CFbsBitmap* iOldBitmap;
+	TInt iCurrentDrawStep;
+	TInt iCurrentAnimStep;
+	TRgb iDrawColor;
+	TInt iInterval;
+	};
+
+
+
+
+// Inline functions
+
+inline TAnimLineDrawStep* TAnimStep::LineDrawStep()
+	{
+	return &(iStepData.iLineDrawStep);
+	}
+
+inline TAnimBlitStep* TAnimStep::BlitStep()
+	{
+	return &(iStepData.iBlitStep);
+	}
+
+inline TAnimSetColorStep* TAnimStep::SetColorStep()
+	{
+	return &(iStepData.iSetColorStep);
+	}
+
+inline TAnimSlideStep* TAnimStep::SlideStep()
+	{
+	return &(iStepData.iSlideStep);
+	}
+
+inline TAnimWaitStep* TAnimStep::WaitStep()
+	{
+	return &(iStepData.iWaitStep);
+	}
+
+
+inline void TAnimStep::SetType(TUint8 aType)
+	{
+	iType = aType;
+	}
+
+inline TUint8 TAnimStep::Type()
+	{
+	return iType;
+	}
+
+
+inline TAnimStep::TAnimStep()
+	{
+	}
+
+
+inline TAnimMultiStep::TAnimMultiStep(TAnimStep aStep)
+:iDrawStep(aStep), iSubStep(0)
+	{
+	}
+
+
+#endif
+
+
+
+