windowing/windowserver/test/tauto/TPNTCAP.H
changeset 103 2717213c588a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/test/tauto/TPNTCAP.H	Tue Jun 22 15:21:29 2010 +0300
@@ -0,0 +1,200 @@
+
+// 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 __TPNTCAP_H__
+#define __TPNTCAP_H__
+
+#include <e32std.h>
+#include <e32svr.h>
+#include <w32std.h>
+#include "../tlib/testbase.h"
+#include "AUTO.H"
+#include "TGraphicsHarness.h"
+
+enum TTestState
+	{
+	ECaptureDisabled=0,
+	ENormalCapture,
+	ECaptureAllGroups,
+	EDragDropCapture,
+	EDragDropCaptureAllGroups,
+	ENormalCaptureWithoutFocus,
+	};
+
+enum TTestSubState
+	{
+	EMainWindow,
+	EChildWindow,
+	EOtherGroup,
+	EOtherSession,
+	ERootWindow,
+	};
+
+enum TPointerCheckRet
+	{
+	EFailed,
+	EOkay,
+	ENeedsDDEvent,
+	};
+
+const TInt ESubStates1=2;
+const TInt ESubStates2=5;
+const TInt ESubStates3=5;
+const TInt ESubStates4=5;
+const TInt ESubStates5=5;
+const TInt ESubStates6=5;
+
+const TInt EWinBorderSize=10;
+
+class CPcWindowBase;
+class CTPointerCapture;
+
+class CPcConnection : public CTClient
+	{
+public:
+	CPcConnection(CTPointerCapture *aTest);
+	~CPcConnection();
+	virtual void ConstructL();
+protected:
+	CTPointerCapture *iTest;
+	};
+
+class CPcWindowBase : public CTWin
+	{
+public:
+	CPcWindowBase(CTPointerCapture *aTest);
+	void SetUpL(TPoint pos,TSize size,CTWinBase *parent);
+	void SetUpL(TPoint pos,TSize size,CTWinBase *parent, CWindowGc &aGc);
+	void Draw(TDesC &aBuf);
+	void PointerL(const TPointerEvent &pointer,const TTime &);
+	void DragDropL(const TPointerEvent &pointer,const TTime &);
+	virtual TPointerCheckRet PointerDown()=0;
+	virtual TPointerCheckRet DragDrop()=0;
+	virtual void SubStateChanged();
+protected:
+	CTPointerCapture *iTest;
+	TRgb iBack;
+	};
+
+class CPcWindowChild : public CPcWindowBase
+	{
+public:
+	CPcWindowChild(CTPointerCapture *aTest);
+	void Draw();
+	TPointerCheckRet PointerDown();
+	TPointerCheckRet DragDrop();
+	};
+
+class CPcWindowMain : public CPcWindowBase
+	{
+public:
+	CPcWindowMain(CTPointerCapture *aTest);
+	void Draw();
+	TPointerCheckRet PointerDown();
+	TPointerCheckRet DragDrop();
+	void WinKeyL(const TKeyEvent &aKey,const TTime &aTime);
+	};
+
+class CPcWindowAltGroup : public CPcWindowBase
+	{
+public:
+	CPcWindowAltGroup(CTPointerCapture *aTest);
+	void Draw();
+	TPointerCheckRet PointerDown();
+	TPointerCheckRet DragDrop();
+	};
+
+class CPcWindowNickFocusGroup : public CTWindowGroup
+	{
+public:
+	CPcWindowNickFocusGroup(CTPointerCapture *aTest, CTClient *aClient);
+	void KeyL(const TKeyEvent &aKey,const TTime &aTime);
+private:
+	CTPointerCapture *iTest;
+	};
+
+class CPcWindowAltConnection : public CPcWindowBase
+	{
+public:
+	CPcWindowAltConnection(CTPointerCapture *aTest);
+	void Draw();
+	TPointerCheckRet PointerDown();
+	TPointerCheckRet DragDrop();
+	};
+
+class CTPointerCapture : public CTWsGraphicsBase
+	{
+private:
+	enum TDState {DDStateNull, DDStateGot, DDStateWaiting};
+public:
+	CTPointerCapture(CTestStep* aStep);
+	~CTPointerCapture();
+	void ConstructL();
+	void NextTest();
+	void AbortTests();
+	TInt State() const;
+	TInt SubState() const;
+	void doIncSubStateL();
+	void IncSubStateL(TBool aNeedsDD=EFalse);
+	void GotDDL();
+	void StateChanged();
+	void TestFailed();
+	void NickFocusL();
+	void SetCapture(TInt aCaptureFlags);
+	inline TestClient* Client() {return TheClient;}
+protected:
+//from 	CTGraphicsStep
+	virtual void RunTestCaseL(TInt aCurTestCase);
+private:
+	TInt doTestFailedL();
+	void SendEventsL();
+private:
+	CPcConnection *iAltConnection;
+	CTWindowGroup *iMainGroup;
+	CTWindowGroup *iAltGroup;
+	CPcWindowChild *iChildWin;
+	CPcWindowMain *iMainWin;
+	CPcWindowAltGroup *iAltGroupWin;
+	CPcWindowAltConnection *iAltConnectionWin;
+	CPcWindowNickFocusGroup *iNickFocusGroup;
+	CTBlankWindow *iNickFocusBlankWin;
+	//TInt iState;
+	TInt iSubState;
+	TDState iDDState;
+	TSize iScreenSize;
+public:
+	TBool iFailed;
+	};
+
+class CTPointerCaptureStep : public CTGraphicsStep
+	{
+public:
+	CTPointerCaptureStep();
+protected:	
+	//from CTGraphicsStep
+	virtual CTGraphicsBase* CreateTestL();
+	};
+
+_LIT(KTPointerCaptureStep,"TPointerCapture");
+
+
+#endif