diff -r 2717213c588a -r 171fae344dd4 windowing/windowserver/tman/TMPNTKEY.CPP --- a/windowing/windowserver/tman/TMPNTKEY.CPP Tue Jun 22 15:21:29 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,305 +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 -#include "W32STD.H" -#include "../tlib/testbase.h" -#include "TMAN.H" - -const TInt ENumPntKeyTests=6; -const TUint EModifierMask=EModifierCtrl|EModifierShift|EModifierFunc; - -class CTPntKeyTest; - -class CTPntKeyWindow : public CTWin - { -private: - enum {KPointerMoveBufferSize=32}; -public: - CTPntKeyWindow(CTPntKeyTest *aTest); - ~CTPntKeyWindow(); - void SetUpLD(TPoint pos,TSize size,CTWinBase *parent); - void PointerL(const TPointerEvent &pointer,const TTime &aTime); - void KeyUpL(const TKeyEvent &aKey,const TTime &); - void KeyDownL(const TKeyEvent &aKey,const TTime &); - void WinKeyL(const TKeyEvent &aKey,const TTime &); - void SwitchOn(const TTime &aTime); - void SetState(TInt iState); - void NextKey(); - void Test(TInt aCheck); - void Error(); - void DrawButton(const TRect &aRect, const TDesC &aText); - void Draw(); -private: - CTPntKeyTest *iTest; - TInt iKeyCount; - TRect iKey1; - TRect iKey2; - TRect iKey3; - static TInt iTestScanCodes[ENumPntKeyTests]; - static TUint iTestCodes[ENumPntKeyTests]; - static TUint iTestModifiers[ENumPntKeyTests]; - }; - -class CTPntKeyTest : public CTestBase - { -public: - CTPntKeyTest(); - ~CTPntKeyTest(); - TestState DoTestL(); - void FinishedTests(); - void ConstructL(); - void Failed(); - inline TBool NoDigitiser() const {return iNoDigitiser;} -private: - CTPntKeyWindow *iWin; - TSize iWinSize; - TInt iState; - TBool iFailed; - TBool iOldPointerState; - TBool iNoDigitiser; - }; - -TInt CTPntKeyWindow::iTestScanCodes[ENumPntKeyTests]={'A','B',0,'C',EStdKeyEnter,'Y'}; -TUint CTPntKeyWindow::iTestCodes[ENumPntKeyTests]={'a','B',0,'c',EKeyEnter,'y'}; -TUint CTPntKeyWindow::iTestModifiers[ENumPntKeyTests]={0,EModifierShift,0,0,0,0}; - -GLDEF_C CTestBase *CreatePointerKeyTest() - { - return(new(ELeave) CTPntKeyTest()); - } - -CTPntKeyWindow::CTPntKeyWindow(CTPntKeyTest *aTest) : iTest(aTest) - {} - -CTPntKeyWindow::~CTPntKeyWindow() - { - } - -void CTPntKeyWindow::SetUpLD(TPoint pos,TSize size,CTWinBase *parent) - { - ConstructExtLD(*parent,pos,size); - iWin.SetPointerGrab(ETrue); - iKey1=TRect(size.iWidth*1/16,size.iHeight/2,size.iWidth*5/16,size.iHeight); - iKey2=TRect(size.iWidth*6/16,size.iHeight/2,size.iWidth*10/16,size.iHeight); - iKey3=TRect(size.iWidth*11/16,size.iHeight/2,size.iWidth*15/16,size.iHeight); - iWin.AddKeyRect(iKey1,'A',EFalse); - iWin.AddKeyRect(iKey2,'B',EFalse); - AssignGC(*Client()->iGc); - BaseWin()->EnableOnEvents(); - Activate(); - } - -void CTPntKeyWindow::Error() - { - iTest->Failed(); - } - -void CTPntKeyWindow::SetState(TInt iState) - { - iKeyCount=iState-1; - NextKey(); - iTest->Client()->Flush(); - } - -void CTPntKeyWindow::NextKey() - { - if (++iKeyCount==ENumPntKeyTests || iKeyCount>4) - iTest->FinishedTests(); - else - { - if (iKeyCount==2) - iWin.RemoveAllKeyRects(); - else if (iKeyCount==3) - iWin.AddKeyRect(iKey3,'C',EFalse); - else if (iKeyCount==4) - { - #if !defined(__WINS__) - if (iTest->NoDigitiser()) - iTest->FinishedTests(); - #endif - iWin.RemoveAllKeyRects(); - iWin.AddKeyRect(TRect(Client()->iScreen->SizeInPixels()),'Z',EFalse); - } - else if (iKeyCount==5) - { - iWin.RemoveAllKeyRects(); - Client()->iWs.Flush(); - User::After(500000); // Wait half a second - iWin.AddKeyRect(TRect(Client()->iScreen->SizeInPixels()),'Y',ETrue); - } - Invalidate(); - } - } - -void CTPntKeyWindow::Test(TInt aCheck) - { - if (!aCheck) - Error(); - } - -void CTPntKeyWindow::KeyUpL(const TKeyEvent &aKey,const TTime&) - { - if (aKey.iScanCode==iTestScanCodes[iKeyCount]) - NextKey(); - } - -void CTPntKeyWindow::KeyDownL(const TKeyEvent &aKey,const TTime &) - { - if (aKey.iScanCode!=EStdKeyLeftFunc && aKey.iScanCode!=EStdKeyRightFunc && - aKey.iScanCode!=EStdKeyLeftAlt && aKey.iScanCode!=EStdKeyRightAlt && - aKey.iScanCode!=EStdKeyLeftCtrl && aKey.iScanCode!=EStdKeyRightCtrl && - aKey.iScanCode!=EStdKeyLeftShift && aKey.iScanCode!=EStdKeyRightShift && - aKey.iScanCode!=EStdKeyOff && - aKey.iScanCode!=EStdKeyEscape) - Test(aKey.iScanCode==iTestScanCodes[iKeyCount]); - } - -void CTPntKeyWindow::WinKeyL(const TKeyEvent &aKey,const TTime &) - { - if (aKey.iCode==EKeyEscape) - iTest->FinishedTests(); - else - { - Test(aKey.iScanCode==iTestScanCodes[iKeyCount]); - Test(aKey.iCode==iTestCodes[iKeyCount]); - Test((aKey.iModifiers&EModifierMask)==(iTestModifiers[iKeyCount]&EModifierMask)); - } - } - -void CTPntKeyWindow::SwitchOn(const TTime &) - { - if (iKeyCount==4) - NextKey(); - else if (iKeyCount!=5) - Error(); - } - -void CTPntKeyWindow::PointerL(const TPointerEvent &aPointer,const TTime &) - { - if (aPointer.iType==TPointerEvent::EButton1Down) - { - if (iKeyCount!=2) - Error(); - else - NextKey(); - } - } - -void CTPntKeyWindow::DrawButton(const TRect &aRect, const TDesC &aText) - { - iGc->DrawRect(aRect); - iGc->DrawText(aText, TPoint((aRect.iBr.iX+aRect.iTl.iX)/2,(aRect.iBr.iY+aRect.iTl.iY)/2)); - } - -void CTPntKeyWindow::Draw() - { - iGc->SetBrushColor(TRgb::Gray4(0)); - iGc->SetPenColor(TRgb::Gray4(3)); - iGc->Clear(); - DrawButton(iKey1,_L("A")); - DrawButton(iKey2,_L("B")); - DrawButton(iKey3,_L("C")); - switch(iKeyCount) - { - case 0: - iGc->DrawText(_L("Click on 'A'"), TPoint(10,20)); - break; - case 1: - iGc->DrawText(_L("Shift-Click on 'B'"), TPoint(10,20)); - break; - case 2: - iGc->DrawText(_L("Click anywhere in this window"), TPoint(10,20)); - break; - case 3: - iGc->DrawText(_L("Click on 'C'"), TPoint(10,20)); - break; - case 4: -#if defined(__WINS__) // Can't emulate touching dig when switched off under WINS - iGc->DrawText(_L("Switch off and on (or press Enter)"), TPoint(10,20)); -#else - iGc->DrawText(_L("1st Switch off, then touch the screen to switch on"), TPoint(10,20)); -#endif - break; - case 5: -#if defined(__WINS__) // Can't emulate touching dig when switched off under WINS - iGc->DrawText(_L("Touch anywhere in the window"), TPoint(10,20)); -#else - iGc->DrawText(_L("2nd Switch off and touch the screen to switch on"), TPoint(10,20)); -#endif - break; - } - } - -CTPntKeyTest::CTPntKeyTest() : CTestBase(_L("Pointer Key Test")) - {} - -CTPntKeyTest::~CTPntKeyTest() - { - HAL::Set(HALData::EPenDisplayOn,iOldPointerState); - CTWin::Delete(iWin); - Client()->ResetFocus(); - } - -void CTPntKeyTest::Failed() - { - if (!iFailed) - { - iFailed=ETrue; - FinishedTests(); - } - } - -void CTPntKeyTest::FinishedTests() - { - Request(); - } - -void CTPntKeyTest::ConstructL() - { - CTPntKeyWindow *win=new(ELeave) CTPntKeyWindow(this); - win->SetUpLD(TPoint(20,20),Client()->iScreen->SizeInPixels()-TSize(40,40),Client()->iGroup); - iWin=win; - Client()->iGroup->SetCurrentWindow(iWin); - iNoDigitiser=EFalse; - TInt err=HAL::Get(HALData::EPenDisplayOn,iOldPointerState); - if (err==KErrNotSupported) - iNoDigitiser=ETrue; - else if (err==KErrNone) - err=HAL::Set(HALData::EPenDisplayOn,ETrue); - if (err==KErrNotSupported) - iNoDigitiser=(!iOldPointerState); - else - TestL(err==KErrNone); - } - -TestState CTPntKeyTest::DoTestL() - { - TestL(!iFailed); - switch(iState) - { - case 0: - LogSubTest(_L("Key set 1"),1); - iWin->SetState(4); - iState++; - return(EContinue); - default: - return(EFinished); - } -// return(ENext); - }