windowing/windowserver/tauto/TPointer.H
changeset 0 5d03bc08d59c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/tauto/TPointer.H	Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,167 @@
+// 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:
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code
+*/
+
+#ifndef __TPOINTER_H__
+#define __TPOINTER_H__
+
+#include <e32std.h>
+#include <w32std.h>
+#include <hal.h>
+#include "../tlib/testbase.h"
+#include "AUTO.H"
+#include "TGraphicsHarness.h"
+
+class CTPointer;
+class CGrabWindow;
+
+class CPointerWindow : public CTWin
+	{
+	enum {KRepeatMargin=200000};	// 0.2 Seconds
+	enum {KRepeatCount=4};
+	enum {KRepeatIntervalIncrements=100000};
+	enum {KRepeatRectXExtra=50};
+	enum {KRepeatRectYExtra=50};
+	enum {KStateWaitingForTest1,KStateFailed,KStateTesting1,
+			KStateWaitingForTest2,KStateTesting2,
+			KStateWaitingForTest3,KStateTesting3,
+			KStateWaitingForTest4,KStateTesting4,
+			KStateWaitingForTest5,KStateTesting5,
+			KStateWaitingForTest6,KStateTesting6,
+			KStateWaitingForTest8,KStateTesting8,
+			KStateWaitingForTest7,KStateTesting7,
+			KStateFinished};
+public:
+	CPointerWindow(CTPointer *aTest);
+	void SetUpLD(TPoint pos,TSize size,CTWinBase *parent, CWindowGc &aGc);
+	void Draw();
+	void StartNextRepeatTest();
+	void QueueNextRepeat();
+	void PointerL(const TPointerEvent &aPointer,const TTime&);
+	void WinKeyL(const TKeyEvent &aKey,const TTime &aTime);
+private:
+	void SwitchOn(const TTime &);
+	void ResetTest(TInt aState);
+	void SetState(TInt aState);
+	void FinishedTests();
+	void TestFailed(TBool aRetest=EFalse);
+	void SendEvent();
+private:
+	CTPointer *iTest;
+	TInt iRepeatCount;
+	TInt iState;
+	TTimeIntervalMicroSeconds32 iInterval;
+	TTime iPrevTime;
+	TRect iRepeatRect;
+	TPoint iTl;
+	TSize iSize;
+	};
+
+class CGrabWindow2 : public CTWin
+	{
+public:
+	CGrabWindow2(CGrabWindow *aWindow);
+	void SetUpLD(TPoint pos,TSize size,CTWinBase *parent, CWindowGc &aGc);
+private:
+	void Draw();
+	void PointerL(const TPointerEvent &aPointer,const TTime&);
+private:
+	CGrabWindow *iGrabWindow;
+	};
+
+class CGrabWindow : public CTWin
+	{
+	enum {KGrabStateWaitingForDown,KGrabStateWaitingForDragOut,KGrabStateWaitingForUp,KGrabStateFinished,
+		KGrabStateWaitingForDown2,KGrabStateWaitingForUp2a,KGrabStateWaitingForDrag2,KGrabStateWaitingForUp2b,
+		KGrabStateWaitingForDown3,KGrabStateWaitingForUp3a,KGrabStateWaitingForUp3b,
+		KGrabStateWaitingForDown4,KGrabStateWaitingForUp4,
+		KGrabStateWaitingForDown5,KGrabStateWaitingForUp5,KGrabStateWaitingForDrag5,
+		KStateFailed};
+public:
+	CGrabWindow(CTPointer *aTest);
+	void Pointer2(const TPointerEvent &aPointer);
+	void SetUpLD(TPoint pos,TSize size,CTWinBase *parent, CWindowGc &aGc);
+	void WinKeyL(const TKeyEvent &aKey,const TTime &aTime);
+private:
+	void Draw();
+	void SetState(TInt aState);
+	void ResetTest();
+	void PointerL(const TPointerEvent &aPointer,const TTime&);
+	void TestFailed();
+	void FinishedTests();
+	void SendEvent();
+private:
+	TInt iState;
+	CTPointer *iTest;
+	TPoint iTl;
+	TSize iSize;
+	};
+
+
+class CTPointer : public CTWsGraphicsBase
+	{
+public:
+	enum {KTimeOutAfter=20000000};	//20secs
+public:
+	CTPointer(CTestStep* aStep);
+	~CTPointer();
+	void ConstructL();
+
+	TBool TestFailed(TInt aCase,TBool aRetry=EFalse);
+	void StartGrabTestL();
+	static TInt TimeOut(TAny* aTest);
+	void TimeOut();
+	CGrabWindow2 *GrabWin2() const;
+	inline TBool Digitiser() const {return !iNoDigitiser;}
+	inline void SimulatePointer(TRawEvent::TType aType, TInt aX, TInt aY){iTest->SimulatePointer(aType, aX, aY);}
+	inline void SimulateEvent(TRawEvent::TType aType){iTest->SimulateEvent(aType);}
+protected:
+	virtual void RunTestCaseL(TInt aCurTestCase);
+private:
+	TInt doTestFailedL();
+	inline TestClient* Client() {return TheClient;}
+	TInt iState;
+
+private:
+	CTimeOut* iTimeOut;
+	TInt iTimeOutCount;
+	CPointerWindow *iRepeatWin;
+	CGrabWindow *iGrabWin;
+	CGrabWindow2 *iGrabWin2;
+	TSize iWinSize;
+	//TInt iState;
+	TBool iOldPointerState;
+	TBool iNoDigitiser;
+	};
+
+
+class CTPointerStep : public CTGraphicsStep
+	{
+public:
+	CTPointerStep();
+protected:	
+	//from CTGraphicsStep
+	virtual CTGraphicsBase* CreateTestL();
+	};
+
+_LIT(KTPointerStep,"TPointer");
+
+
+#endif