diff -r 2717213c588a -r 171fae344dd4 windowing/windowserver/tman/MULTICON.CPP --- a/windowing/windowserver/tman/MULTICON.CPP Tue Jun 22 15:21:29 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,446 +0,0 @@ -// Copyright (c) 1995-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 multiple connections to the window server -// -// - -#include -#include -#include "W32STD.H" -#include "../tlib/testbase.h" -#include "TMAN.H" - -const TInt EMaxSubState=3; - -class CMcWindowBase; -class TMultiConTest; - -class CMcConnectionBase : public CTClient - { -public: - CMcConnectionBase(TMultiConTest *aTest); - ~CMcConnectionBase(); - virtual void ConstructL(); - void SubStateChanged(); -protected: - TMultiConTest *iTest; - CMcWindowBase *iWin; - CWindowGc *iGc; - }; - -class CMcConnection : public CMcConnectionBase // Sets AutoForeground off - { -public: - CMcConnection(TMultiConTest *aTest); - void ConstructL(); - }; - -class CMcWindowGroupAf : public CTWindowGroup - { -public: - CMcWindowGroupAf(CTClient *aClient); - void KeyL(const TKeyEvent &aKey, const TTime &aTime); - }; - -class CMcConnectionAf : public CMcConnectionBase // Sets AutoForeground on - { -public: - CMcConnectionAf(TMultiConTest *aTest); - void ConstructL(); - void KeyL(const TKeyEvent &aKey); - }; - -class CMcConnectionDef : public CMcConnectionBase // Leaves AutoForeground as the default value - { -public: - CMcConnectionDef(TMultiConTest *aTest); - void ConstructL(); - }; - -class CMcWindowBase : public CTWin - { -public: - CMcWindowBase(TMultiConTest *aTest); - void SetUpL(TPoint pos,TSize size,CTWinBase *parent, CWindowGc &aGc); - virtual void Draw()=0; - virtual void PointerL(const TPointerEvent &pointer,const TTime &)=0; -protected: - TMultiConTest *iTest; - TRgb iBack; - }; - -class CMcWindow : public CMcWindowBase - { -public: - CMcWindow(TMultiConTest *aTest); - virtual void Draw(); - virtual void PointerL(const TPointerEvent &pointer,const TTime &); - }; - -class CMcWindowAf : public CMcWindowBase - { -public: - CMcWindowAf(TMultiConTest *aTest); - virtual void Draw(); - virtual void PointerL(const TPointerEvent &pointer,const TTime &); - void ConstructL(); - }; - -class CMcWindowDef : public CMcWindowBase - { -public: - CMcWindowDef(TMultiConTest *aTest); - virtual void Draw(); - virtual void PointerL(const TPointerEvent &pointer,const TTime &); - }; - -class TMultiConTest : public CTestBase - { -public: - TMultiConTest(); - ~TMultiConTest(); - TestState DoTestL(); - void ConstructL(); - void EndAutoForegroundTest(); - TInt SubState() const; - void IncSubState(); -private: - CMcConnectionAf *iConn1; - CMcConnection *iConn2; - CMcConnectionDef *iConn3; - TSize iWinSize; - TInt iState; - TInt iSubState; - }; - -GLDEF_C CTestBase *CreateMultiConTest() - { - return(new(ELeave) TMultiConTest()); - } - -TMultiConTest::TMultiConTest() : CTestBase(_L("MultiCon")) - {} - -TMultiConTest::~TMultiConTest() - { - delete iConn1; - delete iConn2; - delete iConn3; - } - -void TMultiConTest::EndAutoForegroundTest() - { - iConn1->iGroup->GroupWin()->EnableReceiptOfFocus(EFalse); - iConn2->iGroup->GroupWin()->EnableReceiptOfFocus(EFalse); - iConn3->iGroup->GroupWin()->EnableReceiptOfFocus(EFalse); - Request(); - } - -void TMultiConTest::ConstructL() - { - iConn3=new(ELeave) CMcConnectionDef(this); - iConn3->ConstructL(); - iConn2=new(ELeave) CMcConnection(this); - iConn2->ConstructL(); - iConn1=new(ELeave) CMcConnectionAf(this); - iConn1->ConstructL(); - } - -// -// CMcConnection - -CMcConnectionBase::CMcConnectionBase(TMultiConTest *aTest) : iTest(aTest) - { - } - -CMcConnectionBase::~CMcConnectionBase() - { - CTWin::Delete(iWin); - delete iGc; - } - -void CMcConnectionBase::SubStateChanged() - { - iWin->Invalidate(); - iWs.Flush(); - } - -void CMcConnectionBase::ConstructL() - { - CTClient::ConstructL(); - User::LeaveIfError(iScreen->CreateContext(iGc)); - } - -CMcConnection::CMcConnection(TMultiConTest *aTest) : CMcConnectionBase(aTest) - { - } - -void CMcConnection::ConstructL() - { - CMcConnectionBase::ConstructL(); - iGroup=new(ELeave) CTWindowGroup(this); - iGroup->ConstructL(); - TSize screenSize=iGroup->Size(); - TInt winWidth=screenSize.iWidth/3; - TInt winHeight=screenSize.iHeight/2-10; - iGroup->GroupWin()->AutoForeground(EFalse); - CMcWindow *win=new(ELeave) CMcWindow(iTest); - win->SetUpL(TPoint(5,5),TSize(winWidth,winHeight),iGroup,*iGc); - iWin=win; - iWs.Flush(); - } - -CMcConnectionAf::CMcConnectionAf(TMultiConTest *aTest) : CMcConnectionBase(aTest) - { - } - -void CMcConnectionAf::ConstructL() - { - CMcConnectionBase::ConstructL(); - iGroup=new(ELeave) CMcWindowGroupAf(this); - iGroup->ConstructL(); - TSize screenSize=iGroup->Size(); - TInt winWidth=screenSize.iWidth/3; - TInt winHeight=screenSize.iHeight/2-10; - iGroup->GroupWin()->AutoForeground(ETrue); - CMcWindowAf *win=new(ELeave) CMcWindowAf(iTest); - win->SetUpL(TPoint(winWidth,5),TSize(winWidth,winHeight),iGroup,*iGc); - iWin=win; - iWs.Flush(); - } - -void CMcConnectionAf::KeyL(const TKeyEvent &aKey) - { - switch(aKey.iCode) - { - case ' ': - if (iTest->SubState()==0) - { - iTest->TestL(iGroup->GroupWin()->OrdinalPosition()==0); - iTest->IncSubState(); - } - break; - case EKeyEscape: - iTest->EndAutoForegroundTest(); - break; - } - } - -CMcConnectionDef::CMcConnectionDef(TMultiConTest *aTest) : CMcConnectionBase(aTest) - { - } - -void CMcConnectionDef::ConstructL() - { - CMcConnectionBase::ConstructL(); - iGroup=new(ELeave) CTWindowGroup(this); - iGroup->ConstructL(); - iGroup->GroupWin()->EnableReceiptOfFocus(EFalse); - TSize screenSize=iGroup->Size(); - TInt winWidth=screenSize.iWidth/3-10; - TInt winHeight=(screenSize.iHeight/2)-10; - CMcWindowDef *win=new(ELeave) CMcWindowDef(iTest); - win->SetUpL(TPoint(5+winWidth/2,screenSize.iHeight/2),TSize(winWidth,winHeight),iGroup,*iGc); - iWin=win; - iWs.Flush(); - } - -// -// CMcWindow, base class // -// - -CMcWindowBase::CMcWindowBase(TMultiConTest *aTest) : CTWin(), iTest(aTest) - { - } - -void CMcWindowBase::SetUpL(TPoint pos,TSize size,CTWinBase *parent, CWindowGc &aGc) - { - ConstructExtLD(*parent,pos,size); - iWin.SetBackgroundColor(iBack); - Activate(); - AssignGC(aGc); - } - -// -// CMcWindow, window used to test multiple connections // -// - -CMcWindow::CMcWindow(TMultiConTest *aTest) : CMcWindowBase(aTest) - { - iBack=TRgb::Gray256(221); - } - -void CMcWindow::PointerL(const TPointerEvent &pointer,const TTime &) - { - if (pointer.iType==TPointerEvent::EButton1Down) - { - switch(iTest->SubState()) - { - case 1: - iTest->TestL(Client()->iGroup->GroupWin()->OrdinalPosition()==1); - iTest->IncSubState(); - break; - } - } - } - -void CMcWindow::Draw() - { - iGc->Clear(); - TBuf<0x40> buf; - switch(iTest->SubState()) - { - case 1: - buf.Copy(_L("Click on me")); - break; - case 0: - case 2: - case 3: - buf.Copy(_L("")); - break; - default: - buf.Copy(_L("ERROR")); - } - iGc->DrawText(buf, TPoint(10,20)); - } - -// -// CMcWindowAf, Auto foreground version of CMcWindow // -// - -CMcWindowAf::CMcWindowAf(TMultiConTest *aTest) : CMcWindowBase(aTest) - { - iBack=TRgb::Gray256(150); - } - -void CMcWindowAf::PointerL(const TPointerEvent &pointer,const TTime &) - { - if (pointer.iType==TPointerEvent::EButton1Down) - { - switch(iTest->SubState()) - { - case 2: - iTest->TestL(Client()->iGroup->GroupWin()->OrdinalPosition()==0); - iTest->IncSubState(); - break; - } - } - } - -void CMcWindowAf::Draw() - { - iGc->Clear(); - TBuf<0x40> buf; - switch(iTest->SubState()) - { - case 1: - case 3: - break; - case 0: - buf.Copy(_L("Press ")); - break; - case 2: - buf.Copy(_L("Click on me")); - break; - default: - buf.Copy(_L("ERROR")); - } - iGc->DrawText(buf, TPoint(10,20)); - } - -// - -CMcWindowGroupAf::CMcWindowGroupAf(CTClient *aClient) : CTWindowGroup(aClient) - {} - -void CMcWindowGroupAf::KeyL(const TKeyEvent &aKey, const TTime &) - { - ((CMcConnectionAf *)iClient)->KeyL(aKey); - } - -// -// CMcWindowDef, Default auto foreground version of CMcWindow // -// - -CMcWindowDef::CMcWindowDef(TMultiConTest *aTest) : CMcWindowBase(aTest) - { - iBack=TRgb::Gray256(236); - } - -void CMcWindowDef::PointerL(const TPointerEvent &pointer,const TTime &) - { - if (pointer.iType==TPointerEvent::EButton1Down) - { - switch(iTest->SubState()) - { - case 3: - iTest->TestL(Client()->iGroup->GroupWin()->OrdinalPosition()==0); - iTest->IncSubState(); - break; - } - } - } - -void CMcWindowDef::Draw() - { - iGc->Clear(); - TBuf<0x40> buf; - switch(iTest->SubState()) - { - case 0: - case 1: - case 2: - break; - case 3: - buf.Copy(_L("Click on me")); - break; - default: - buf.Copy(_L("ERROR")); - } - iGc->DrawText(buf, TPoint(10,20)); - } - -// - -TInt TMultiConTest::SubState() const - { - return(iSubState); - } - -void TMultiConTest::IncSubState() - { - if (iSubState==EMaxSubState) - EndAutoForegroundTest(); - else - { - iSubState++; - iConn1->SubStateChanged(); - iConn2->SubStateChanged(); - iConn3->SubStateChanged(); - } - } - -TestState TMultiConTest::DoTestL() - { - switch(iState) - { - case 0: - LogSubTest(_L("MultiCon 1"),1); - iState++; - return(EContinue); - default: - return(EFinished); - } -// return(ENext); - }