windowing/windowserver/tauto/AUTODLL.CPP
changeset 116 171fae344dd4
parent 103 2717213c588a
--- a/windowing/windowserver/tauto/AUTODLL.CPP	Tue Jun 22 15:21:29 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2858 +0,0 @@
-// Copyright (c) 1996-2009 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:
-// Auto test Animated DLL functions
-// 
-//
-
-#include <e32std.h>
-#include <w32std.h>
-#include <w32adll.h>
-#include <bitstd.h>
-#include "AUTODLL.H"
-#include "TAnimDraw.h"
-#include "eventdd.h"
-#include <gdi.h>
-#include <fbs.h>
-
-union TAnimArgUnion
-	{
-	const TAny* any;
-	const TBool* Bool;
-	const TInt* Int;
-	const TPoint* Point;
-	const TSize* Size;
-	const TRect* Rect;
-	const TSpriteMemberInfo* SpriteMemberInfo;
-	const TShadowDrawTest* ShadowDrawTest;
-	const TDrawTestScreen* DrawTestScreen;
-	const TSyncTests* SyncTests;
-	const TTimeChangeTest* TimeChangeTest;
-	const TAnimRawEvent* AnimRawEvent;
-	const TWindowGroupInfoParms* WindowGroupInfoParms;
-	const TSetOrdinalParms* SetOrdinalParms;
-	const TFrameData* FrameData;
-	const TRawEvent* RawEvent;
-	};
-
-class CPanicAnim : public CWindowAnim
-	{
-	enum TSyncState
-		{
-		ESyncStateNull,
-		ESyncStateStarting,
-		ESyncStateCounting,
-		ESyncLeave,
-		ESyncStateTimeChange1,
-		ESyncStateTimeChange2,
-		ESyncStateTimeChange3
-		};
-	enum {ESyncCount=8};
-public:
-	~CPanicAnim();
-	virtual void ConstructL(TAny *aArgs, TBool aHasFocus);
-	virtual void Animate(TDateTime *aDateTime);
-	virtual void Redraw();
-	virtual void Command(TInt aOpcode, TAny *aArgs);
-	virtual TInt CommandReplyL(TInt aOpcode, TAny *aArgs);
-	virtual void FocusChanged(TBool aState);
-	//Pure virtual function from MEventHandler
-	virtual TBool OfferRawEvent(const TRawEvent &aRawEvent);
-private:
-	void StartSyncTest(MAnimGeneralFunctions::TAnimSync aSync);
-	void StartTimeChangeTest();
-	void DoLeaveInActiveCallback();
-	static TInt LeaveInActiveCallback(TAny *aThis);
-private:
-	TRequestStatus *iStatusPtr;
-	TRequestStatus *iStatusPtr2;
-	TTime iTime;
-	TInt iSyncCount;
-	TSyncState iSyncState;
-	MAnimGeneralFunctions::TAnimSync iSyncMode;
-	TBool iLeaveInRedraw;
-	CIdle* iActivePanicIdle;
-	};
-
-class CPanicAnim2 : public CWindowAnim
-//
-// Simply panics in the ConstructL()
-//
-	{
-public:
-	virtual void ConstructL(TAny *aArgs, TBool aHasFocus);
-	virtual void Animate(TDateTime *aDateTime);
-	virtual void Redraw();
-	virtual void Command(TInt aOpcode, TAny *aArgs);
-	virtual TInt CommandReplyL(TInt aOpcode, TAny *aArgs);
-	virtual void FocusChanged(TBool aState);
-	//Pure virtual function from MEventHandler
-	virtual TBool OfferRawEvent(const TRawEvent &aRawEvent);
-	};
-
-class CAutoAnim3 : public CWindowAnim
-//
-// test drawing/redrawing
-//
-	{
-public:
-	virtual void ConstructL(TAny *aArgs, TBool aHasFocus);
-	virtual void Animate(TDateTime *aDateTime);
-	virtual void Redraw();
-	virtual void Command(TInt aOpcode, TAny *aArgs);
-	virtual TInt CommandReplyL(TInt aOpcode, TAny *aArgs);
-	virtual void FocusChanged(TBool aState);
-	void Draw(const TRect &aRect);
-	void DrawTestScreenL(const TDrawTestScreen* aParams);
-	//Pure virtual function from MEventHandler
-	virtual TBool OfferRawEvent(const TRawEvent &aRawEvent);
-private:
-	TRequestStatus *iStatusPtr;
-	CFbsFont *iFont;
-	TRect iRect;
-	TRect iBaseRect;
-	TInt iMode;
-	};
-
-class CAutoAnimScrBack : public CWindowAnim
-//
-// test anim drawing behind a backed up window
-//
-	{
-public:
-	virtual void ConstructL(TAny *aArgs, TBool aHasFocus);
-	virtual void Animate(TDateTime *aDateTime);
-	virtual void Redraw();
-	virtual void Command(TInt aOpcode, TAny *aArgs);
-	virtual TInt CommandReplyL(TInt aOpcode, TAny *aArgs);
-	virtual void FocusChanged(TBool aState);
-	void Draw();
-	//Pure virtual function from MEventHandler
-	virtual TBool OfferRawEvent(const TRawEvent &aRawEvent);
-private:
-	TRect iRect;
-	TInt iMode;
-	};
-
-class CTestSpriteAnim : public CSpriteAnim
-	{
-public:
-	virtual void ConstructL(TAny *aArgs);
-	virtual void Animate(TDateTime *aDateTime);
-	virtual void Command(TInt aOpcode, TAny *aArgs);
-	virtual TInt CommandReplyL(TInt aOpcode, TAny *aArgs);
-	//Pure virtual function from MEventHandler
-	virtual TBool OfferRawEvent(const TRawEvent &aRawEvent);
-private:
-	TBool CheckMember(const TSpriteMemberInfo& aMemInfo);
-	void DrawMemberL(TInt aMember);
-	void DrawMemberL();
-	};
-
-/**
-Used by CAnimTimer below
-*/
-class MAnimTimerObserver
-    {
-public:
-    virtual void DisplayNextFrameL()=0;
-    };
-
-/**
-This class is used by CTestFreeTimerAnim to determine when to swap the current frame with the next one.
-*/
-class CAnimTimer : public CTimer
-    {
-public:
-    ~CAnimTimer();
-    static CAnimTimer* NewL(MAnimTimerObserver& aObserver);
-    void RunL();
-private:
-    CAnimTimer(MAnimTimerObserver& aObserver);
-    void ConstructL();
-private:
-    MAnimTimerObserver& iAnim;
-    };
-
-class CTestFreeTimerAnim : public CFreeTimerWindowAnim, public MAnimTimerObserver
-	{
-public:
-    //from CBase 
-    ~CTestFreeTimerAnim();
-	//from CAnim
-	void Animate(TDateTime *aDateTime);
-	void Command(TInt aOpcode, TAny *aArgs);
-	TInt CommandReplyL(TInt aOpcode, TAny *aArgs);
-	//from CWindowAnim 
-    void ConstructL(TAny *aArgs, TBool aHasFocus);
-    void Redraw();
-    void FocusChanged(TBool aState);
-	//from MEventHandler
-	TBool OfferRawEvent(const TRawEvent &aRawEvent);
-private:
-    void DisplayNextFrameL();
-private:
-    CAnimTimer* iTimer;
-    TInt iFrameTime;
-    TRgb iColour;
-    TRect iRect;    
-	};
-
-class CEventTestAnimBase : public CWindowAnim
-	{
-	enum {EEventBufferSize=40};
-public:
-	virtual ~CEventTestAnimBase();
-	//Pure virtual functions from CAnim
-	virtual void Animate(TDateTime *aDateTime);
-	virtual void Command(TInt aOpcode, TAny *aArgs);
-	virtual TInt CommandReplyL(TInt aOpcode, TAny *aArgs);
-	//Pure virtual functions from CWindowAnim
-	virtual void ConstructL(TAny *aArgs, TBool aHasFocus);
-	virtual void Redraw();
-	virtual void FocusChanged(TBool aState);
-	//Pure virtual function from MEventHandler
-	virtual TBool OfferRawEvent(const TRawEvent &aRawEvent);
-protected:
-	void Fail();
-	TBool IsIgnorableEvent(const TRawEvent& aRawEvent) const;
-	TBool GetNextExpectedEvent(TAnimRawEvent& aRawEvent);
-	TBool CompareEvents(const TRawEvent& aExpectedEvent, const TRawEvent& aActualEvent) const;
-	TBool HandleRecursiveEvent(const TRawEvent& aRawEvent);
-
-	TInt Error() const;
-	TInt EventCount() const;
-	void ResetEventCount();
-	TInt TotalExpectedEvents() const;
-	TInt AddEvent(const TAnimRawEvent* event);
-private:
-	virtual TInt AddExpectedEvent(const TAnimRawEvent* event)=0;
-private:
-	CCirBuf<TAnimRawEvent> iExpectedEvents;
-	TInt iError;
-	TInt iEventCount;
-	};
-
-class CEventTestAnim : public CEventTestAnimBase
-	{
-public:
-	~CEventTestAnim();
-	//Pure virtual functions from CWindowAnim overridden in CEventTestAnimBase
-	void ConstructL(TAny* aArgs,TBool aHasFocus);
-	//Pure virtual functions from CAnim overridden in CEventTestAnimBase
-	TInt CommandReplyL(TInt aOpcode,TAny* aArgs);
-	void Command(TInt aOpcode,TAny* aArgs);
-private:
-	TInt UnloadDeviceDriver();
-	//Pure virtual function from CEventTestAnimBase
-	TInt AddExpectedEvent(const TAnimRawEvent* event);
-private:
-	TBool iDevDriverLoaded;
-	REventDD iLdd;
-	};
-
-class CEventPostingAnim : public CEventTestAnimBase
-	{
-public:
-	~CEventPostingAnim();
-	//Virtual functions from CEventTestAnimBase
-	virtual void ConstructL(TAny *aArgs, TBool aHasFocus);
-	//Virtual function from MEventHandler
-	virtual TBool OfferRawEvent(const TRawEvent &aRawEvent);
-private:
-	//Pure virtual function from CEventTestAnimBase
-	virtual TInt AddExpectedEvent(const TAnimRawEvent* event);
-	};
-
-class CRemovableAnim : public CEventTestAnimBase
-	{
-public:
-	~CRemovableAnim();
-	//Virtual functions from CEventTestAnimBase
-	virtual TInt CommandReplyL(TInt aOpcode, TAny *aArgs);
-	virtual TBool OfferRawEvent(const TRawEvent &aRawEvent);
-private:
-	//Pure virtual function from CEventTestAnimBase
-	virtual TInt AddExpectedEvent(const TAnimRawEvent* event);
-private:
-	TInt iLifetime;
-	};
-
-class CTimerTestAnim : public CWindowAnim
-	{
-public:
-	~CTimerTestAnim();
-	//Pure virtual functions from CAnim
-	virtual void Animate(TDateTime *aDateTime);
-	virtual void Command(TInt aOpcode, TAny *aArgs);
-	virtual TInt CommandReplyL(TInt aOpcode, TAny *aArgs);
-	//Pure virtual functions from CWindowAnim
-	virtual void ConstructL(TAny *aArgs, TBool aHasFocus);
-	virtual void Redraw();
-	virtual void FocusChanged(TBool aState);
-	//Pure virtual function from MEventHandler
-	virtual TBool OfferRawEvent(const TRawEvent &aRawEvent);
-private:
-	TInt iTimerCount;
-	TBool iExpectingTicks;
-	TBool iFail;
-	};
-
-class CWinFunctionTestAnim : public CWindowAnim
-	{
-	//enum {EEventBufferSize=40};
-public:
-	~CWinFunctionTestAnim();
-	//Pure virtual functions from CAnim
-	virtual void Animate(TDateTime *aDateTime);
-	virtual void Command(TInt aOpcode, TAny *aArgs);
-	virtual TInt CommandReplyL(TInt aOpcode, TAny *aArgs);
-	//Pure virtual functions from CWindowAnim
-	virtual void ConstructL(TAny *aArgs, TBool aHasFocus);
-	virtual void Redraw();
-	virtual void FocusChanged(TBool aState);
-	//Pure virtual function from MEventHandler
-	virtual TBool OfferRawEvent(const TRawEvent &aRawEvent);
-private:
-	MAnimGeneralFunctionsWindowExtension* iWinFunctions;
-	};
-
-class CNotificationTestAnim : public CWindowAnim
-	{
-public:
-	CNotificationTestAnim();
-	~CNotificationTestAnim();
-	//Pure virtual functions from CAnim
-	virtual void HandleNotification(const TWsEvent& aEvent);
-	virtual void Animate(TDateTime *aDateTime);
-	virtual void Command(TInt aOpcode, TAny *aArgs);
-	virtual TInt CommandReplyL(TInt aOpcode, TAny *aArgs);
-	//Pure virtual functions from CWindowAnim
-	virtual void ConstructL(TAny *aArgs, TBool aHasFocus);
-	virtual void Redraw();
-	virtual void FocusChanged(TBool aState);
-	//Pure virtual function from MEventHandler
-	virtual TBool OfferRawEvent(const TRawEvent &aRawEvent);
-private:
-	TFixedArray<TBool,2> iDSA;
-	TBool iHeartbeatState;
-	TBool iScreenDeviceChanged;
-	TTime iLastAnimTime;
-	};
-
-class CTransAnim : public CWindowAnim
-//
-// Test drawing/redrawing in Transparent window.
-//
-	{
-public:
-	//Implementaion for pure virtual functions from CAnim
-	void ConstructL(TAny* aArgs, TBool aHasFocus);
-	void Animate(TDateTime* aDateTime);
-	void Redraw();
-	void Command(TInt aOpcode, TAny* aArgs);
-	TInt CommandReplyL(TInt aOpcode, TAny* aArgs);
-	void FocusChanged(TBool aState);
-	TBool OfferRawEvent(const TRawEvent &aRawEvent);
-private:
-	CFbsFont* iFont;
-	TRect iRect;
-	TInt iMode;
-	TInt iDraw;
-	TRgb iColor;
-	TInt iCount;
-	};
-
-class CTestHandlerAnim : public CWindowAnim
-	{
-	public:
-		~CTestHandlerAnim();
-		void ConstructL(TAny* aArgs, TBool aHasFocus);
-		void Redraw();
-		void FocusChanged(TBool aState);
-		TInt CommandReplyL(TInt aOpcode, TAny* aArgs);
-		void Command(TInt aOpcode, TAny* aArgs);
-		void Animate(TDateTime* aDateTime);
-		TBool OfferRawEvent(const TRawEvent &aRawEvent);
-	private:
-	};
-
-class CCoverageAnim : public CWindowAnim
-/**
- This class adds functional coverage to CWsAnimGc. 
- The actual work is handled by the 'Draw' method which calls
- each method in turn.
- Mostly copied from CAutoAnimScrBack and CAutoAnim3.
- @SYMTestCaseID 
- @SYMPREQ 1841 Add Coverage tests.
- @SYMTestCaseDesc  Functional coverage.
- @SYMTestActions Run functional coverage test on CWsAnimGc.
- */
-	{
-public:
-	~CCoverageAnim();
-	virtual void ConstructL(TAny *aArgs, TBool aHasFocus);
-	virtual void Animate(TDateTime *aDateTime);
-	virtual void Redraw();
-	virtual void Command(TInt aOpcode, TAny *aArgs);
-	virtual TInt CommandReplyL(TInt aOpcode, TAny *aArgs);
-	virtual void FocusChanged(TBool aState);
-	void Draw();
-	//Pure virtual function from MEventHandler
-	virtual TBool OfferRawEvent(const TRawEvent &aRawEvent);
-private:
-	TRect iRect; /** rectangle used for all draw ops that require one */
-	CFbsFont* iFont;
-	};
-
-class CMultiPointerAnim : public CWindowAnim
-	{
-	enum {EEventBufferSize=40};
-public:
-	virtual ~CMultiPointerAnim();
-	//Pure virtual functions from CAnim
-	virtual void Animate(TDateTime *aDateTime);
-	virtual void Command(TInt aOpcode, TAny *aArgs);
-	virtual TInt CommandReplyL(TInt aOpcode, TAny *aArgs);
-	//Pure virtual functions from CWindowAnim
-	virtual void ConstructL(TAny *aArgs, TBool aHasFocus);
-	virtual void Redraw();
-	virtual void FocusChanged(TBool aState);
-	//Pure virtual function from MEventHandler
-	virtual TBool OfferRawEvent(const TRawEvent &aRawEvent);
-protected:
-	TInt AddEvent(const TAnimRawEvent* aEvent);
-	TBool CompareEvents(const TRawEvent& aExpectedEvent, const TRawEvent& aActualEvent);
-private:
-	CCirBuf<TAnimRawEvent> iExpectedEvents;
-	TBuf<255> iErrorDes;
-	TInt iEventCount;
-	TInt iError;
-	};
-
-class CTestAnimDll : public CAnimDll
-	{
-public:
-	CAnim *CreateInstanceL(TInt aType);
-private:
-	};
-
-/*#if defined(__WINS__)
-#pragma data_seg(".E32_UID")
-__WINS_UID(0, KWservAnimDllUidValue, 0)
-#pragma data_seg()
-#endif*/
-
-EXPORT_C CAnimDll *CreateCAnimDllL()
-	{
-	return(new(ELeave) CTestAnimDll());
-	}
-
-
-// Panic Tests //
-void CPanicAnim::ConstructL(TAny *, TBool )
-	{
-	iWindowFunctions->SetRect(TRect(0,0,1,1));
-	iFunctions->SetSync(MAnimGeneralFunctions::ESyncSecond);
-	if (iFunctions->Sync()!=MAnimGeneralFunctions::ESyncSecond)
-		User::Leave(KErrGeneral);
-// Check the anim time is not ahead of and not more than 2 secs behind the system time
-	TTime now;
-	now.UniversalTime();
-	TDateTime dt=now.DateTime();
-	TDateTime adt=iFunctions->SystemTime();
-	if (adt.Day()!=dt.Day())
-		User::Leave(KErrGeneral);
-
-	iFunctions->SetSync(MAnimGeneralFunctions::ESyncNone);
-	if (iFunctions->Sync()!=MAnimGeneralFunctions::ESyncNone)
-		User::Leave(KErrGeneral);
-	}
-
-CPanicAnim::~CPanicAnim()
-	{
-	delete iActivePanicIdle;
-	}
-
-void CPanicAnim::Animate(TDateTime *aDateTime)
-	{
-	switch(iSyncState)
-		{
-		case ESyncStateNull:
-			break;
-		case ESyncStateStarting:
-			iTime=iFunctions->SystemTime();
-			iSyncState=ESyncStateCounting;
-			iSyncCount=0;
-			break;
-		case ESyncStateCounting:
-			if (aDateTime)
-				{
-				TTimeIntervalSeconds interval;
-				TTime(*aDateTime).SecondsFrom(iTime, interval);
-				iSyncCount=interval.Int();
-				}
-			else
-				iSyncCount++;
-			if (iSyncCount==ESyncCount)
-				{
-				TTimeIntervalMicroSeconds minInterval(0);
-				TTimeIntervalMicroSeconds maxInterval(0);
-				iSyncState=ESyncStateNull;
-				switch(iSyncMode)
-					{
-					case MAnimGeneralFunctions::ESyncSecond:
-						minInterval=iSyncCount*1000000-100000;
-						maxInterval=iSyncCount*1000000+100000;
-						break;
-					default:;
-					}
-				TTime time(iFunctions->SystemTime());
-				TTimeIntervalMicroSeconds interval=time.MicroSecondsFrom(iTime);
-				TInt ret=KErrNone;
-				if (interval<minInterval || interval>maxInterval)
-					ret=KErrGeneral;
-				iFunctions->Client().RequestComplete(iStatusPtr,ret);
-				}
-			break;
-		case ESyncLeave:
-			User::Leave(KErrGeneral);	// Test: Not allowed to leave, will cause a panic
-			break;
-		case ESyncStateTimeChange1:
-			if (!aDateTime)
-				{
-				iFunctions->Client().RequestComplete(iStatusPtr,KErrNone);
-				iSyncState=ESyncStateTimeChange2;
-				}
-			break;
-		case ESyncStateTimeChange2:
-			if (!aDateTime)
-				{
-				iSyncState=ESyncStateTimeChange3;
-				break;
-				}
-		case ESyncStateTimeChange3:
-			iFunctions->Client().RequestComplete(iStatusPtr2,aDateTime ? KErrNone : KErrGeneral);
-			iSyncState=ESyncStateNull;
-			break;
-		}
-	}
-
-void CPanicAnim::Redraw()
-	{
-	if (iLeaveInRedraw)
-		User::Leave(KErrGeneral);	//Test: Not allowed to leave, will cause a panic
-	}
-
-void CPanicAnim::Command(TInt aOpcode, TAny *)
-	{
-	switch(aOpcode)
-		{
-		case EADllPanicCallPanic:
-			iFunctions->Panic();
-			break;
-		case EADllPanicSetInterval:
-			iFunctions->SetSync(MAnimGeneralFunctions::ESyncSecond);
-			iFunctions->SetInterval(1);
-			break;
-		case EADllPanicSetNextInterval:
-			iFunctions->SetSync(MAnimGeneralFunctions::ESyncMinute);
-			iFunctions->SetNextInterval(1);
-			break;
-		case EADllPanicDoubleActivateGC:
-			iWindowFunctions->ActivateGc();
-			iWindowFunctions->ActivateGc();
-			break;
-		case EADllPanicDrawRectWithNoGc:
-			iGc->DrawRect(TRect(0,0,10,10));
-			break;
-		case EADllPanicDrawTextWithNoFont:
-			iWindowFunctions->ActivateGc();
-			iGc->DrawText(_L("Panic"),TPoint(20,20));
-			break;
-		case EADllPanicLeaveInAnimate:
-			iFunctions->SetSync(MAnimGeneralFunctions::ESyncFlash);
-			iSyncState=ESyncLeave;
-			break;
-		case EADllPanicLeaveInRedraw:
-			iLeaveInRedraw=ETrue;
-			iWindowFunctions->Invalidate(TRect(0,0,10,10));
-			break;
-		case EADllPanicLeave:
-			//tests a leaving function in a non-leaving function and should not be moved to CommandReplyL as it leaves
-			User::Leave(KErrGeneral);	//LeaveScan: intentional test
-			break;
-		case EADllPanicSetVisWithGcActive:
-			iWindowFunctions->ActivateGc();
-			iWindowFunctions->SetVisible(EFalse);
-			iWindowFunctions->SetVisible(ETrue);
-			break;
-		case EADllPanicLeaveInActiveCallback:
-			iActivePanicIdle=CIdle::NewL(EPriorityHigh);
-			iActivePanicIdle->Start(TCallBack(CPanicAnim::LeaveInActiveCallback,this));
-			break;
-		case EADllPanicSetClippingRectWithNoGc:
-			{
-			// currently this test fails because when deactivated iWin is also NULL and is deferenced in function
-			TRect rect(20,20,20,20);	
-			iGc->SetClippingRect(rect);
-			}
-			break;
-		case EADllPanicCancelClippingRegionWithNoGc:
-			// currently this test fails because when deactivated iWin is NULL and function leaves
-			iGc->CancelClippingRegion();
-			break;
-		case EADllPanicCancelClippingRectWithNoGc:
-			// currently this test fails because when deactivated iWin is also NULL and is deferenced in function
-			iGc->CancelClippingRect();
-			break;
-		case EADllPanicSetDrawModeWithNoGc:
-			iGc->SetDrawMode(CGraphicsContext::EDrawModeAND);
-			break;
-		case EADllPanicUseFontWithNoGc:
-			{
-			// currently this test fails because does not check for NULL font
-			CFbsFont* font = NULL;
-			iGc->UseFont(font);
-			}
-			break;
-		case EADllPanicDiscardFontWithNoGc:
-			iGc->DiscardFont();
-			break;
-		case EADllPanicSetUnderlineStyleWithNoGc:
-			iGc->SetUnderlineStyle(EUnderlineOff);
-			break;
-		case EADllPanicSetStrikeThoughStyleWithNoGc:
-			iGc->SetStrikethroughStyle(EStrikethroughOff);
-			break;
-		case EADllPanicSetWordJustificationWithNoGc:
-			iGc->SetWordJustification(0,0);
-			break;
-		case EADllPanicSetCharJustificationWithNoGc:
-			iGc->SetCharJustification(0,0);
-			break;
-		case EADllPanicSetPenColorWithNoGc:
-			{
-			TRgb rgbs;
-			iGc->SetPenColor(rgbs);
-			}
-			break;
-		case EADllPanicSetPenStyleWithNoGc:
-			iGc->SetPenStyle(CGraphicsContext::ESolidPen);
-			break;
-		case EADllPanicSetPenSizeWithNoGc:
-			{
-			const TSize size;
-			iGc->SetPenSize(size);
-			}
-			break;
-		case EADllPanicSetBrushColorWithNoGc:
-			{
-			TRgb rgbs;
-			iGc->SetBrushColor(rgbs);
-			}
-			break;
-		case EADllPanicSetBrushStyleWithNoGc:
-			iGc->SetBrushStyle(CGraphicsContext::ESolidBrush);
-			break;
-		case EADllPanicSetBrushOriginWithNoGc:
-			{
-			TPoint point;
-			iGc->SetBrushOrigin(point);
-			}
-			break;
-		case EADllPanicUseBrushPatterWithNoGc:
-			{
-			CFbsBitmap* bitmap = new(ELeave) CFbsBitmap();
-			CleanupStack::PushL(bitmap);
-			User::LeaveIfError(bitmap->Create(TSize(16,16),EGray4));
-			iGc->UseBrushPattern(bitmap);
-			CleanupStack::PopAndDestroy(bitmap);
-			}
-			break;
-		case EADllPanicDiscardBrushPatternWithNoGc:
-			iGc->DiscardBrushPattern();
-			break;
-		case EADllPanicSetFadedWithNoGc:
-			iGc->SetFaded(EFalse);
-			break;
-		case EADllPanicSetFadingParametersWithNoGc:
-			iGc->SetFadingParameters(1,1);
-			break;
-		case EADllPanicDrawArcWithNoGc:
-			{
-			TRect rect;
-			iGc->DrawArc(rect,
-				TPoint(rect.Center().iX, rect.iTl.iY),
-				TPoint(rect.iBr.iX, rect.Center().iY));
-			}
-			break;
-		case EADllPanicDrawPieWithNoGc:
-			{
-			TRect rect;				
-			iGc->DrawPie(rect, TPoint(rect.Center().iX, rect.iTl.iY), TPoint(rect.iBr.iX, rect.Center().iY));
-			}
-			break;
-		case EADllPanicDrawLineWithNoGc:
-			{	
-			const TPoint point1;
-			const TPoint point2;
-			iGc->DrawLine(point1, point2);
-			}
-			break;
-		case EADllPanicDrawLineToWithNoGc:
-			{
-			const TPoint point;
-			iGc->DrawLineTo(point);
-			}
-			break;
-		case EADllPanicDrawLineByWithNoGc:
-			{
-			const TPoint point;
-			iGc->DrawLineBy(point);
-			}
-			break;
-		case EADllPanicDrawEllipseWithNoGc:
-			{
-			TRect rect(20,20,20,20);
-			iGc->DrawEllipse(rect);
-			}
-			break;
-		case EADllPanicDrawRoundedRecWithNoGc:
-			{
-			TRect rect;
-			iGc->DrawRoundRect(rect, TSize(rect.Width()/8, rect.Height()/8));
-			}
-			break;
-		case EADllPanicClearWithRectWithNoGc:
-			{
-			TRect rect(20,20,20,20);
-			iGc->Clear(rect);
-			}
-			break;
-		case EADllPanicClearWithNoGc:
-			iGc->Clear();
-			break;
-		case EADllPanicBitBltWithNoGc:
-			{
-			CFbsBitmap* bitmap = new(ELeave) CFbsBitmap();
-			CleanupStack::PushL(bitmap);
-			User::LeaveIfError(bitmap->Create(TSize(16,16),EGray4));
-			iGc->BitBlt(TPoint(0, 0), bitmap);
-			CleanupStack::PopAndDestroy(bitmap);
-			}
-			break;
-		case EADllPanicBitBltWithRectWithNoGc:
-			{
-			CFbsBitmap* bitmap = new(ELeave) CFbsBitmap();
-			TRect rect;
-			CleanupStack::PushL(bitmap);
-			User::LeaveIfError(bitmap->Create(TSize(16,16),EGray4));
-			iGc->BitBlt(TPoint(0, 0), bitmap, rect);
-			CleanupStack::PopAndDestroy(bitmap);
-			}
-			break;
-		case EADllPanicBitBltMaskedWithNoGc:
-			{
-			CFbsBitmap* bitmap = new(ELeave) CFbsBitmap();
-			TRect rect;
-			CleanupStack::PushL(bitmap);
-			User::LeaveIfError(bitmap->Create(TSize(16,16),EGray4));
-			iGc->BitBltMasked(TPoint(0, 0), bitmap, rect, bitmap, EFalse);
-			CleanupStack::PopAndDestroy(bitmap);
-			}
-			break;
-		case EADllPanicDrawBitmapMaskedFbsBitmapWithNoGc:
-			{
-			CFbsBitmap* bitmap = new(ELeave) CFbsBitmap();
-			TRect rect;
-			CleanupStack::PushL(bitmap);
-			User::LeaveIfError(bitmap->Create(TSize(16,16),EGray4));
-			iGc->DrawBitmapMasked(rect, bitmap, rect, bitmap, ETrue);
-			CleanupStack::PopAndDestroy(bitmap);
-			}
-			break;
-		case EADllPanicDrawBitmapMaskedWsBitmapWithNoGc:
-			{
-			CWsBitmap* bitmap = NULL;
-			TRect rect;
-			iGc->DrawBitmapMasked(rect, bitmap, rect, bitmap, ETrue);
-			}
-			break;
-		case EADllPanicDrawBitmapPointWithNoGc:
-			{
-			CWsBitmap* bitmap = NULL;
-			TRect rect;
-			iGc->DrawBitmap(rect.iTl, bitmap);
-			}
-			break;
-		case EADllPanicDrawBitmapWithNoGc:
-			{
-			CWsBitmap* bitmap = NULL;
-			TRect rect;
-			iGc->DrawBitmap(rect, bitmap);
-			}
-			break;
-		case EADllPanicDrawBitmapRectWithNoGc:
-			{
-			CWsBitmap* bitmap = NULL;
-			TRect rect;
-			iGc->DrawBitmap(rect, bitmap, TRect(0, 0, 16, 16));
-			}
-			break;
-		case EADllPanicDrawPolyLinePointsWithNoGc:
-			{
-			TRect rect;
-			CArrayFixFlat<TPoint>* polyPoints = new(ELeave) CArrayFixFlat<TPoint>(3); //CArrayFixFlat
-			CleanupStack::PushL(polyPoints);
-			polyPoints->AppendL(rect.iTl);
-			polyPoints->AppendL(rect.Center());
-			polyPoints->AppendL(TPoint(rect.iBr.iX, rect.iTl.iY));
-			iGc->DrawPolyLine(&polyPoints->At(0), 3);
-			CleanupStack::PopAndDestroy(polyPoints);
-			}
-			break;
-		case EADllPanicDrawPolyLineArrayWithNoGc:
-			{
-			TRect rect;
-			CArrayFixFlat<TPoint>* polyPoints = new(ELeave) CArrayFixFlat<TPoint>(3); //CArrayFixFlat
-			CleanupStack::PushL(polyPoints);
-			polyPoints->AppendL(rect.iTl);
-			polyPoints->AppendL(rect.Center());
-			polyPoints->AppendL(TPoint(rect.iBr.iX, rect.iTl.iY));
-			iGc->DrawPolyLine(polyPoints);
-			CleanupStack::PopAndDestroy(polyPoints);
-			}
-			break;
-		case EADllPanicMoveToWithNoGc:
-			{
-			TPoint point;
-			iGc->MoveTo(point);
-			}
-			break;
-		case EADllPanicMoveByWithNoGc:
-			{
-			TPoint point;
-			iGc->MoveBy(point);
-			}
-			break;
-		case EADllPanicPlotWithNoGc:
-			{
-			TPoint point;
-			iGc->Plot(point);
-			}
-			break;
-		case EADllPanicSetOriginWithNoGc:
-			{
-			TPoint point;
-			iGc->SetOrigin(point);
-			}
-			break;
-		case EADllPanicCopyRectWithNoGc:
-			{
-			TPoint point;
-			TRect rect;
-			iGc->CopyRect(point, rect);
-			}
-			break;
-		case EADllPanicResetWithNoGc:
-			iGc->Reset();
-			break;
-		case EADllPanicMapColorsWithNoGc:
-			{
-			TRgb rgbs[2];
-			TRect rect;
-			iGc->MapColors(rect, rgbs, 1, ETrue);
-			}
-			break;
-		case EADllPanicDrawTextWithRectWithNoFont:
-			iWindowFunctions->ActivateGc();
-			iGc->DrawText(_L("Panic"),TRect(20,20,20,20),0);
-			break;
-		case EADllPanicDrawTextVerticalWithNoFont:
-			iWindowFunctions->ActivateGc();
-			iGc->DrawTextVertical(_L("Panic"),TPoint(20,20), EFalse);
-			break;
-		case EADllPanicDrawTextVerticalWithRectWithNoFont:
-			iWindowFunctions->ActivateGc();
-			iGc->DrawTextVertical(_L("Panic"),TRect(20,20,20,20), 0, EFalse);
-			break;
-		case EADllPanicInvalidFocusScreenTooBig:
-			(static_cast<MAnimGeneralFunctionsWindowExtension*>(iFunctions->ExtendedInterface(MAnimGeneralFunctions::EWindowExtensionInterface)))->SetFocusScreen(3000);
-			break;
-		case EADllPanicInvalidFocusScreenNegative:
-			(static_cast<MAnimGeneralFunctionsWindowExtension*>(iFunctions->ExtendedInterface(MAnimGeneralFunctions::EWindowExtensionInterface)))->SetFocusScreen(-1);
-			break;
-		default:
-			iFunctions->Panic();
-		}
-	}
-
-void CPanicAnim::DoLeaveInActiveCallback()
-	{
-	iWindowFunctions->ActivateGc();
-	User::Leave(KErrUnknown);
-	}
-
-TInt CPanicAnim::LeaveInActiveCallback(TAny *aThis)
-	{
-	CPanicAnim* panicAnim=(CPanicAnim*)aThis;
-	panicAnim->DoLeaveInActiveCallback();
-	return(KErrNone);
-	}
-
-void CPanicAnim::StartSyncTest(MAnimGeneralFunctions::TAnimSync aSync)
-	{
-	iFunctions->SetSync(aSync);
-	iSyncMode=aSync;
-	iSyncState=ESyncStateStarting;
-	}
-
-void CPanicAnim::StartTimeChangeTest()
-	{
-	iFunctions->SetSync(MAnimGeneralFunctions::ESyncSecond);
-	iSyncMode=MAnimGeneralFunctions::ESyncSecond;
-	iSyncState=ESyncStateTimeChange1;
-	}
-
-TInt CPanicAnim::CommandReplyL(TInt aOpcode,TAny* aParams)
-	{
-	TAnimArgUnion pData;
-	pData.any=aParams;
-	switch(aOpcode)
-		{
-		case EADllPanicBadFont:
-			iFunctions->DuplicateFontL(123);
-			break;
-		case EADllPanicBadBitmap:
-			iFunctions->DuplicateBitmapL(123);
-			break;
-		case EADllPanicCallPanic:
-			iFunctions->Panic();
-			break;
-		case EADllReadRemoteDescriptor:
-			{
-			TInt ret=0;
-			const RMessagePtr2& message=*iFunctions->Message();
-			TInt bufLength = message.GetDesLength(KIpcSlot);
-			TUint16* heapCell=static_cast<TUint16*>(User::AllocL(bufLength*2));
-			TPtr buf(heapCell,bufLength*2,bufLength*2);
-			const TInt theError=message.Read(KIpcSlot,buf);
-			if(theError == KErrNone)
-				{
-				for (TInt index=0;index<bufLength;index++)
-					{
-					ret+=buf[index];
-					}
-				}
-			User::Free(heapCell);
-			return(ret);
-			}
-		case EADllTestWindowSize:
-			return(*pData.Size==iWindowFunctions->WindowSize());
-		case EADllSyncTests:
-			iStatusPtr=pData.SyncTests->status;
-			StartSyncTest(pData.SyncTests->syncMode);
-			break;
-		case EADllTimeChangedTest:
-			iStatusPtr=pData.TimeChangeTest->status;
-			iStatusPtr2=pData.TimeChangeTest->status2;
-			StartTimeChangeTest();
-			break;
-		case EADllTestSetVisible:
-			if (iWindowFunctions->IsHidden())
-				goto setVisFailed;
-			iWindowFunctions->SetVisible(EFalse);
-			if (!iWindowFunctions->IsHidden())
-				goto setVisFailed;
-			iWindowFunctions->SetVisible(ETrue);
-			if (iWindowFunctions->IsHidden())
-setVisFailed:	return(EFalse);
-			return(ETrue);
-		case EADllPanicSetVisWithGcActiveReply:
-			iWindowFunctions->ActivateGc();
-			iWindowFunctions->SetVisible(EFalse);
-			iWindowFunctions->SetVisible(ETrue);
-			break;
-		case EADllPanicSetClippingRegionWithNoGc:
-			{
-			// currently this test fails because when deactivated iWin is also NULL and is deferenced in function
-			RRegion region;
-			TBool err = iGc->SetClippingRegion(region);
-			}
-			break;
-		case EADllPanicDrawPolygonPointsWithNoGc:
-			{	
-			TRect rect(20,20,20,20);
-			CArrayFixFlat<TPoint>* polyPoints = new(ELeave) CArrayFixFlat<TPoint>(3); //CArrayFixFlat
-			CleanupStack::PushL(polyPoints);
-			polyPoints->AppendL(rect.iTl);
-			polyPoints->AppendL(rect.Center());
-			polyPoints->AppendL(TPoint(rect.iBr.iX, rect.iTl.iY));
-			iGc->DrawPolygon(polyPoints, CGraphicsContext::EWinding);
-			CleanupStack::PopAndDestroy(polyPoints);
-			}
-			break;
-		case EADllPanicDrawPolygonArrayWithNoGc:
-			{	
-			TRect rect(20,20,20,20);
-			CArrayFixFlat<TPoint>* polyPoints = new(ELeave) CArrayFixFlat<TPoint>(3); //CArrayFixFlat
-			CleanupStack::PushL(polyPoints);
-			polyPoints->AppendL(rect.iTl);
-			polyPoints->AppendL(rect.Center());
-			polyPoints->AppendL(TPoint(rect.iBr.iX, rect.iTl.iY));
-			iGc->DrawPolygon(&polyPoints->At(0), 3, CGraphicsContext::EAlternate);
-			CleanupStack::PopAndDestroy(polyPoints);
-			}
-			break;
-		case EADllPanicAlphaBlendingBitmapsFbsBitmapWithNoGc:
-			{
-			TRect rect(20,20,20,20);
-			CFbsBitmap* bitmap = new(ELeave) CFbsBitmap();
-			CleanupStack::PushL(bitmap);
-			User::LeaveIfError(bitmap->Create(TSize(16,16),EGray4));
-			iGc->AlphaBlendBitmaps(TPoint(0, 0), bitmap, rect, bitmap, TPoint(0,0));
-			CleanupStack::PopAndDestroy(bitmap);
-			}
-			break;
-		case EADllPanicDevice:
-			{
-			CGraphicsDevice *device = iGc->Device();
-			}
-			break;
-		default:
-			iFunctions->Panic();
-		}
-	return(KErrNone);
-	}
-
-void CPanicAnim::FocusChanged(TBool )
-	{
-	}
-
-TBool CPanicAnim::OfferRawEvent(const TRawEvent &/*aRawEvent*/)
-	{
-	return EFalse;
-	}
-
-
-// CPanicAnim2 simply panics in the construct //
-void CPanicAnim2::ConstructL(TAny *, TBool )
-	{
-	iFunctions->Panic();
-	}
-
-void CPanicAnim2::Animate(TDateTime *)
-	{}
-
-void CPanicAnim2::Redraw()
-	{}
-
-void CPanicAnim2::Command(TInt , TAny *)
-	{}
-
-TInt CPanicAnim2::CommandReplyL(TInt , TAny *)
-	{return(0);}
-
-void CPanicAnim2::FocusChanged(TBool )
-	{}
-
-TBool CPanicAnim2::OfferRawEvent(const TRawEvent &/*aRawEvent*/)
-	{
-	return EFalse;
-	}
-
-
-// CAutoAnim3 test drawing/redrawing //
-void CAutoAnim3::ConstructL(TAny *aParam, TBool )
-	{
-	iRect=*((TRect *)aParam);
-	iWindowFunctions->SetRect(iRect);
-	iMode=0;
-	iWindowFunctions->Invalidate(iRect);
-	iFunctions->SetSync(MAnimGeneralFunctions::ESyncSecond);
-	}
-
-void CAutoAnim3::Animate(TDateTime *)
-	{
-	iWindowFunctions->ActivateGc();
-	if (iMode==1)
-		{
-		Draw(iRect);
-		if (iRect.Width()>20 && iRect.Height()>20)
-			iRect.Shrink(TSize(20,20));
-		else
-			iRect=iBaseRect;
-		Draw(iRect);
-		}
-	else if (iMode==2)
-		{
-		Draw(iRect);
-		iFunctions->Client().RequestComplete(iStatusPtr,KErrNone);
-		iFunctions->SetSync(MAnimGeneralFunctions::ESyncNone);
-		}
-	else if (iMode==3)
-		{
-		// flip between two sizes
-		if (iRect.iTl.iX == 10)
-			iRect.SetRect(40,40,80,80);
-		else
-			iRect.SetRect(10,10,110,110);
-		Draw(iRect);
-		}
-	}
-
-void CAutoAnim3::Draw(const TRect &aRect)
-	{
-	switch(iMode)
-		{
-		case 0:
-			iGc->SetDrawMode(CGraphicsContext::EDrawModeXOR);
-			iGc->SetBrushStyle(CGraphicsContext::ESolidBrush);
-			iGc->SetBrushColor(TRgb::Gray256(85));
-			iGc->SetPenColor(TRgb::Gray256(170));
-			iGc->DrawEllipse(aRect);
-			iGc->SetBrushStyle(CGraphicsContext::ENullBrush);
-			break;
-		case 1:	// Shrinking box
-			iGc->SetDrawMode(CGraphicsContext::EDrawModeXOR);
-			iGc->SetPenColor(TRgb::Gray256(255));
-			iGc->DrawRect(aRect);
-			break;
-		case 2:
-		case 3:
-			iGc->SetDrawMode(CGraphicsContext::EDrawModePEN);
-			iGc->SetBrushStyle(CGraphicsContext::ESolidBrush);
-			iGc->SetBrushColor(TRgb::Gray256(85));
-			iGc->SetPenColor(TRgb::Gray256(170));
-			iGc->DrawEllipse(aRect);
-			iGc->SetBrushStyle(CGraphicsContext::ENullBrush);
-			break;
-		default:
-			break;
-		}
-	}
-
-void CAutoAnim3::Redraw()
-	{
-	Draw(iRect);
-	}
-
-void CAutoAnim3::Command(TInt aOpcode,TAny* aParam)
-	{
-	TAnimArgUnion pData;
-	pData.any=aParam;
-	switch(aOpcode)
-		{
-		case EADllSetRect:
-			iWindowFunctions->ActivateGc();
-			Draw(iRect);
-			iRect=*pData.Rect;
-			iWindowFunctions->SetRect(iRect);
-			Draw(iRect);
-			{		//Do more extensive testing
-			TWindowInfo data;
-			iWindowFunctions->Parameters(data);
-			}
-			break;
-		case EADllStartAnimate:
-			iWindowFunctions->ActivateGc();
-			Draw(iRect);
-			iMode=1;
-			iBaseRect=*pData.Rect;
-			iRect=iBaseRect;
-			iWindowFunctions->SetRect(iRect);
-			iFunctions->SetSync(MAnimGeneralFunctions::ESyncFlash);
-			Draw(iRect);
-			break;
-		case EADllCancelAnimate:
-			iFunctions->SetSync(MAnimGeneralFunctions::ESyncNone);
-			iWindowFunctions->ActivateGc();
-			Draw(iRect);
-			iMode=-1;
-			break;
-		case EADllSetVisible:
-			iWindowFunctions->SetVisible(*pData.Bool);
-			break;
-		case EADllSetShadowDrawMode:
-			iMode=2;
-			break;
-		case EADllDrawTestScreen:
-			DrawTestScreenL(pData.DrawTestScreen);		//Should move to CommandReplyL as it leaves
-			break;
-		case EADllSetMode:
-			iMode = *pData.Int;
-			break;	
-		}
-	}
-
-TInt CAutoAnim3::CommandReplyL(TInt aOpcode, TAny *aParam)
-	{
-	TAnimArgUnion pData;
-	pData.any = aParam;
-	TInt ret=0;
-	switch(aOpcode)
-		{
-		case EADllShadowAnimTest:
-			iFunctions->SetSync(MAnimGeneralFunctions::ESyncFlash);
-			iStatusPtr=((TShadowDrawTest *)aParam)->status;
-			break;
-		case EADllParameterRectValueTest:
-			{
-			TWindowInfo wininf;
-			iWindowFunctions->Parameters(wininf);
-			TRect comp = *(pData.Rect);
-			ret=(comp==wininf.iScreenPos);
-			}
-			break;
-		case EADllDoSetSync:
-			iFunctions->SetSync(static_cast<MAnimGeneralFunctions::TAnimSync>(*pData.Int));
-			break;
-		case EADllSetInterval:					
-			iFunctions->SetInterval(*pData.Int);
-			break;
-		}
-	return(ret);
-	}
-
-void CAutoAnim3::FocusChanged(TBool )
-	{}
-
-//void CAutoAnim3::DrawTestScreen(TDrawTestScreen *aParams)
-//Function now at bottom of file
-
-TBool CAutoAnim3::OfferRawEvent(const TRawEvent &/*aRawEvent*/)
-	{
-	return EFalse;
-	}
-
-
-// CAutoAnimScrBack test drawing/redrawing //
-void CAutoAnimScrBack::ConstructL(TAny *aParam, TBool )
-	{
-	iRect=*((TRect *)aParam);
-	iWindowFunctions->SetRect(iRect);
-	iMode=1;
-	iFunctions->SetSync(MAnimGeneralFunctions::ESyncFlash);
-	}
-
-void CAutoAnimScrBack::Animate(TDateTime *)
-	{
-	iWindowFunctions->ActivateGc();
-	Draw();
-	iFunctions->SetSync(MAnimGeneralFunctions::ESyncNone);
-	}
-
-void CAutoAnimScrBack::Draw()
-	{
-	iGc->SetDrawMode(CGraphicsContext::EDrawModePEN);
-	if (iMode==2)
-		iGc->SetPenSize(TSize(3,3));
-	iGc->SetPenColor(TRgb::Gray4(iMode==1 ? 2 : 3));
-	iGc->SetBrushStyle(CGraphicsContext::ESolidBrush);
-	iGc->SetBrushColor(TRgb::Gray4(iMode==1 ? 1 : 0));
-	iGc->DrawRect(iRect);
-	}
-
-void CAutoAnimScrBack::Redraw()
-	{
-	Draw();
-	}
-
-void CAutoAnimScrBack::Command(TInt aOpcode,TAny* aParam)
-	{
-	TAnimArgUnion pData;
-	pData.any=aParam;
-	switch(aOpcode)
-		{
-		case EADllDrawOtherRect:
-			{
-			TRect oldRect(iRect);
-			if (iMode==2)
-				oldRect.Grow(1,1);	// To allow for 3x3 pen size
-			iMode=2;
-			iRect=*pData.Rect;
-			TRect fullRect(iRect);
-			fullRect.Grow(1,1);	// To allow for 3x3 pen size
-			iWindowFunctions->Invalidate(oldRect);
-			iWindowFunctions->SetRect(fullRect);
-			iWindowFunctions->Invalidate(fullRect);
-			}
-//			iFunctions->ActivateGc();
-//			Draw();
-			break;
-		}
-	}
-
-TInt CAutoAnimScrBack::CommandReplyL(TInt aOpcode, TAny *)
-	{
-	switch(aOpcode)
-		{
-		case EADllIsHidden:
-			return iWindowFunctions->IsHidden();
-		}
-	return(0);
-	}
-
-void CAutoAnimScrBack::FocusChanged(TBool )
-	{}
-
-TBool CAutoAnimScrBack::OfferRawEvent(const TRawEvent &/*aRawEvent*/)
-	{
-	return EFalse;
-	}
-
-
-// CTestSpriteAnim test sprite access //
-void CTestSpriteAnim::ConstructL(TAny* /*aParam*/)
-	{
-	iSpriteFunctions->SizeChangedL();
-	iSpriteFunctions->Activate(ETrue);
-	}
-
-void CTestSpriteAnim::Animate(TDateTime*)
-	{
-	}
-
-void CTestSpriteAnim::Command(TInt aOpcode,TAny* aParam)
-	{
-	TAnimArgUnion pData;
-	pData.any=aParam;
-	switch (aOpcode)
-		{
-	case EADllSizeChanged:
-		iSpriteFunctions->Activate(EFalse);
-		iSpriteFunctions->SizeChangedL();		//Should move to CommandReplyL as it leaves
-	case EADllActivate:
-		iSpriteFunctions->Activate(ETrue);
-		break;
-	case EADllDeactivate:
-		iSpriteFunctions->Activate(EFalse);
-		break;
-	case EADllSetPos:
-		iSpriteFunctions->SetPosition(*pData.Point);
-		break;
-	case EADllDraw1:
-	case EADllDraw2:
-	case EADllDraw3:
-		DrawMemberL(aOpcode-EADllDraw1);		//Should move to CommandReplyL as it leaves
-		break;
-	case EADllIncDraw:
-		DrawMemberL();		//Should move to CommandReplyL as it leaves
-		break;
-	default:;
-		}
-	}
-
-TInt CTestSpriteAnim::CommandReplyL(TInt aOpcode,TAny* aParam)
-	{
-	TAnimArgUnion pData;
-	pData.any=aParam;
-	switch (aOpcode)
-		{
-	case EADllCheckMember:
-		return CheckMember(*pData.SpriteMemberInfo);
-	default:;
-		}
-	return(KErrNone);
-	}
-
-TBool CTestSpriteAnim::OfferRawEvent(const TRawEvent& /*aRawEvent*/)
-	{
-	return EFalse;
-	}
-
-TBool CTestSpriteAnim::CheckMember(const TSpriteMemberInfo& aMemInfo)
-	{
-	TSpriteMember spriteMember=*iSpriteFunctions->GetSpriteMember(aMemInfo.iMember);
-	if (spriteMember.iBitmap->Handle()!=aMemInfo.iBitmapHandle)
-		return EFalse;
-	if (aMemInfo.iMaskBitmapHandle==0)
-		{
-		if (spriteMember.iMaskBitmap!=NULL)
-			return EFalse;
-		}
-	else
-		{
-		if (spriteMember.iMaskBitmap->Handle()!=aMemInfo.iMaskBitmapHandle)
-			return EFalse;
-		}
-	if (spriteMember.iInvertMask!=aMemInfo.iInvertMask)
-		return EFalse;
-	if (spriteMember.iDrawMode!=aMemInfo.iDrawMode)
-		return EFalse;
-	if (spriteMember.iOffset!=aMemInfo.iOffset)
-		return EFalse;
-	if (spriteMember.iInterval!=aMemInfo.iInterval)
-		return EFalse;
-	return ETrue;
-	}
-
-void CTestSpriteAnim::DrawMemberL(TInt aMember)
-	{
-	CFbsBitmap *bitmap=iSpriteFunctions->GetSpriteMember(aMember)->iBitmap;
-	CFbsBitmapDevice *device=CFbsBitmapDevice::NewL(bitmap);
-	CleanupStack::PushL(device);
-	CFbsBitGc *gc;
-	User::LeaveIfError(device->CreateContext(gc));
-	CleanupStack::PushL(gc);
-	//gc->SetBrushColor(TRgb::Gray4((aMember+1)%3));
-	gc->SetBrushStyle(CGraphicsContext::ESolidBrush);
-	gc->SetPenSize(TSize());
-	TSize size=bitmap->SizeInPixels();
-	size.SetSize(size.iWidth/2,size.iHeight/2);
-	TPoint point=size.AsPoint();
-	gc->SetBrushColor(TRgb::Gray4(0));
-	//TRect rect=bitmap->SizeInPixels();
-	gc->DrawRect(TRect(TPoint(),size));
-	gc->SetBrushColor(TRgb::Gray4(1));
-	gc->DrawRect(TRect(TPoint(point.iX,0),size));
-	gc->SetBrushColor(TRgb::Gray4(2));
-	gc->DrawRect(TRect(TPoint(0,point.iY),size));
-	gc->SetBrushColor(TRgb::Gray4(3));
-	gc->DrawRect(TRect(point,size));
-	iSpriteFunctions->UpdateMember(aMember,TRect(bitmap->SizeInPixels()),ETrue);
-	CleanupStack::PopAndDestroy(2);
-	}
-
-void CTestSpriteAnim::DrawMemberL()
-	{
-	CFbsBitmap *bitmap=iSpriteFunctions->GetSpriteMember(0)->iBitmap;
-	CFbsBitmapDevice *device=CFbsBitmapDevice::NewL(bitmap);
-	CleanupStack::PushL(device);
-	CFbsBitGc *gc;
-	User::LeaveIfError(device->CreateContext(gc));
-	CleanupStack::PushL(gc);
-	gc->SetPenSize(TSize(3,3));
-	gc->SetPenColor(TRgb::Gray4(1));
-	TPoint corner=bitmap->SizeInPixels().AsPoint();
-	gc->DrawLine(TPoint(),corner);
-	gc->DrawLine(TPoint(0,corner.iY),TPoint(corner.iX,0));
-	iSpriteFunctions->UpdateMember(0,TRect(bitmap->SizeInPixels()),EFalse);
-	CleanupStack::PopAndDestroy(2);
-	}
-
-
-// CTestFreeTimerAnim test drawing off own timer //
-CTestFreeTimerAnim::~CTestFreeTimerAnim()
-    {
-    iTimer->Cancel();
-    delete iTimer;
-    }
-
-void CTestFreeTimerAnim::ConstructL(TAny* /*aParam*/, TBool )
-	{
-    User::LeaveIfNull(iFunctions);
-    User::LeaveIfNull(iWindowFunctions);
-    
-    //Configure free-timer anim (these values should be the default ones)
-    iFunctions->SetSync( MAnimGeneralFunctions::ESyncNone );
-    iFunctions->SetInterval(0);
-    
-    iFrameTime = 100000; //default frametime 0.1s
-    iTimer = CAnimTimer::NewL(*this);
-    iRect = iWindowFunctions->WindowSize();	
-	}
-
-#define MAX(a,b)    (((a)>(b))?(a):(b))
-
-void CTestFreeTimerAnim::Animate(TDateTime*)
-	{
-    TInt max = MAX(iRect.Width(), iRect.Height());
-    if(max <= 0)
-        {
-        iRect = iWindowFunctions->WindowSize();
-        }
-    else
-        {
-        iRect.Shrink(1,1);
-        }
-    
-    //change colour
-    switch(iColour.Value())
-        {
-        case 0x000000:  //black
-        case 0xffffff:  //white
-            iColour = KRgbRed;
-            break;
-        case 0x0000ff:  //red
-            iColour = KRgbGreen;
-            break;
-        case 0x00ff00:  //green
-            iColour = KRgbBlue;
-            break;
-        case 0xff0000:  //blue
-            iColour = KRgbBlack;
-            break;
-        }	
-	}
-
-void CTestFreeTimerAnim::Redraw()
-	{
-    //draw something in the animated colour
-    iGc->SetBrushColor(iColour);
-    iGc->SetBrushStyle(CGraphicsContext::ESolidBrush);
-    iGc->SetPenColor(KRgbBlack);
-    iGc->DrawRect(iRect);	
-	}
-
-void CTestFreeTimerAnim::Command(TInt aOpcode, TAny* aArgs)
-	{
-    switch(aOpcode)
-        {
-        case EStartAnimation:
-            DisplayNextFrameL();
-            break;
-        case EStopAnimation:
-            iTimer->Cancel();
-            break;
-        case ESetFrameTime:
-            ASSERT(aArgs);        
-            iFrameTime = *reinterpret_cast<TInt*>(aArgs);
-            break;
-        default:
-            ASSERT(0);
-        }
-    }
-
-TInt CTestFreeTimerAnim::CommandReplyL(TInt aOpcode, TAny* aArgs)
-	{    
-    switch(aOpcode)
-        {
-        case EStartAnimation:
-            DisplayNextFrameL();
-            break;
-        case EStopAnimation:
-            iTimer->Cancel();
-            break;
-        case ESetFrameTime:
-            ASSERT(aArgs); 
-            iFrameTime = *reinterpret_cast<TInt*>(aArgs);
-            break;
-        default:
-            ASSERT(0);
-        }
-    return(KErrNone);
-    }
-
-void CTestFreeTimerAnim::FocusChanged(TBool /*aState*/)
-	{
-	}
-
-TBool CTestFreeTimerAnim::OfferRawEvent(const TRawEvent& /*aRawEvent*/)
-	{
-	return EFalse;
-	}
-
-
-void CTestFreeTimerAnim::DisplayNextFrameL()
-    {    
-    //Reschedule timer callback
-    iTimer->Cancel();
-    iTimer->After(iFrameTime);
-    
-    Animate(NULL); //wserv don't animate free-timer animations
-    
-    //Schedule wserv redraw
-    MAnimFreeTimerWindowFunctions* windowFunctions = WindowFunctions();
-    ASSERT(windowFunctions);
-    windowFunctions->ActivateGc();
-    windowFunctions->DeactivateGc();
-    windowFunctions->Update();
-    }
-
-//
-// CAnimTimer class
-//
-
-/**
- Constructs a new bitmap animation timer object,and adds the specified active object to the current active scheduler.
-
-@param aObserver a pointer to MAnimTimerObserver
-*/
-CAnimTimer::CAnimTimer(MAnimTimerObserver& aObserver)
-    :CTimer(EPriorityStandard),
-    iAnim(aObserver)
-    {
-    CActiveScheduler::Add(this);
-    }
-
-/**
- Frees resources owned by the object prior to deletion.
-*/ 
-CAnimTimer::~CAnimTimer()
-    {
-    }
-
-/**
- Creates a new bitmap animation timer object.
-
-@param aObserver A pointer to the MAnimTimerObserver
-@return A pointer to the new bitmap animation timer object.
-*/
-CAnimTimer* CAnimTimer::NewL(MAnimTimerObserver& aObserver)
-    {
-    CAnimTimer* timer=new(ELeave) CAnimTimer(aObserver);
-    CleanupStack::PushL(timer);
-    timer->ConstructL();
-    CleanupStack::Pop();
-    return timer;
-    }
-
-/**
- Completes construction of the bitmap animation timer object and
- constructs a new asynchronous timer.
-*/
-void CAnimTimer::ConstructL()
-    {
-    CTimer::ConstructL();
-    }
-
-/**
- Handles an active object's request completion event.
- Invokes the function to draw the next frame
-*/
-void CAnimTimer::RunL()
-    {
-    iAnim.DisplayNextFrameL();
-    }
-
-// CEventTestAnimBase base class for event test anims //
-CEventTestAnimBase::~CEventTestAnimBase()
-	{
-	iFunctions->GetRawEvents(EFalse);
-	}
-
-void CEventTestAnimBase::ConstructL(TAny* /*aParam*/, TBool )
-	{
-	iExpectedEvents.SetLengthL(EEventBufferSize);
-	}
-
-void CEventTestAnimBase::Animate(TDateTime*)
-	{
-	}
-
-void CEventTestAnimBase::Redraw()
-	{
-	}
-
-void CEventTestAnimBase::Command(TInt /*aOpcode*/, TAny* /*aParam*/)
-	{
-	/*switch (aOpcode)
-		{
-	default:;
-		}*/
-	}
-
-void CEventTestAnimBase::FocusChanged(TBool /*aState*/)
-	{
-	}
-
-// Base class common client server interface
-TInt CEventTestAnimBase::CommandReplyL(TInt aOpcode,TAny* aParam)
-	{
-	TAnimArgUnion pData;
-	pData.any=aParam;
-	switch (aOpcode)
-		{
-	case EADllAddExpectedEvent:
-		return AddExpectedEvent(pData.AnimRawEvent);
-	case EADllNumberOfEventsReceived:
-		return iEventCount;
-	case EADllErrorCode:
-		return iError;
-	case EADllReset:
-		iExpectedEvents.Reset();
-		iError = 0;
-		iEventCount = 0;
-		return KErrNone;
-	default:;
-		}
-	return(KErrNone);
-	}
-
-TBool CEventTestAnimBase::HandleRecursiveEvent(const TRawEvent& aRawEvent)
-	{
-	if (aRawEvent.ScanCode() == 60)
-		{
-		TRawEvent rawEvent;
-		rawEvent.Set(TRawEvent::EKeyUp, 34);
-		iFunctions->PostRawEvent(rawEvent);
-		rawEvent.Set(TRawEvent::EKeyUp, 35);
-		iFunctions->PostRawEvent(rawEvent);
-		return ETrue;
-		}
-	return EFalse;
-	}
-
-TBool CEventTestAnimBase::OfferRawEvent(const TRawEvent& aRawEvent)
-	{
-	// Do not consume the following types of events
-	if (IsIgnorableEvent(aRawEvent))
-		{
-		return EFalse;
-		}
-
-	// Increment event count if not in an error state
-	if (!Error())
-		{
-		iEventCount++;
-		}
-	
-	// For anim which generates recursive events 
-	if (aRawEvent.Type() == TRawEvent::EKeyDown && aRawEvent.ScanCode() == 60)
-		{
-		return HandleRecursiveEvent(aRawEvent);
-		}
-
-	TAnimRawEvent event;
-
-	if (!GetNextExpectedEvent(event))
-		{
-		Fail();
-		return EFalse;
-		}
-
-	// Fail if wrong event type
-	if (!CompareEvents(event.iRawEvent, aRawEvent))
-		{
-		Fail();
-		}
-
-	return event.iEat;
-	}
-
-TBool CEventTestAnimBase::GetNextExpectedEvent(TAnimRawEvent& aRawEvent)
-	{
-	// Get next expected event
-	if (iExpectedEvents.Remove(&aRawEvent)<1)
-		{
-		Fail();
-		return EFalse;
-		}
-	else
-		{
-		return ETrue;
-		}
-	}
-
-TBool CEventTestAnimBase::IsIgnorableEvent(const TRawEvent& aRawEvent) const
-	{
-	TRawEvent::TType aType=aRawEvent.Type();
-	TBool result = (aType==TRawEvent::EActive || aType==TRawEvent::EInactive || aType==TRawEvent::ERedraw
-			|| (iExpectedEvents.Count()==0 && aType==TRawEvent::EPointerMove));
-
-	return result;
-	}
-
-TBool CEventTestAnimBase::CompareEvents(const TRawEvent& aExpectedEvent, const TRawEvent& aActualEvent) const
-	{
-	TRawEvent::TType eType=aExpectedEvent.Type();
-	TRawEvent::TType aType=aActualEvent.Type();
-	if (eType!=aType)
-		{
-		return EFalse;
-		}
-	else
-		{
-		switch (aType)
-			{
-		case TRawEvent::EUpdateModifiers:
-			{
-			TInt eMod=aExpectedEvent.Modifiers(),aMod=aActualEvent.Modifiers();
-			if (eMod!=aMod)
-				{
-				return EFalse;
-				}
-			break;
-			}
-		case TRawEvent::EKeyDown:
-		case TRawEvent::EKeyUp:
-			{
-			TInt eScan=aExpectedEvent.ScanCode(),aScan=aActualEvent.ScanCode();
-			if (eScan!=aScan)
-				{
-				return EFalse;
-				}
-			break;
-			}
-		case TRawEvent::EPointerMove:
-		case TRawEvent::EPointerSwitchOn:
-		case TRawEvent::EButton1Down:
-		case TRawEvent::EButton1Up:
-		case TRawEvent::EButton2Down:
-		case TRawEvent::EButton2Up:
-		case TRawEvent::EButton3Down:
-		case TRawEvent::EButton3Up:
-			{
-			TPoint ePoint=aExpectedEvent.Pos(),aPoint=aActualEvent.Pos();
-			if (ePoint!=aPoint)
-				{
-				return EFalse;
-				}
-			break;
-			}
-		default:;
-			}
-		}
-	return ETrue;
-	}
-
-void CEventTestAnimBase::Fail()
-	{
-	if (iError==0)
-		{
-		iError=iEventCount;
-		}
-	}
-
-inline TInt CEventTestAnimBase::Error() const
-	{
-	return iError;
-	}
-
-inline TInt CEventTestAnimBase::EventCount() const
-	{
-	return iEventCount;
-	}
-
-inline void CEventTestAnimBase::ResetEventCount()
-	{
-	iEventCount = 0;
-	}
-
-inline TInt CEventTestAnimBase::TotalExpectedEvents() const
-	{
-	return iExpectedEvents.Count();
-	}
-
-inline TInt CEventTestAnimBase::AddEvent(const TAnimRawEvent* aEvent)
-	{
-	return iExpectedEvents.Add(aEvent);
-	}
-
-// CEventTestAnim test drawing off own timer //
-CEventTestAnim::~CEventTestAnim()
-	{
-	UnloadDeviceDriver();
-	}
-
-void CEventTestAnim::ConstructL(TAny* aParam, TBool aBool)
-	{
-	CEventTestAnimBase::ConstructL(aParam, aBool);
-	iFunctions->GetRawEvents(ETrue);
-	iDevDriverLoaded=EFalse;
-	}
-
-TInt CEventTestAnim::UnloadDeviceDriver()
-	{
-	TInt err=KErrNone;
-	iLdd.Close();
-	if (iDevDriverLoaded)
-		{
-		err=User::FreeLogicalDevice(REventDD::BinaryName());
-		if (err==KErrNone)
-			iDevDriverLoaded=EFalse;
-		}
-	return err;
-	}
-
-TInt CEventTestAnim::AddExpectedEvent(const TAnimRawEvent* aEvent)
-	{
-	return (AddEvent(aEvent) ? KErrNone : KErrOverflow);
-	}
-
-TInt CEventTestAnim::CommandReplyL(TInt aOpcode,TAny* aParam)
-	{
-	switch (aOpcode)
-		{
-	case EADllNoEventsAndReset:
-		{
-		TInt events=EventCount();
-		ResetEventCount();
-		return events;
-		}
-	case EADllLoadDeviceDriver:
-		{
-		TInt err=User::LoadLogicalDevice(REventDD::BinaryName());
-		if (err==KErrNone || err==KErrAlreadyExists)
-			{
-			TInt err2=iLdd.Open();
-			if (err==KErrNone)
-				{
-				if (err2==KErrNone)
-					iDevDriverLoaded=ETrue;
-				else 		//Only unload if we loaded it
-					User::FreeLogicalDevice(REventDD::BinaryName());
-				}
-			err=err2;
-			}
-		return err;
-		}
-	case EADllUnloadDeviceDriver:
-		return UnloadDeviceDriver();
-	case EADllSendEvent:
-		{
-		TAnimRawEvent event;
-		TInt events=*static_cast<TInt*>(aParam);
-		TInt err=KErrNone;
-		TInt ii;
-		for (ii=events;ii>0;--ii)
-			{
-			event.iRawEvent.Set(ii/2==0 ? TRawEvent::ECaseOpen : TRawEvent::ECaseClose);
-			//TInt err=UserSvr::AddEvent(event.iRawEvent);
-			//Need to do the above line here, but don't have enough capability
-			//so call a device driver to do it instead
-			err=iLdd.SendEvent(event.iRawEvent);
-			if (err!=KErrNone)
-				return err;
-			event.iEat=ETrue;
-			AddExpectedEvent(&event);
-			}
-		return KErrNone;
-		}
-	default:;
-		return CEventTestAnimBase::CommandReplyL(aOpcode, aParam);
-		}
-	}
-
-void CEventTestAnim::Command(TInt aOpcode,TAny* /*aParam*/)
-	{
-	switch (aOpcode)
-		{
-	case EADllAfterEvent:
-		if (TotalExpectedEvents()>0)
-			Fail();
-		break;
-	default:;
-		}
-	}
-
-// CEventPostingAnim test posting of anim events //
-CEventPostingAnim::~CEventPostingAnim()
-	{
-	}
-
-void CEventPostingAnim::ConstructL(TAny* aParam, TBool aBool)
-	{
-	CEventTestAnimBase::ConstructL(aParam, aBool);
-	iFunctions->GetRawEvents(ETrue);
-	}
-
-TInt CEventPostingAnim::AddExpectedEvent(const TAnimRawEvent* aEvent)
-	{
-	return (AddEvent(aEvent) ? KErrNone : KErrOverflow);
-	}
-
-TBool CEventPostingAnim::OfferRawEvent(const TRawEvent &aRawEvent)
-	{
-	// Call PostRawEvent or PostKeyEvent according to type of the event
-	TBool ret = CEventTestAnimBase::OfferRawEvent(aRawEvent);
-	if (ret)
-		{
-		if (aRawEvent.Type() == TRawEvent::EKeyDown && aRawEvent.ScanCode() == 45)
-			{
-			TKeyEvent event;
-			event.iCode='J';
-			event.iScanCode=0;
-			event.iModifiers=0;
-			
-			// This is to check the normal PostKeyEvent API
-			iFunctions->PostKeyEvent(event);
-			
-			// This is to check the newly added API
-			iFunctions->EventExtension()->PostKeyEvent(event, 2);
-			}
-		else
-			{
-			iFunctions->PostRawEvent(aRawEvent);	
-			}
-		}
-	return ret;
-	}
-
-// CTimerTestAnim check that timer events stop //
-CTimerTestAnim::~CTimerTestAnim()
-	{
-	}
-
-void CTimerTestAnim::ConstructL(TAny* /*aParam*/, TBool )
-	{
-	iWindowFunctions->SetRect(TRect(0,0,1,1));
-	iFunctions->SetSync(MAnimGeneralFunctions::ESyncSecond);
-	iExpectingTicks=ETrue;
-	iFail=EFalse;
-	}
-
-void CTimerTestAnim::Animate(TDateTime*)
-	{
-	++iTimerCount;
-	if (!iExpectingTicks)
-		iFail=iTimerCount;
-	}
-
-void CTimerTestAnim::Redraw()
-	{
-	}
-
-void CTimerTestAnim::Command(TInt aOpcode, TAny* /*aParam*/)
-	{
-	switch (aOpcode)
-		{
-	case EADllResetCount:
-		iTimerCount=0;
-		break;
-	case EADllNoTimer:
-		iExpectingTicks=EFalse;
-		iFunctions->SetSync(MAnimGeneralFunctions::ESyncNone);
-		break;
-	case EADllTimerStarted:
-		iExpectingTicks=ETrue;
-		iFunctions->SetSync(MAnimGeneralFunctions::ESyncSecond);
-		break;
-	default:;
-		}
-	}
-
-TInt CTimerTestAnim::CommandReplyL(TInt aOpcode, TAny* /*aParam*/)
-	{
-	switch (aOpcode)
-		{
-	case EADllCurrentCount:
-		return iTimerCount;
-	case EADllFailed:
-		return iFail;
-	default:;
-		}
-	return(KErrNone);
-	}
-
-void CTimerTestAnim::FocusChanged(TBool /*aState*/)
-	{
-	}
-
-TBool CTimerTestAnim::OfferRawEvent(const TRawEvent& /*aRawEvent*/)
-	{
-	return EFalse;
-	}
-
-
-// CWinFunctionTestAnim test drawing off own timer //
-CWinFunctionTestAnim::~CWinFunctionTestAnim()
-	{}
-
-void CWinFunctionTestAnim::ConstructL(TAny* /*aParam*/,TBool)
-	{
-	iWinFunctions=static_cast<MAnimGeneralFunctionsWindowExtension*>
-										(iFunctions->ExtendedInterface(MAnimGeneralFunctions::EWindowExtensionInterface));
-	}
-
-void CWinFunctionTestAnim::Animate(TDateTime*)
-	{}
-
-void CWinFunctionTestAnim::Redraw()
-	{}
-
-void CWinFunctionTestAnim::Command(TInt /*aOpcode*/,TAny* /*aParam*/)
-	{
-	/*switch (aOpcode)
-		{
-	default:;
-		}*/
-	}
-
-TInt CWinFunctionTestAnim::CommandReplyL(TInt aOpcode,TAny* aParam)
-	{
-	TAnimArgUnion pData;
-	pData.any=aParam;
-	switch (aOpcode)
-		{
-	case EADllScreen:
-		return iWinFunctions->Screens();
-	case EADllFocusScreen:
-		return iWinFunctions->FocusScreens();
-	case EADllWindowGroups:
-		return iWinFunctions->WindowGroups(*pData.Int);
-	case EADllWindowGroupInfo:
-		{
-		const TWindowGroupInfoParms& params=*pData.WindowGroupInfoParms;
-		TPckgBuf<MAnimGeneralFunctionsWindowExtension::TWindowGroupInfo> info;
-		TBool ret=iWinFunctions->WindowGroupInfo(info(),params.iScreen,params.iOrdinalPosition);
-		/*const TInt theError=*/(*iFunctions->Message()).Write(KIpcSlot,info);
-		return ret;
-		}
-	case EADllWindowGroupName:
-		{
-		const TWindowGroupInfoParms& params=*pData.WindowGroupInfoParms;
-		TPtrC name;
-		TBool ret=iWinFunctions->WindowGroupName(name,params.iScreen,params.iOrdinalPosition);
-		/*const TInt theError=*/(*iFunctions->Message()).Write(KIpcSlot,name);
-		return ret;
-		}
-	case EADllSetOrdinalPosition:
-		{
-		const TSetOrdinalParms& params=*pData.SetOrdinalParms;
-		return iWinFunctions->SetOrdinalPosition(params.iIdentifier,params.iOrdinalPosition,params.iOrdinalPriority);
-		}
-	case EADllSetFocusScreen:
-		{
-		const TInt& params=*pData.Int;
- 		iWinFunctions->SetFocusScreen(params);
- 		break;
-		}
-	default:;
-		}
-	return(KErrNone);
-	}
-
-void CWinFunctionTestAnim::FocusChanged(TBool /*aState*/)
-	{}
-
-TBool CWinFunctionTestAnim::OfferRawEvent(const TRawEvent& /*aRawEvent*/)
-	{
-	return EFalse;
-	}
-
-
-// CNotificationTestAnim
-CNotificationTestAnim::CNotificationTestAnim() : iHeartbeatState(EFalse) , iScreenDeviceChanged(ETrue)
-	{
-	}
-
-CNotificationTestAnim::~CNotificationTestAnim()
-	{
-//	Removed for test case GRAPHICS-WSERV-0139 for DEF12220
-//	iFunctions->RegisterForNotifications(EFalse);
-	}
-
-void CNotificationTestAnim::ConstructL(TAny* /*aParam*/, TBool )
-	{
-	iWindowFunctions->SetRect(TRect(0,0,1,1));
-	iFunctions->RegisterForNotifications(EDirectScreenAccess|EHeartbeatTimer|EScreenDeviceChange);
-	iFunctions->SetSync(MAnimGeneralFunctions::ESyncSecond);
-	iLastAnimTime.UniversalTime();
-	}
-
-void CNotificationTestAnim::HandleNotification(const TWsEvent& aEvent)
-	{
-	switch (aEvent.Type())
-		{
-	case EEventDirectScreenAccessBegin:
-		{
-		TInt screenNum = *(aEvent.Int());
-		iDSA[screenNum] = ETrue;
-		}
-		break;
-	case EEventDirectScreenAccessEnd:
-		{
-		TInt screenNum = *(aEvent.Int());
-		iDSA[screenNum] = EFalse;
-		}
-		break;
-	case EEventHeartbeatTimerStateChange:
-		{
-		iHeartbeatState=*aEvent.Int();
-		}
-		break;
-	case EEventScreenDeviceChanged:
-		{
-		iScreenDeviceChanged=!iScreenDeviceChanged;
-		}
-		break;
-	default:
-		break;
-		}
-	}
-
-void CNotificationTestAnim::Animate(TDateTime*)
-	{
-	iLastAnimTime.UniversalTime();
-	}
-
-void CNotificationTestAnim::Redraw()
-	{
-	}
-
-void CNotificationTestAnim::Command(TInt /*aOpcode*/, TAny* /*aParam*/)
-	{
-	}
-
-TInt CNotificationTestAnim::CommandReplyL(TInt aOpcode,TAny* aParam)
-	{
-	TAnimArgUnion pData;
-	pData.any=aParam;
-	switch (aOpcode)
-		{
-	case EADllQueryDSA:
-		{
-		TInt screenNum = *pData.Int;
-		return iDSA[screenNum];
-		}
-	case EADllQueryHeartbeatState:
-		{
-		return iHeartbeatState;
-		}
-	case EADllIsAnimating:
-		{
-		// Check if the anim DLL is currently animating by comparing
-		// the current time with the last anim time - if this is greater than a second
-		// then we are not animating
-		TTime timeNow;
-		timeNow.UniversalTime();
-		TTimeIntervalMicroSeconds microSecs = timeNow.MicroSecondsFrom(iLastAnimTime);
-		if(microSecs > TTimeIntervalMicroSeconds(1200000)) // 1 sec plus 0.2 secs to cope with any latency
-			{
-			return EFalse;
-			}
-		else
-			{
-			return ETrue;
-			}
-		}
-	default:;
-		}
-	return(KErrNone);
-	}
-
-void CNotificationTestAnim::FocusChanged(TBool /*aState*/)
-	{
-	}
-
-TBool CNotificationTestAnim::OfferRawEvent(const TRawEvent& /*aRawEvent*/)
-	{
-	return EFalse;
-	}
-
-// CTransAnim test drawing//
-void CTransAnim::ConstructL(TAny* aParam, TBool)
-	{
-	iRect=*static_cast<TRect*>(aParam);//Assigns the animation area
-	iWindowFunctions->SetRect(iRect);
-	iFunctions->SetSync(MAnimGeneralFunctions::ESyncFlash);
-	iFont=NULL;
-	iColor=TRgb(0,0,0);
-	}
-
-void CTransAnim::Animate(TDateTime*)
-	{
-	iWindowFunctions->ActivateGc();
-	if(iMode==1)		//Draw line mode
-		{
-		DoDraw(iDraw,*iGc,iColor,iRect);
-		}
-	else if(iMode==2)	//Draw text mode
-		{
-		DoDraw(iDraw,*iGc,iColor,iRect,iFont,iCount);
-		}
-	}
-
-void CTransAnim::Redraw()
-	{
-	DoDraw(iDraw,*iGc,iColor,iRect,iFont,iCount);
-	}
-
-void CTransAnim::Command(TInt aOpcode,TAny* aParam)
-	{
-	TAnimArgUnion pData;
-	pData.any=aParam;
-	switch(aOpcode)
-		{
-		case EADllDrawNow:	//Used to draw a single frame
-			iWindowFunctions->ActivateGc();
-			iMode=1;
-			iDraw=36;
-			iColor=TRgb(0,0,0);
-			DoDraw(iDraw,*iGc,iColor,iRect);
-			break;
-		case EADllNextFrame:	//Used to draw a continous frame
-			iMode=2;
-			iColor=pData.FrameData->color;
-			iDraw=pData.FrameData->draw;
-			iCount=pData.FrameData->text;
-			break;
-		case EADllStartAnimText:	//Used to start text animate
-			iWindowFunctions->ActivateGc();
-			iMode=2;
-			iDraw=37;
-			iFont=iFunctions->DuplicateFontL(pData.FrameData->font);
-			iColor=pData.FrameData->color;
-			iCount=pData.FrameData->text;
-			if(pData.FrameData->sync==EStateFlash)
-				iFunctions->SetSync(MAnimGeneralFunctions::ESyncFlash);
-			else if(pData.FrameData->sync==EStateSecond)
-				iFunctions->SetSync(MAnimGeneralFunctions::ESyncSecond);
-			DoDraw(iDraw,*iGc,iColor,iRect,iFont,iCount);
-			break;
-		case EADllEndAnimText:		//Used to end text animate
-			iFunctions->SetSync(MAnimGeneralFunctions::ESyncNone);
-			iWindowFunctions->ActivateGc();
-			iCount=0;
-			iMode=0;
-			iFunctions->CloseFont(iFont);
-			iFont=NULL;
-			break;
-		}
-	}
-
-TInt CTransAnim::CommandReplyL(TInt /*aOpcode*/, TAny* /*aParam*/)
-	{
-	return(0);
-	}
-
-void CTransAnim::FocusChanged(TBool /*aState*/)
-	{}
-
-TBool CTransAnim::OfferRawEvent(const TRawEvent& /*aRawEvent*/)
-	{
-	return EFalse;
-	}
-
-// an anim dll that doesn't remove itself from the event handler list
-CTestHandlerAnim::~CTestHandlerAnim()
-	{
-	}
-
-void CTestHandlerAnim::ConstructL(TAny* /*aArgs*/, TBool /*aHasFocus*/)
-	{
-	iFunctions->GetRawEvents(ETrue);
-	}
-
-void CTestHandlerAnim::Redraw()
-	{
-	}
-
-void CTestHandlerAnim::FocusChanged(TBool /*aState*/)
-	{
-	}
-
-TInt CTestHandlerAnim::CommandReplyL(TInt /*aOpcode*/, TAny* /*aArgs*/)
-	{
-	return KErrNone;
-	}
-
-void CTestHandlerAnim::Command(TInt /*aOpcode*/, TAny* /*aArgs*/)
-	{
-	}
-
-void CTestHandlerAnim::Animate(TDateTime* /*aDateTime*/)
-	{
-	}
-
-TBool CTestHandlerAnim::OfferRawEvent(const TRawEvent &/*aRawEvent*/)
-	{
-	return EFalse;
-	}
-
-// CRemovableAnim Test removal of anim during event handling //
-CRemovableAnim::~CRemovableAnim()
-	{
-	}
-
-TInt CRemovableAnim::AddExpectedEvent(const TAnimRawEvent* aEvent)
-	{
-	if (TotalExpectedEvents() + EventCount() < iLifetime)
-		{
-		return (AddEvent(aEvent) ? KErrNone : KErrOverflow);
-		}
-	else
-		{
-		return KErrNone;
-		}
-	}
-
-TInt CRemovableAnim::CommandReplyL(TInt aOpcode,TAny* aParam)
-	{
-	TAnimArgUnion pData;
-	pData.any=aParam;
-	switch (aOpcode)
-		{
-	case EADllSetEventHandlerLifetime:
-		iLifetime = *pData.Int;
-		return iLifetime;
-	case EADllEventHandlerLifetime:
-		return iLifetime;
-	case EADllAddToEventHandlers:
-		iFunctions->GetRawEvents(ETrue);
-		return KErrNone;
-	case EADllRemoveFromEventHandlers:
-		iFunctions->GetRawEvents(EFalse);
-		return KErrNone;
-	case EADllTestPassed:
-		{
-		// If any unexpected events are received, then Error() > 0
-		// If fewer than the number of expected events are received, then TotalExpectedEvents() > 0
-		TBool passed = (Error() == 0) && (TotalExpectedEvents() == 0);
-		return passed;
-		}
-	default:
-		return CEventTestAnimBase::CommandReplyL(aOpcode, aParam);
-		}
-	}
-
-
-TBool CRemovableAnim::OfferRawEvent(const TRawEvent& aRawEvent)
-	{
-	TBool eat = CEventTestAnimBase::OfferRawEvent(aRawEvent);
-
-	// Remove anim from event handlers if lifetime has been exceeded
-	if (EventCount() >= iLifetime)
-		{
-		iFunctions->GetRawEvents(EFalse);
-		}
-	return eat;
-	}
-
-// CMultiPointerAnim for Testing multipointerevents for anims //
-CMultiPointerAnim::~CMultiPointerAnim()
-	{
-	iFunctions->GetRawEvents(EFalse);
-	}
-
-// Important thing here is to call GetRawEvents() which Switches animation raw event handling on
-void CMultiPointerAnim::ConstructL(TAny */*aArgs*/, TBool /*aHasFocus*/)
-	{
-	iExpectedEvents.SetLengthL(EEventBufferSize);
-	iFunctions->GetRawEvents(ETrue);
-	}
-
-void CMultiPointerAnim::Animate(TDateTime */*aDateTime*/)
-	{
-	}
-
-void CMultiPointerAnim::Command(TInt /*aOpcode*/, TAny */*aArgs*/)
-	{
-	}
-
-TInt CMultiPointerAnim::CommandReplyL(TInt aOpcode, TAny *aArgs)
-	{
-	TAnimArgUnion pData;
-	pData.any=aArgs;
-	switch (aOpcode)
-		{
-	case EADllAddExpectedMultiPtrEvent:
-		return AddEvent(pData.AnimRawEvent);
-	case EADllMultiPtrEventError:
-		return iError;
-	case EADllMultiPtrEventErrorDesc:
-		if (iError != KErrNone)
-			{
-			// returns the error description which gets displayed in logs if test failed
-			const RMessagePtr2& message=*iFunctions->Message();
-			const TInt error=message.Write(KIpcSlot, iErrorDes);
-			if (error != KErrNone)
-				{
-				return error;
-				}
-			}
-		break;
-	case EADllMultiPtrEventReset:
-		iExpectedEvents.Reset();
-		iError = 0;
-		iEventCount = 0;
-		break;
-	default:;
-		}
-	return(KErrNone);
-	}
-
-void CMultiPointerAnim::Redraw()
-	{
-	}
-
-void CMultiPointerAnim::FocusChanged(TBool /*aState*/)
-	{
-	}
-
-TBool CMultiPointerAnim::OfferRawEvent(const TRawEvent &aRawEvent)
-	{
-	// Ignore following raw events
-	TRawEvent::TType aType=aRawEvent.Type();
-	if (aType==TRawEvent::EActive || aType==TRawEvent::EInactive || aType==TRawEvent::ERedraw
-			|| aType==TRawEvent::EPointerSwitchOn || aType==TRawEvent::EUpdateModifiers)
-		{
-		return EFalse;
-		}
-	
-	// If it has already failed then do not test other events becasue the error value 
-	// and its descriptor will be over written
-	if (iError)
-		{
-		return EFalse;;
-		}
-		
-	TAnimRawEvent expectedEvent; 
-	if (iExpectedEvents.Remove(&expectedEvent)<1)
-		{
-		return EFalse;
-		}
-	
-	// Increment event count
-	iEventCount++;
-	
-	// Call compare events function passing in both the events
-	if (!CompareEvents(expectedEvent.iRawEvent, aRawEvent))
-		{
-		iError = iEventCount;
-		}
-	
-	return expectedEvent.iEat;
-	}
-
-TInt CMultiPointerAnim::AddEvent(const TAnimRawEvent* aEvent)
-	{
-	return iExpectedEvents.Add(aEvent);
-	}
-
-TBool CMultiPointerAnim::CompareEvents(const TRawEvent& aExpectedEvent, const TRawEvent& aActualEvent)
-	{
-	// Check pointer type
-	if (aExpectedEvent.Type() != aActualEvent.Type())
-		{
-		_LIT(KEventType, "Actual Event type = %d Expected Event Type = %d ");
-		iErrorDes.Format(KEventType, aActualEvent.Type(), aExpectedEvent.Type());
-		return EFalse;
-		}
-	
-	// Here for EOutOfRange we cannot query Pos or Pos3D...
-	if (aExpectedEvent.Type() != TRawEvent::EPointer3DOutOfRange)
-		{
-		// Check 3d position
-		TPoint3D expected3DPos = aExpectedEvent.Pos3D();
-		TPoint3D actual3DPos = aActualEvent.Pos3D();
-		if (expected3DPos.iX != actual3DPos.iX)
-			{
-			_LIT(KXPosition, "Actual X coordinate = %d Expected X coordinate = %d ");
-			iErrorDes.Format(KXPosition, actual3DPos.iX, expected3DPos.iX);
-			return EFalse;
-			}
-		if (expected3DPos.iY != actual3DPos.iY)
-			{
-			_LIT(KYPosition, "Actual Y coordinate = %d Expected Y coordinate = %d ");
-			iErrorDes.Format(KYPosition, actual3DPos.iY, expected3DPos.iY);
-			return EFalse;
-			}
-		if (expected3DPos.iZ != actual3DPos.iZ)
-			{
-			_LIT(KZPosition, "Actual Z coordinate = %d Expected Z coordinate = %d ");
-			iErrorDes.Format(KZPosition, actual3DPos.iZ, expected3DPos.iZ);
-			return EFalse;
-			}
-		}
-
-	// Check pointer number
-	if (aExpectedEvent.PointerNumber() != aActualEvent.PointerNumber())
-		{
-		_LIT(KPointerNumber, "Actual Pointer number = %d Expected Pointer number = %d ");
-		iErrorDes.Copy(KPointerNumber);
-		iErrorDes.Format(KPointerNumber, aActualEvent.PointerNumber(), aExpectedEvent.PointerNumber());
-		return EFalse;
-		}
-	return ETrue;
-	}
-
-// CCoverageAnim test drawing/redrawing //
-CCoverageAnim::~CCoverageAnim()
-	{
-	if(iFont && iFunctions)
-		iFunctions->CloseFont(iFont);
-	} 
-
-/**
- Initializes members.
- */
-void CCoverageAnim::ConstructL(TAny *aParam, TBool )
-	{
-	iRect=*static_cast<TRect*>(aParam);
-	iWindowFunctions->SetRect(iRect);
-	iWindowFunctions->Invalidate(iRect);
-	
-	iFunctions->SetSync(MAnimGeneralFunctions::ESyncDay);
-	if (iFunctions->Sync() != MAnimGeneralFunctions::ESyncDay)
-		User::Leave(KErrGeneral);	 
-
-	iFunctions->SetSync(MAnimGeneralFunctions::ESyncMinute);
-	if (iFunctions->Sync() != MAnimGeneralFunctions::ESyncMinute)
-		User::Leave(KErrGeneral);	 
-
-	iFunctions->SetSync(MAnimGeneralFunctions::ESyncSecond);
-	if (iFunctions->Sync() != MAnimGeneralFunctions::ESyncSecond)
-		User::Leave(KErrGeneral);	 
-
-	iFunctions->SetSync(MAnimGeneralFunctions::ESyncFlash);
-	if (iFunctions->Sync() != MAnimGeneralFunctions::ESyncFlash)
-		User::Leave(KErrGeneral);	 
-		
-	iFunctions->SetSync(MAnimGeneralFunctions::ESyncNone);
-	if (iFunctions->Sync() != MAnimGeneralFunctions::ESyncNone)
-		User::Leave(KErrGeneral);	 
-		
-	iFunctions->SetInterval(1);
-	iFunctions->SetInterval(0);
-	iFunctions->SetNextInterval(0);
-		
-	User::LeaveIfNull(iFunctions->ExtendedInterface(MAnimGeneralFunctions::ENumberOfExtendedInterfaces));
-	User::LeaveIfNull(iFunctions->ExtendedInterface(MAnimGeneralFunctions::EWindowExtensionInterface));
-	User::LeaveIfNull(iFunctions->ExtendedInterface(MAnimGeneralFunctions::EEventExtentionInterface));
-	User::LeaveIfError(iFunctions->ExtendedInterface(MAnimGeneralFunctions::EInterfaceCount) != NULL);
-
-	#if !defined(SYMBIAN_GRAPHICS_GCE)
-		// Deprecated in NGA but needs to be tested in NONNGA
-	User::LeaveIfNull((TAny*)iFunctions->ScreenDevice());
-	#endif
-
-	iFunctions->Client();
-	}
-
-/**
- Copied from CAutoAnimScrBack.
- */
-void CCoverageAnim::Animate(TDateTime *)
-	{
-	iWindowFunctions->ActivateGc();
-	Draw();
-	}
-
-/**
- All methods of the graphic-context are executed one by one.
- */
-void CCoverageAnim::Draw()
-	{
-	iGc->SetClippingRect(iRect);
-	iGc->Clear();
-	iGc->Clear(iRect);
-
-	iGc->SetDrawMode(CGraphicsContext::EDrawModeAND);
-	iGc->SetBrushStyle(CGraphicsContext::ENullBrush);
-	iGc->SetBrushColor(TRgb::Gray256(85));
-	iGc->SetBrushOrigin(TPoint(0,0));
-	iGc->SetPenColor(TRgb::Gray256(170));
-
-	//primitive method calls
-	iGc->SetFaded(ETrue);
-	iGc->SetFadingParameters(1, 1);
-
-	iGc->SetPenStyle(CGraphicsContext::ESolidPen);
-	iGc->SetStrikethroughStyle(EStrikethroughOff);
-	iGc->SetUnderlineStyle(EUnderlineOff);
-	iGc->SetWordJustification(2, 1);
-
-	if(iFont)
-		iGc->UseFont(iFont);
-	
-	iGc->DrawArc(iRect,
-			TPoint(iRect.Center().iX, iRect.iTl.iY),
-			TPoint(iRect.iBr.iX, iRect.Center().iY));
-	iGc->DrawLine(iRect.iTl,iRect.Center());
-	iGc->DrawLineTo(TPoint(iRect.iBr.iX, iRect.iTl.iY));
-
-	iGc->DrawLineBy(TPoint(iRect.iTl.iX, iRect.iBr.iY));
-	iGc->MoveBy(iRect.iTl + TPoint(1,1));
-	iGc->MoveTo(iRect.iTl + TPoint(0,0)); 
-	iGc->SetPenSize(TSize(10,10));
-	iGc->Plot(iRect.iTl + TPoint(2,2));
-	iGc->SetPenSize(TSize(1,1));
-
-	CArrayFixFlat<TPoint>* polyPoints = new(ELeave) CArrayFixFlat<TPoint>(3); //CArrayFixFlat
-	CleanupStack::PushL(polyPoints);
-	polyPoints->AppendL(iRect.iTl);
-	polyPoints->AppendL(iRect.Center());
-	polyPoints->AppendL(TPoint(iRect.iBr.iX, iRect.iTl.iY));
-	
-	iGc->DrawPolyLine(polyPoints);
-	iGc->DrawPolyLine(&polyPoints->At(0), 3);
-	iGc->DrawPolygon(polyPoints, CGraphicsContext::EWinding);
-	iGc->DrawPolygon(&polyPoints->At(0), 3, CGraphicsContext::EAlternate);
-
-	iGc->DrawPie(iRect, TPoint(iRect.Center().iX, iRect.iTl.iY), TPoint(iRect.iBr.iX, iRect.Center().iY));
-	iGc->DrawEllipse(iRect);
-	iGc->DrawRect(iRect);
-	iGc->DrawRoundRect(iRect, TSize(iRect.Width()/8, iRect.Height()/8));
-
-	CleanupStack::PopAndDestroy(polyPoints);
-
-	iGc->CopyRect(TPoint(10, 10), iRect);
-
-	CFbsBitmap* bitmap = new(ELeave) CFbsBitmap();
-	CleanupStack::PushL(bitmap);
-	User::LeaveIfError(bitmap->Create(TSize(16,16),EGray4));
-
-	iGc->UseBrushPattern(bitmap);
-	iGc->DrawBitmap(iRect.iTl, bitmap);
-	iGc->DrawBitmap(iRect, bitmap);
-	iGc->DrawBitmap(iRect, bitmap, TRect(0, 0, 16, 16));
-	iGc->DrawBitmapMasked(iRect, bitmap, TRect(0, 0, 16, 16), bitmap, ETrue);
-
-	iGc->BitBlt(TPoint(0, 0), bitmap);
-	iGc->BitBlt(TPoint(0, 0), bitmap, iRect);
-	iGc->BitBltMasked(TPoint(0, 0), bitmap, iRect, bitmap, ETrue);
-	iGc->AlphaBlendBitmaps(TPoint(0, 0), bitmap, iRect, bitmap, TPoint(0,0));
-	
-	CleanupStack::PopAndDestroy(bitmap);
-
-	iGc->SetCharJustification(1,1);
-	iGc->SetClippingRect(iRect);
-	if(iFont)
-		{
-		_LIT(KHelloWorld,"Hello World");
-		iGc->DrawText(*&KHelloWorld, iRect.iTl);
-		iGc->DrawText(*&KHelloWorld, iRect, 0, CGraphicsContext::ELeft, 0);
-		iGc->DrawTextVertical(*&KHelloWorld, iRect.iBr, ETrue);
-		iGc->DrawTextVertical(*&KHelloWorld, iRect, 0, ETrue, CGraphicsContext::ELeft, 0);
-		}
-	
-	TRgb rgbs[2];
-	iGc->MapColors(iRect, rgbs, 1, ETrue);
-	iGc->DiscardBrushPattern();
-
-	if(iFont)
-		iGc->DiscardFont();
-	
-	iFunctions->CloseFont(0);
-	
-	TDateTime dt = iFunctions->SystemTime();
-	}
-	
-/**
- Copied from CAutoAnim3.
- */
-void CCoverageAnim::Redraw()
-	{
-	Draw();
-	}
-
-/**
- Copied from CAutoAnim3.
- */
-void CCoverageAnim::Command(TInt ,TAny*)
-	{
-	}
-
-/**
- Copied from CAutoAnim3.
- */
-TInt CCoverageAnim::CommandReplyL(TInt aOpcode , TAny* aParam)
-	{
-	TAnimArgUnion pData;
-	pData.any=aParam;
-	switch(aOpcode)
-		{
-		case EADllDrawNow:
-			iFunctions->SetSync(MAnimGeneralFunctions::ESyncFlash);
-			break;
-		case EADllSetFont:
-			if(iFont)
-				{
-				iFunctions->CloseFont(iFont);
-				iFont = NULL;
-				}
-			iFont = iFunctions->DuplicateFontL(*pData.Int);
-			break;
-		} 
-	return(KErrNone);
-	}
-
-/**
- Copied from CAutoAnim3.
- */
-void CCoverageAnim::FocusChanged(TBool )
-	{}
-
-/**
- Copied from CAutoAnim3.
- */
-TBool CCoverageAnim::OfferRawEvent(const TRawEvent &/*aRawEvent*/)
-	{
-	return EFalse;
-	}
-
-
-// DLL code //
-
-CAnim *CTestAnimDll::CreateInstanceL(TInt aType)
-	{
-	CAnim *anim=NULL;
-	switch(aType)
-		{
-		case EAnimTypeTest1:
-			anim=new(ELeave) CPanicAnim();
-			break;
-		case EAnimTypeTest2:
-			anim=new(ELeave) CPanicAnim2();
-			break;
-		case EAnimTypeTest3:
-			anim=new(ELeave) CAutoAnim3();
-			break;
-		case EAnimTypeScrBackTest:
-			anim=new(ELeave) CAutoAnimScrBack();
-			break;
-		case EAnimTypeSprite:
-			anim=new(ELeave) CTestSpriteAnim();
-			break;
-		case EAnimTypeFreeTimer:
-			anim=new(ELeave) CTestFreeTimerAnim();
-			break;
-		case EAnimTypeEventTest:
-			anim=new(ELeave) CEventTestAnim();
-			break;
-		case EAnimTypeNotificationTest:
-			anim=new(ELeave) CNotificationTestAnim();
-			break;
-		case EAnimTypeTimer:
-			anim=new(ELeave) CTimerTestAnim();
-			break;
-		case EAnimTypeWindowFunctions:
-			anim=new(ELeave) CWinFunctionTestAnim();
-			break;
-		case EAnimTypeTrans:
-			anim=new(ELeave) CTransAnim();
-			break;
-		case EAnimTypeEventHandler:
-			anim = new (ELeave) CTestHandlerAnim();
-			break;
-		case EAnimTypeRemovableAnim:
-			anim=new(ELeave) CRemovableAnim();
-			break;
-		case EAnimTypeEventPostingTest:
-			anim=new(ELeave) CEventPostingAnim();
-			break;
-		case EAnimTypeCoverage:
-			anim=new(ELeave) CCoverageAnim();
-			break;
-		case EAnimTypeMultiPointer:
-			anim=new(ELeave) CMultiPointerAnim();
-			break;
-		}
-	return(anim);
-	}
-
-// Dummy E32Dll needed by E32 to build //
-
-void CAutoAnim3::DrawTestScreenL(const TDrawTestScreen* aParams)
-//Moved here as the include messes up the debugging of the rest of the file.
-	{
-	CFbsBitmap *aBitmap=iFunctions->DuplicateBitmapL(aParams->bitmap);
-	CleanupStack::PushL(aBitmap);
-	CFbsBitmap *aMaskBitmap=iFunctions->DuplicateBitmapL(aParams->maskBitmap);
-	CleanupStack::PushL(aMaskBitmap);
-	CFbsFont *aFont=iFont=iFunctions->DuplicateFontL(aParams->font);
-	TSize size(iWindowFunctions->WindowSize());
-	iWindowFunctions->ActivateGc();
-	CBitmapContext *gc=iGc;
-	TBool aExtraDrawBitMap=ETrue;
-//
-#include "DLLDRAW.H"
-//
-	iFunctions->CloseFont(iFont);
-	iFont=NULL;
-	CleanupStack::PopAndDestroy(2);
-	}