windowing/windowserver/tman/TMPNTCAP.CPP
changeset 116 171fae344dd4
parent 103 2717213c588a
--- a/windowing/windowserver/tman/TMPNTCAP.CPP	Tue Jun 22 15:21:29 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,856 +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:
-// Test pointer capture
-// 
-//
-
-#include <e32std.h>
-#include <e32svr.h>
-#include "W32STD.H"
-#include "../tlib/testbase.h"
-#include "TMAN.H"
-
-enum TTestState
-	{
-	ECaptureDisabled,
-	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 TPointerCaptureTest;
-
-class CPcConnection : public CTClient
-	{
-public:
-	CPcConnection(TPointerCaptureTest *aTest);
-	~CPcConnection();
-	virtual void ConstructL();
-protected:
-	TPointerCaptureTest *iTest;
-	};
-
-class CPcWindowBase : public CTWin
-	{
-public:
-	CPcWindowBase(TPointerCaptureTest *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:
-	TPointerCaptureTest *iTest;
-	TRgb iBack;
-	};
-
-class CPcWindowChild : public CPcWindowBase
-	{
-public:
-	CPcWindowChild(TPointerCaptureTest *aTest);
-	void Draw();
-	TPointerCheckRet PointerDown();
-	TPointerCheckRet DragDrop();
-	};
-
-class CPcWindowMain : public CPcWindowBase
-	{
-public:
-	CPcWindowMain(TPointerCaptureTest *aTest);
-	void Draw();
-	TPointerCheckRet PointerDown();
-	TPointerCheckRet DragDrop();
-	void WinKeyL(const TKeyEvent &aKey,const TTime &aTime);
-	};
-
-class CPcWindowAltGroup : public CPcWindowBase
-	{
-public:
-	CPcWindowAltGroup(TPointerCaptureTest *aTest);
-	void Draw();
-	TPointerCheckRet PointerDown();
-	TPointerCheckRet DragDrop();
-	};
-
-class CPcWindowNickFocusGroup : public CTWindowGroup
-	{
-public:
-	CPcWindowNickFocusGroup(TPointerCaptureTest *aTest, CTClient *aClient);
-	void KeyL(const TKeyEvent &aKey,const TTime &aTime);
-private:
-	TPointerCaptureTest *iTest;
-	};
-
-class CPcWindowAltConnection : public CPcWindowBase
-	{
-public:
-	CPcWindowAltConnection(TPointerCaptureTest *aTest);
-	void Draw();
-	TPointerCheckRet PointerDown();
-	TPointerCheckRet DragDrop();
-	};
-
-class TPointerCaptureTest : public CTestBase
-	{
-private:
-	enum TDState {DDStateNull, DDStateGot, DDStateWaiting};
-public:
-	TPointerCaptureTest();
-	~TPointerCaptureTest();
-	TestState DoTestL();
-	void ConstructL();
-	void NextTest();
-	void AbortTests();
-	TInt State() const;
-	TInt SubState() const;
-	void doIncSubState();
-	void IncSubState(TBool aNeedsDD=EFalse);
-	void GotDD();
-	void StateChanged();
-	void TestFailed();
-	void NickFocusL();
-	void SetCapture(TInt aCaptureFlags);
-	void RestartTest();
-private:
-	TInt doTestFailedL();
-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;
-public:
-	TBool iFailed;
-	};
-
-GLDEF_C CTestBase *CreatePointerCaptureTest()
-	{
-	return(new(ELeave) TPointerCaptureTest());
-	}
-
-//
-// CMcConnection
-
-CPcConnection::CPcConnection(TPointerCaptureTest *aTest) : iTest(aTest)
-	{
-	}
-
-CPcConnection::~CPcConnection()
-	{
-	}
-
-void CPcConnection::ConstructL()
-	{
-	CTClient::ConstructL();
-	iGroup=new(ELeave) CTWindowGroup(this);
-	iGroup->ConstructL();
-	iGroup->GroupWin()->SetOrdinalPosition(0,1);
-	iGroup->GroupWin()->EnableReceiptOfFocus(EFalse);
-	iWs.Flush();
-	}
-
-//
-// CPcWindow, base class //
-//
-
-CPcWindowBase::CPcWindowBase(TPointerCaptureTest *aTest) : CTWin(), iTest(aTest)
-	{
-	}
-
-void CPcWindowBase::SetUpL(TPoint pos,TSize size,CTWinBase *parent, CWindowGc &aGc)
-	{
-	ConstructExtLD(*parent,pos,size);
-	iWin.SetBackgroundColor(iBack);
-	Activate();
-	AssignGC(aGc);
-	}
-
-void CPcWindowBase::SetUpL(TPoint pos,TSize size,CTWinBase *parent)
-	{
-	SetUpL(pos,size,parent,*iTest->Client()->iGc);
-	}
-
-void CPcWindowBase::SubStateChanged()
-	{
-	iWin.Invalidate();
-	Client()->iWs.Flush();
-	}
-
-void CPcWindowBase::Draw(TDesC &aBuf)
-	{
-	iGc->Clear();
-	iGc->SetPenColor(iBack.Gray4()>1 ? TRgb(0,0,0) : TRgb(255,255,255));
-	iGc->DrawText(aBuf, TPoint(10,20));
-	}
-
-void CPcWindowBase::PointerL(const TPointerEvent &pointer,const TTime &)
-	{
-	if (pointer.iType==TPointerEvent::EButton1Down && !iTest->iFailed)
-		{
-		if (iTest->SubState()==ERootWindow)	// Root window click, must not be inside this window
-			{
-			if (TRect(Size()).Contains(pointer.iPosition))
-				{
-				iTest->TestFailed();
-				return;
-				}
-			}
-		TInt ret;
-		if ((ret=PointerDown())==EFailed)
-			iTest->TestFailed();
-		else
-			iTest->IncSubState(ret==ENeedsDDEvent);
-		}
-	}
-
-void CPcWindowBase::DragDropL(const TPointerEvent &pointer,const TTime &)
-	{
-	switch(iTest->State())
-		{
-		case ECaptureDisabled:
-		case ENormalCapture:
-		case ECaptureAllGroups:
-		case ENormalCaptureWithoutFocus:
-			iTest->TestFailed();
-			break;
-		}
-	if (pointer.iType==TPointerEvent::EButton1Down && !iTest->iFailed)
-		{
-		if (DragDrop()==EFailed)
-			iTest->TestFailed();
-		else
-			iTest->GotDD();
-		}
-	}
-//
-
-CPcWindowMain::CPcWindowMain(TPointerCaptureTest *aTest) : CPcWindowBase(aTest)
-	{
-	iBack=TRgb::Gray256(236);
-	}
-
-TPointerCheckRet CPcWindowMain::PointerDown()
-	{
-	switch(iTest->State())
-		{
-		case ECaptureDisabled:
-			if (iTest->SubState()==EMainWindow)
-				return(EOkay);
-			break;
-		case ENormalCapture:
-			switch(iTest->SubState())
-				{
-				case EMainWindow:
-				case ERootWindow:
-					return(EOkay);
-				default:
-					break;
-				}
-			break;
-		case ECaptureAllGroups:
-			switch(iTest->SubState())
-				{
-				case EMainWindow:
-				case EOtherGroup:
-				case EOtherSession:
-				case ERootWindow:
-					return(EOkay);
-				default:
-					break;
-				}
-			break;
-		case EDragDropCapture:
-			switch(iTest->SubState())
-				{
-				case EMainWindow:
-					return(ENeedsDDEvent);
-				case ERootWindow:
-					return(EOkay);
-				default:
-					break;
-				}
-			break;
-		case EDragDropCaptureAllGroups:
-			switch(iTest->SubState())
-				{
-				case EMainWindow:
-				case EOtherGroup:
-				case EOtherSession:
-					return(ENeedsDDEvent);
-				case ERootWindow:
-					return(EOkay);
-				default:
-					break;
-				}
-			break;
-		case ENormalCaptureWithoutFocus:
-			switch(iTest->SubState())
-				{
-				case EMainWindow:
-					return(EOkay);
-				default:
-					break;
-				}
-			break;
-		default:
-			break;
-		}
-	return(EFailed);
-	}
-
-TPointerCheckRet CPcWindowMain::DragDrop()
-	{
-	switch(iTest->State())
-		{
-		case EDragDropCapture:
-		case EDragDropCaptureAllGroups:
-			switch(iTest->SubState())
-				{
-				case EMainWindow:
-					return(EOkay);
-				default:
-					break;
-				}
-			break;
-		default:
-			break;
-		}
-	return(EFailed);
-	}
-
-void CPcWindowMain::Draw()
-	{
-	TBuf<0x40> buf;
-	if (iTest->State()==ECaptureDisabled)
-		{
-		switch(iTest->SubState())
-			{
-			case EMainWindow:
-				buf.Copy(_L("Click on me"));
-				break;
-			}
-		}
-	else
-		{
-		switch(iTest->SubState())
-			{
-			case EMainWindow:
-				buf.Copy(_L("Click on me"));
-				break;
-			case EChildWindow:
-			case EOtherGroup:
-			case EOtherSession:
-				break;
-			case ERootWindow:
-				if (iTest->State()==ENormalCaptureWithoutFocus)
-					buf.Copy(_L("Click on the root window, then press <Escape>"));
-				else
-					buf.Copy(_L("Click on the root window"));
-				break;
-			}
-		}
-	CPcWindowBase::Draw(buf);
-	}
-
-void CPcWindowMain::WinKeyL(const TKeyEvent &aKey,const TTime &)
-	{
-	switch(aKey.iCode)
-		{
-		case EKeyEscape:
-			iTest->AbortTests();
-			break;
-		}
-	}
-
-//
-
-CPcWindowChild::CPcWindowChild(TPointerCaptureTest *aTest) : CPcWindowBase(aTest)
-	{
-	iBack=TRgb::Gray256(85);
-	}
-
-TPointerCheckRet CPcWindowChild::PointerDown()
-	{
-	switch(iTest->State())
-		{
-		case ECaptureDisabled:
-			break;
-		default:
-			switch(iTest->SubState())
-				{
-				case EChildWindow:
-					return(EOkay);
-				default:
-					break;
-				}
-			break;
-		}
-	return(EFailed);
-	}
-
-TPointerCheckRet CPcWindowChild::DragDrop()
-	{
-	switch(iTest->State())
-		{
-		case EDragDropCapture:
-		case EDragDropCaptureAllGroups:
-			switch(iTest->SubState())
-				{
-				case EChildWindow:
-					return(EOkay);
-				default:
-					break;
-				}
-			break;
-		default:
-			break;
-		}
-	return(EFailed);
-	}
-
-void CPcWindowChild::Draw()
-	{
-	TBuf<0x40> buf;
-	if (iTest->State()!=ECaptureDisabled)
-		{
-		switch(iTest->SubState())
-			{
-			case EChildWindow:
-				buf.Copy(_L("Click on me"));
-				break;
-			default:
-				break;
-			}
-		}
-	CPcWindowBase::Draw(buf);
-	}
-
-//
-
-CPcWindowNickFocusGroup::CPcWindowNickFocusGroup(TPointerCaptureTest *aTest, CTClient *aClient) : CTWindowGroup(aClient), iTest(aTest)
-	{
-	}
-
-void CPcWindowNickFocusGroup::KeyL(const TKeyEvent &aKey,const TTime &)
-	{
-	if (aKey.iCode==EKeyEscape)
-		iTest->IncSubState(EFalse);
-	}
-
-//
-
-CPcWindowAltGroup::CPcWindowAltGroup(TPointerCaptureTest *aTest) : CPcWindowBase(aTest)
-	{
-	iBack=TRgb::Gray256(236);
-	}
-
-TPointerCheckRet CPcWindowAltGroup::PointerDown()
-	{
-	switch(iTest->State())
-		{
-		case ECaptureDisabled:
-			if (iTest->SubState()==EChildWindow)
-				return(EOkay);
-			break;
-		case ENormalCapture:
-		case EDragDropCapture:
-		case ENormalCaptureWithoutFocus:
-			switch(iTest->SubState())
-				{
-				case EOtherGroup:
-					return(EOkay);
-				default:
-					break;
-				}
-			break;
-		default:
-			break;
-		}
-	return(EFailed);
-	}
-
-TPointerCheckRet CPcWindowAltGroup::DragDrop()
-	{
-	switch(iTest->State())
-		{
-		case EDragDropCapture:
-		case EDragDropCaptureAllGroups:
-			switch(iTest->SubState())
-				{
-				case EOtherGroup:
-					return(EOkay);
-				default:
-					break;
-				}
-			break;
-		default:
-			break;
-		}
-	return(EFailed);
-	}
-
-void CPcWindowAltGroup::Draw()
-	{
-	TBuf<0x40> buf;
-	if (iTest->State()==ECaptureDisabled)
-		{
-		switch(iTest->SubState())
-			{
-			case EMainWindow:
-				break;
-			case EChildWindow:
-				buf.Copy(_L("Click on me"));
-				break;
-			}
-		}
-	else
-		{
-		switch(iTest->SubState())
-			{
-			case EOtherGroup:
-				buf.Copy(_L("Click on me"));
-				break;
-			default:
-				break;
-			}
-		}
-	CPcWindowBase::Draw(buf);
-	}
-
-//
-
-CPcWindowAltConnection::CPcWindowAltConnection(TPointerCaptureTest *aTest) : CPcWindowBase(aTest)
-	{
-	iBack=TRgb::Gray256(236);
-	}
-
-TPointerCheckRet CPcWindowAltConnection::PointerDown()
-	{
-	switch(iTest->State())
-		{
-		case ECaptureDisabled:
-			if (iTest->SubState()==EChildWindow)
-				return(EOkay);
-			break;
-		case ENormalCapture:
-		case EDragDropCapture:
-		case ENormalCaptureWithoutFocus:
-			switch(iTest->SubState())
-				{
-				case EOtherSession:
-					return(EOkay);
-				default:
-					break;
-				}
-			break;
-		default:
-			break;
-		}
-	return(EFailed);
-	}
-
-TPointerCheckRet CPcWindowAltConnection::DragDrop()
-	{
-	switch(iTest->State())
-		{
-		case EDragDropCapture:
-		case EDragDropCaptureAllGroups:
-			switch(iTest->SubState())
-				{
-				case EOtherSession:
-					return(EOkay);
-				default:
-					break;
-				}
-			break;
-		default:
-			break;
-		}
-	return(EFailed);
-	}
-
-void CPcWindowAltConnection::Draw()
-	{
-	TBuf<0x40> buf;
-	if (iTest->State()!=ECaptureDisabled)
-		{
-		switch(iTest->SubState())
-			{
-			case EOtherSession:
-				buf.Copy(_L("Click on me"));
-				break;
-			default:
-				break;
-			}
-		}
-	CPcWindowBase::Draw(buf);
-	}
-
-//
-
-TPointerCaptureTest::TPointerCaptureTest() : CTestBase(_L("Pointer Capture"))
-	{}
-
-TPointerCaptureTest::~TPointerCaptureTest()
-	{
-	delete iNickFocusBlankWin;
-	delete iNickFocusGroup;
-	delete iAltConnectionWin;
-	delete iAltConnection;
-	delete iChildWin;
-	delete iMainWin;
-	delete iMainGroup;
-	delete iAltGroupWin;
-	delete iAltGroup;
-	}
-
-void TPointerCaptureTest::TestFailed()
-	{
-	__ASSERT_DEBUG(iFailed==EFalse,TManPanic(ETManPanicPcFailed));
-	iFailed=ETrue;
-	Client()->iGroup->GroupWin()->SetOrdinalPosition(0,10);	// Put error dialog on top of test windows
-	TInt dRet=1;
-	TRAPD(err,dRet=doTestFailedL());
-	Client()->iGroup->GroupWin()->SetOrdinalPosition(0,0);
-	switch(dRet)
-		{
-		case 0:
-			RestartTest();
-			break;
-		case 1:
-			TRAP(err,TestL(EFalse));
-			break;
-		}
-	}
-
-TInt TPointerCaptureTest::doTestFailedL()
-	{
-	CTDialog *dialog=new(ELeave) CTDialog();
-	dialog->SetTitle(_L("Pointer capture test failed"));
-	dialog->SetNumButtons(2);
-	dialog->SetButtonText(0,_L("Retest"));
-	dialog->SetButtonText(1,_L("Fail"));
-	dialog->ConstructLD(*Client()->iGroup,*Client()->iGc);
-	return dialog->Display();
-	}
-
-TInt TPointerCaptureTest::State() const
-	{
-	return(iState);
-	}
-
-TInt TPointerCaptureTest::SubState() const
-	{
-	return(iSubState);
-	}
-
-void TPointerCaptureTest::doIncSubState()
-	{
-	iSubState++;
-	TInt max=0;
-	switch(iState)
-		{
-		case ECaptureDisabled:
-			max=ESubStates1;
-			break;
-		case ENormalCapture:
-			max=ESubStates2;
-			break;
-		case ECaptureAllGroups:
-			max=ESubStates3;
-			break;
-		case EDragDropCapture:
-			max=ESubStates4;
-			break;
-		case EDragDropCaptureAllGroups:
-			max=ESubStates5;
-			break;
-		case ENormalCaptureWithoutFocus:
-			max=ESubStates6;
-			break;
-		}
-	if (iSubState==max)
-		NextTest();
-	StateChanged();
-	}
-
-void TPointerCaptureTest::GotDD()
-	{
-	if (iDDState==DDStateWaiting)
-		doIncSubState();
-	else
-		iDDState=DDStateGot;
-	}
-
-void TPointerCaptureTest::IncSubState(TBool aNeedsDD)
-	{
-	if (!aNeedsDD)
-		{
-		if (iDDState!=DDStateNull)
-			TestFailed();
-		else
-			doIncSubState();
-		}
-	else if (iDDState==DDStateGot)
-		doIncSubState();
-	else
-		iDDState=DDStateWaiting;
-	}
-
-void TPointerCaptureTest::StateChanged()
-	{
-	iDDState=DDStateNull;
-	iChildWin->SubStateChanged();
-	iMainWin->SubStateChanged();
-	iAltGroupWin->SubStateChanged();
-	iAltConnectionWin->SubStateChanged();
-	}
-
-void TPointerCaptureTest::AbortTests()
-	{
-	iState=99;
-	Request();
-	}
-
-void TPointerCaptureTest::NextTest()
-	{
-	iState++;
-	Request();
-	}
-
-void TPointerCaptureTest::RestartTest()
-	{
-	Request();
-	}
-
-void TPointerCaptureTest::ConstructL()
-	{
-	TSize size(Client()->iGroup->Size());
-	TInt winWidth2=size.iWidth/2-EWinBorderSize*2;
-	TInt winWidth4=size.iWidth/4-EWinBorderSize*2;
-	TInt winHeight=size.iHeight/2-EWinBorderSize*2;
-//
-	iMainGroup=new(ELeave) CTWindowGroup(Client());
-	iMainGroup->ConstructL();
-	iMainGroup->GroupWin()->SetOrdinalPosition(0,1);
-	iMainWin=new(ELeave) CPcWindowMain(this);
-	iMainWin->SetUpL(TPoint(EWinBorderSize,EWinBorderSize) ,TSize(winWidth2,winHeight) ,iMainGroup);
-	iMainGroup->SetCurrentWindow(iMainWin);
-	iChildWin=new(ELeave) CPcWindowChild(this);
-	iChildWin->SetUpL(TPoint(0,winHeight/2) ,TSize(winWidth2,winHeight/2) ,iMainWin);
-//
-	iAltGroup=new(ELeave) CTWindowGroup(Client());
-	iAltGroup->ConstructL();
-	iAltGroup->GroupWin()->SetOrdinalPosition(0,1);
-	iAltGroup->GroupWin()->EnableReceiptOfFocus(EFalse);
-	iAltGroupWin=new(ELeave) CPcWindowAltGroup(this);
-	iAltGroupWin->SetUpL(TPoint(size.iWidth/2+EWinBorderSize,EWinBorderSize) ,TSize(winWidth4,winHeight) ,iAltGroup);
-//
-	iAltConnection=new(ELeave) CPcConnection(this);
-	iAltConnection->ConstructL();
-	iAltConnectionWin=new(ELeave) CPcWindowAltConnection(this);
-	iAltConnectionWin->SetUpL(TPoint(size.iWidth/4*3+EWinBorderSize,EWinBorderSize) ,TSize(winWidth4,winHeight),iAltConnection->iGroup,*iAltConnection->iGc);
-	}
-
-void TPointerCaptureTest::NickFocusL()
-	{
-	iNickFocusGroup=new(ELeave) CPcWindowNickFocusGroup(this,Client());
-	iNickFocusGroup->ConstructL();
-	iNickFocusGroup->GroupWin()->SetOrdinalPosition(0,2);
-	iNickFocusBlankWin=new(ELeave) CTBlankWindow();
-	iNickFocusBlankWin->ConstructL(*iNickFocusGroup);
-	iNickFocusBlankWin->SetSize(TSize(1,1));
-	iNickFocusBlankWin->Activate();
-	}
-
-void TPointerCaptureTest::SetCapture(TInt aCaptureFlags)
-	{
-	iMainWin->Win()->SetPointerCapture(aCaptureFlags);
-	}
-
-TestState TPointerCaptureTest::DoTestL()
-	{
-	iSubState=0;
-	iFailed=EFalse;
-	StateChanged();
-	switch(iState)
-		{
-		case ECaptureDisabled:
-			LogSubTest(_L("No capture"),1);
-			SetCapture(RWindowBase::TCaptureDisabled);
-			break;
-		case ENormalCapture:
-			LogSubTest(_L("Normal capture"),1);
-			SetCapture(RWindowBase::TCaptureEnabled);
-			break;
-		case ECaptureAllGroups:
-			LogSubTest(_L("All groups"),1);
-			SetCapture(RWindowBase::TCaptureEnabled|RWindowBase::TCaptureFlagAllGroups);
-			break;
-		case EDragDropCapture:
-			LogSubTest(_L("Drag & Drop"),1);
-			SetCapture(RWindowBase::TCaptureDragDrop&~RWindowBase::TCaptureFlagAllGroups);
-			break;
-		case EDragDropCaptureAllGroups:
-			LogSubTest(_L("Drag & Drop All groups"),1);
-			SetCapture(RWindowBase::TCaptureDragDrop);
-			break;
-		case ENormalCaptureWithoutFocus:
-			LogSubTest(_L("Without focus"),1);
-			NickFocusL();
-			SetCapture(RWindowBase::TCaptureEnabled);
-			break;
-		default:
-			return(EFinished);
-		}
-	return(EContinue);
- 	}