diff -r bf7481649c98 -r 7f25ef56562d windowing/windowserver/tman/TMPNTBUF.CPP --- a/windowing/windowserver/tman/TMPNTBUF.CPP Fri Jun 11 14:58:47 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,283 +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 move/drag buffer -// -// - -#include -#include "W32STD.H" -#include "../tlib/testbase.h" -#include "TMAN.H" - -class CTPntBufTest; - -class CPntBufWindow : public CTBackedUpWin - { -private: - enum {KPointerMoveBufferSize=32}; -public: - CPntBufWindow(CTPntBufTest *aTest); - ~CPntBufWindow(); - void SetUpLD(TPoint pos,TSize size,CTWinBase *parent); - void PointerBufferReady(const TTime &aTime); - void PointerL(const TPointerEvent &pointer,const TTime &aTime); - void SetUpState(); - void NextTest(); - void WinKeyL(const TKeyEvent &aKey,const TTime &aTime); - void ErrorL(); -private: - //Virtual functions from CTWinBase - void PointerEnter(const TTime&); - void PointerExit(const TTime&); -private: - CTPntBufTest *iTest; - TBool iDragging; - TBool iErrorNest; - TBool iDisabled; - TBool iDiscard; - TInt iMode; - TBool iIgnorNextPoint; - }; - -class CTPntBufTest : public CTestBase - { -public: - CTPntBufTest(); - ~CTPntBufTest(); - TestState DoTestL(); - void FinishedTests(); - void ConstructL(); -private: - CPntBufWindow *iWin; - TSize iWinSize; - TInt iState; - }; - -GLDEF_C CTestBase *CreatePointerBufferTest() - { - return(new(ELeave) CTPntBufTest()); - } - -CPntBufWindow::CPntBufWindow(CTPntBufTest *aTest) : CTBackedUpWin(EGray4), iTest(aTest) - {} - -CPntBufWindow::~CPntBufWindow() - { - delete iGc; - } - -void CPntBufWindow::SetUpLD(TPoint pos,TSize size,CTWinBase *parent) - { - ConstructExtLD(*parent,pos,size); - User::LeaveIfError(iWin.AllocPointerMoveBuffer(KPointerMoveBufferSize,0)); - iWin.SetPointerGrab(ETrue); - iWin.PointerFilter(EPointerFilterEnterExit,0); - Activate(); - User::LeaveIfError(Client()->iScreen->CreateContext(iGc)); - iGc->Activate(iWin); - SetUpState(); - } - -void CPntBufWindow::PointerBufferReady(const TTime &) - { - if (iDiscard) - iWin.DiscardPointerMoveBuffer(); - iGc->SetPenColor(iDragging ? TRgb::Gray4(0) : TRgb::Gray4(1)); - iGc->SetPenSize(iDragging ? TSize(2,2) : TSize(1,1)); - TPoint pnts[KPointerMoveBufferSize]; - TPtr8 ptr((TUint8 *)&pnts,sizeof(pnts)); - TInt numPnts=iWin.RetrievePointerMoveBuffer(ptr); - TInt index=0; - if (iIgnorNextPoint) - { - iGc->MoveTo(pnts[index]); - index=1; - iIgnorNextPoint=EFalse; - } - for(;indexDrawLineTo(pnts[index]); - } - -void CPntBufWindow::ErrorL() - { - if (!iErrorNest) - { - iErrorNest=ETrue; - iTest->TestL(EFalse); - } - } - -void CPntBufWindow::PointerL(const TPointerEvent &pointer,const TTime &) - { - switch(pointer.iType) - { - case TPointerEvent::EButton1Down: - iDragging=ETrue; - iGc->MoveTo(pointer.iPosition); - if (iMode==2) - { - if (pointer.iModifiers&EModifierShift) - { - iDisabled=ETrue; - iWin.DisablePointerMoveBuffer(); - } - else if (pointer.iModifiers&EModifierCtrl) - iDiscard=ETrue; - } - break; - case TPointerEvent::EButton1Up: - if (iDisabled) - { - iDisabled=EFalse; - iWin.EnablePointerMoveBuffer(); - } - iDiscard=EFalse; - iGc->MoveTo(pointer.iPosition); - iDragging=EFalse; - break; - case TPointerEvent::EDrag: - if (iDragging && !iDisabled) - ErrorL(); - break; - case TPointerEvent::EMove: - if (iDragging && !iDisabled) - ErrorL(); - break; - default:; - } - } - -void CPntBufWindow::SetUpState() - { - - iGc->Reset(); - iGc->UseFont((CFont *)iFont); - iGc->Clear(); - switch(iMode) - { - case 0: - iWin.PointerFilter(EPointerFilterMove,EPointerFilterMove); - iGc->DrawText(_L("Drag the pointer around the window and check"), TPoint(10,20)); - iGc->DrawText(_L("a line is drawn following the pointer when"), TPoint(10,40)); - iGc->DrawText(_L("dragging but not when moving"), TPoint(10,60)); - iGc->DrawText(_L("Press when checked"), TPoint(10,90)); - break; - case 1: - iWin.PointerFilter(EPointerFilterMove|EPointerFilterDrag,EPointerFilterDrag); - iGc->DrawText(_L("If pointer moves are supported move the pointer around the "), TPoint(10,20)); - iGc->DrawText(_L("window and check a line is drawn following the pointer"), TPoint(10,40)); - iGc->DrawText(_L("when it is up, and no lines are drawn when dragging"), TPoint(10,60)); - iGc->DrawText(_L("Press if moves not supported or when checked"), TPoint(10,90)); - break; - case 2: - iWin.PointerFilter(EPointerFilterMove|EPointerFilterDrag,0); - iGc->DrawText(_L("Drag and move the pointer around the window and check a"), TPoint(10,20)); - iGc->DrawText(_L("line is drawn following the pointer during both dragging and"), TPoint(10,40)); - iGc->DrawText(_L("moving, also check drag with the shift or control key down doesn't draw"), TPoint(10,60)); - iGc->DrawText(_L("Press when checked"), TPoint(10,90)); - break; - } - } - -void CPntBufWindow::NextTest() - { - if (iMode++==2) - iTest->FinishedTests(); - else - SetUpState(); - } - -void CPntBufWindow::WinKeyL(const TKeyEvent &aKey,const TTime &) - { - switch(aKey.iCode) - { - case ' ': - NextTest(); - break; - case EKeyEscape: - iTest->FinishedTests(); - break; - case '0': - SetUpState(); - break; - case '1': - case '2': - case '3': - { - TInt mode=aKey.iCode-'1'; - if (mode!=iMode) - { - iMode=mode; - SetUpState(); - } - } - break; - } - } - -void CPntBufWindow::PointerEnter(const TTime&) - { - if (iMode==0) - iDragging=ETrue; - else if (iMode==1) - iDragging=EFalse; - iIgnorNextPoint=ETrue; - } - -void CPntBufWindow::PointerExit(const TTime&) - {} - - -/*CTPntBufTest*/ - -CTPntBufTest::CTPntBufTest() : CTestBase(_L("Scale")) - {} - -CTPntBufTest::~CTPntBufTest() - { -#if defined(__WINS__) - Client()->iWs.SimulateXyInputType(EXYInputPointer); -#endif - CTWin::Delete(iWin); - } - -void CTPntBufTest::FinishedTests() - { - Request(); - } - -void CTPntBufTest::ConstructL() - { - CPntBufWindow *win=new(ELeave) CPntBufWindow(this); - win->SetUpLD(TPoint(0,0),Client()->iScreen->SizeInPixels(),Client()->iGroup); - iWin=win; - Client()->iGroup->SetCurrentWindow(iWin); -#if defined(__WINS__) - Client()->iWs.SimulateXyInputType(EXYInputMouse); -#endif - } - -TestState CTPntBufTest::DoTestL() - { - switch(iState) - { - case 0: - LogSubTest(_L("Scale 1"),1); - iState++; - return(EContinue); - default: - return(EFinished); - } -// return(ENext); - }