--- a/windowing/windowserver/ttime/TTIME.CPP Fri Jun 11 14:58:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,554 +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:
-// Functions to act as bench marks for various window server features
-//
-//
-
-#include "TTIME.H"
-#include <e32svr.h>
-#include <e32def_private.h>
-typedef TBuf<32> TestNameBuf;
-
-LOCAL_D const TUint KHeapSize=0x10000;
-
-class CTimeClient;
-
-class CResultDialog : public CTDialog
- {
-public:
- CResultDialog(CTWindowGroup *aGroupWin,CWindowGc *aGc);
- void ButtonPressL(TInt aButton);
- void ConstructLD();
-private:
- CTWindowGroup *iGroupWin;
- CWindowGc *iGc;
- };
-
-class CListWindow : public CTTitledWindow
- {
-public:
- CListWindow();
- void CloseWindow();
- void ConstructL(CTWinBase &parent, TBool aExitOnEscape);
- void Draw();
- virtual void SelectedL(TInt aIndex)=0;
- virtual void WinKeyL(const TKeyEvent &aKey,const TTime& aTime);
- void SetExt(const TPoint &aPos, const TSize &aSize);
- void SetSize(const TSize &);
-protected:
- virtual TPtrC GetText(TInt aLine)=0;
- virtual TInt ListCount()=0;
- void SetSize();
-private:
- void Resized(const TSize &aSize);
- void SetListPos(TInt aNewPos);
- TInt TextRowHeight() const;
- void RowBox(TRect &aRect, TInt aRow) const;
- void PointerL(const TPointerEvent &aPointer,const TTime& aTime);
-private:
- TInt iListPos;
- TTime iPrevTime;
- TBool iExitOnEscape;
- };
-
-class CTestList : public CListWindow
- {
-public:
- CTestList();
- ~CTestList();
- void ConstructL(CTWinBase &parent);
- static void AppendProfileNum(TDes &aDes, TInt aNum);
- static void AppendProfileCount(TDes &aDes, TInt aNum);
- void SelectedL(TInt aIndex);
- virtual void WinKeyL(const TKeyEvent &aKey,const TTime& aTime);
- void ForegroundAppDialog();
- void AppendToListL(const TDesC &aDesc);
-private:
- virtual TPtrC GetText(TInt aLine);
- virtual TInt ListCount();
-private:
- TInt iCount;
- CArrayFixSeg<TestNameBuf> iTestNames;
- RThread iTimeTest;
- };
-
-class CTimeTestWindowGroup : public CTWindowGroup
- {
-public:
- CTimeTestWindowGroup(CTClient *aClient);
- void KeyL(const TKeyEvent &aKey,const TTime &aTime);
- };
-
-class CTimeClient : public CTClient
- {
-public:
- CTimeClient();
- void ConstructL();
- void KeyL(const TKeyEvent &aKey,const TTime &aTime);
- void Exit();
- CTWin *CreateTestWindowL(TPoint pos,CTWinBase *parent);
-private:
- TInt iNum;
- };
-
-const TInt Xmove=8;
-const TInt Ymove=6;
-
-GLREF_D TTimeTestHeader MovingWindowTest1;
-GLREF_D TTimeTestHeader MovingWindowTest2;
-GLREF_D TTimeTestHeader StackedWindowCreate;
-GLREF_D TTimeTestHeader WindowCreateDestroy;
-GLREF_D TTimeTestHeader LoadsaText;
-GLREF_D TTimeTestHeader DrawBitmapTest;
-GLREF_D TTimeTestHeader XorIngTest;
-GLREF_D TTimeTestHeader SmallClearTest;
-GLREF_D TTimeTestHeader RectCompareTest;
-GLREF_D TTimeTestHeader SimpleFlushTest;
-GLREF_D TTimeTestHeader SimpleFlushTest2;
-GLREF_D TTimeTestHeader UseFontTest;
-GLREF_D TTimeTestHeader BitBltTest;
-GLREF_D TTimeTestHeader FullScreenBitBltTest;
-GLREF_D TTimeTestHeader MaskedBitBltTest;
-GLREF_D TTimeTestHeader SpriteTest;
-GLREF_D TTimeTestHeader BitmapDeviceTest1;
-GLREF_D TTimeTestHeader BitmapDeviceTest2;
-GLREF_D TTimeTestHeader FillPatternTest;
-GLREF_D TTimeTestHeader BitmapLoadTest;
-GLREF_D TTimeTestHeader WsBitmapLoadTest;
-GLREF_D TTimeTestHeader RomFileTest;
-GLREF_D TTimeTestHeader TrivialFunctionsTest;
-GLREF_D TTimeTestHeader BackupWindowDrawingCreate1;
-GLREF_D TTimeTestHeader BackupWindowDrawingCreate2;
-GLREF_D TTimeTestHeader MenuEmulationCreate;
-GLREF_D TTimeTestHeader MenuEmulationCreate2;
-
-TTimeTestHeader *tests[]={
- &MenuEmulationCreate,
- &MenuEmulationCreate2,
- &BitmapLoadTest,
- &WsBitmapLoadTest,
- &RomFileTest,
- &TrivialFunctionsTest,
- &BackupWindowDrawingCreate1,
- &BackupWindowDrawingCreate2,
- &MovingWindowTest1,
- &MovingWindowTest2,
- &StackedWindowCreate,
-// &WindowCreateDestroy,
- &LoadsaText,
- &DrawBitmapTest,
-// &BitmapDeviceTest1,
-// &BitmapDeviceTest2,
-// &XorIngTest, List getting too big
-// &SmallClearTest, List getting too big
-// &RectCompareTest,
- &SpriteTest,
-// &SimpleFlushTest,
-// &SimpleFlushTest2,
-// &UseFontTest,
- &BitBltTest,
-// &FullScreenBitBltTest,
- &MaskedBitBltTest,
-// &FillPatternTest,
- };
-
-void Panic(TInt aPanic)
- {
- User::Panic(_L("TimeTest"),aPanic);
- }
-
-struct TThreadParams
- {
- TInt iIndex;
- TInt iGroupId;
- };
-
-TInt TimeThread(TAny *aParams)
- {
- CTrapCleanup* CleanUpStack=CTrapCleanup::New();
- //__PROFILE_START(0)
- TInt ret=tests[((TThreadParams *)aParams)->iIndex]->function(((TThreadParams *)aParams)->iGroupId);
- //__PROFILE_END(0)
- delete CleanUpStack;
- return ret;
- }
-
-//
-// List Window //
-//
-
-CListWindow::CListWindow() : CTTitledWindow(), iPrevTime(0)
- {
- }
-
-void CListWindow::CloseWindow()
- {
- CTClient *client=((CTimeClient *)Client());
- delete this;
- client->ResetFocus();
- }
-
-void CListWindow::SetExt(const TPoint &aPos, const TSize &)
- {
- SetPos(aPos);
- }
-
-void CListWindow::SetSize(const TSize &)
- {
- }
-
-void CListWindow::SetSize()
- {
- iSize.iHeight=ListCount()*(iFont->HeightInPixels()+1)+iTitleHeight+2;
- iSize.iWidth=iFont->TextWidthInPixels(*Client()->Title())+30;
- for(TInt index=0;index<ListCount();index++)
- {
- TInt wid=iFont->TextWidthInPixels(GetText(index));
- if (wid>iSize.iWidth)
- iSize.iWidth=wid;
- }
- iSize.iWidth+=4;
- iWin.SetSize(iSize);
- Resized(iSize);
- }
-
-void CListWindow::ConstructL(CTWinBase &parent, TBool aExitOnEscape)
- {
- iExitOnEscape=aExitOnEscape;
- CTTitledWindow::ConstructL(parent);
- }
-
-void CListWindow::SetListPos(TInt aNewPos)
- {
- if (aNewPos>=0 && aNewPos<ListCount())
- {
- iListPos=aNewPos;
- Invalidate();
- }
- }
-
-void CListWindow::WinKeyL(const TKeyEvent &aKey, const TTime&)
- {
- switch(aKey.iCode)
- {
- case EKeyUpArrow:
- SetListPos(iListPos-1);
- break;
- case EKeyDownArrow:
- SetListPos(iListPos+1);
- break;
- case EKeyEnter:
- SelectedL(iListPos);
- break;
- case EKeyEscape: // Fall through from EKeyEnter
- if (iExitOnEscape)
- CloseWindow();
- break;
- }
- }
-
-void CListWindow::PointerL(const TPointerEvent &aPointer,const TTime& aTime)
- {
- if (aPointer.iType==TPointerEvent::EButton1Down)
- {
- TRect rect;
- for(TInt index=0;index<ListCount();index++)
- {
- RowBox(rect,index);
- if (rect.Contains(aPointer.iPosition))
- {
- if (index==iListPos && aPointer.iModifiers&EModifierDoubleClick)
- SelectedL(iListPos);
- else
- {
- iPrevTime=aTime;
- SetListPos(index);
- }
- return;
- }
- }
- }
- CTTitledWindow::PointerL(aPointer,aTime);
- }
-
-TInt CListWindow::TextRowHeight() const
- {
- return(iFont->HeightInPixels()+1);
- }
-
-void CListWindow::RowBox(TRect &aRect, TInt aRow) const
- {
- aRect.iTl.iX=2;
- aRect.iTl.iY=iTitleHeight+TextRowHeight()*aRow;
- aRect.iBr.iX=iSize.iWidth-2;
- aRect.iBr.iY=aRect.iTl.iY+TextRowHeight();
- }
-
-void CListWindow::Draw()
- {
- CTTitledWindow::Draw();
- iGc->SetPenColor(TRgb::Gray16(0));
- TPoint pos(2,iTitleHeight+iFont->AscentInPixels()+2);
- TInt gap=TextRowHeight();
- for(TInt index=0;index<ListCount();index++,pos.iY+=gap)
- {
- iGc->DrawText(GetText(index), pos);
- if (index==iListPos)
- {
- iGc->SetBrushStyle(CGraphicsContext::ESolidBrush);
- iGc->SetBrushColor(TRgb::Gray256(255));
- iGc->SetPenStyle(CGraphicsContext::ENullPen);
- iGc->SetDrawMode(CGraphicsContext::EDrawModeXOR);
- TRect rect;
- RowBox(rect,index);
- iGc->DrawRect(rect);
- iGc->SetBrushStyle(CGraphicsContext::ENullBrush);
- iGc->SetPenStyle(CGraphicsContext::ESolidPen);
- iGc->SetDrawMode(CGraphicsContext::EDrawModePEN);
- }
- }
- }
-
-void CListWindow::Resized(const TSize &aSize)
- {
- SetDragRect(TRect(0,0,aSize.iWidth,iTitleHeight));
- }
-
-//
-// Test list window
-//
-
-CTestList::CTestList() : CListWindow(), iTestNames(4)
- {
- }
-
-CTestList::~CTestList()
- {
- }
-
-void CTestList::ConstructL(CTWinBase &parent)
- {
- CListWindow::ConstructL(parent, EFalse);
- for(TUint index=0;index<(sizeof(tests)/sizeof(tests[0]));index++)
- AppendToListL(TPtrC(tests[index]->title));
- SetSize();
- /*for(TUint index1=0;index1<(sizeof(tests)/sizeof(tests[0]));index1++)
- Selected(index1);*/
- }
-
-void CTestList::AppendProfileNum(TDes &aDes, TInt aNum)
- {
- aDes.AppendFormat(_L("%d.%02d, "),aNum/1000000,(aNum%1000000)/10000);
- }
-
-void CTestList::AppendProfileCount(TDes &aDes, TInt aNum)
- {
- aDes.AppendFormat(_L("%d, "),aNum);
- }
-
-#define USE_PROCESS 1
-
-void CTestList::SelectedL(TInt aIndex)
- {
-#if USE_PROCESS
- TThreadParams params;
- params.iIndex=aIndex;
- TName name;
- name.Format(_L("TimeTest-%x"),iCount++);
- params.iGroupId=Client()->iGroup->GroupWin()->Identifier();
- User::LeaveIfError(iTimeTest.Create(name,TimeThread,KDefaultStackSize*2,KHeapSize,KHeapSize,¶ms,EOwnerThread));
- TRequestStatus status;
- iTimeTest.Logon(status);
- __PROFILE_RESET(8);
- iTimeTest.Resume();
- User::WaitForRequest(status);
-#else
- TThreadParams params;
- params.iIndex=aIndex;
- TimeThread(¶ms);
-#endif
- TBuf<64> buf;
- TBuf<64> buf2;
- TBuf<64> buf3;
- CResultDialog *dialog=new(ELeave) CResultDialog(Client()->iGroup, iGc);
- dialog->ConstructLD();
-#if USE_PROCESS
- if (status.Int()==KErrNone)
- {
-#endif
-#if !defined(__PROFILING__)
- buf=_L("Profiling information not available");
-#else
- TProfile profile[6];
- __PROFILE_DISPLAY(6);
- for (TInt index=1;index<6;index++)
- AppendProfileNum(buf2,profile[index].iTime);
- for (TInt index2=1;index2<6;index2++)
- AppendProfileCount(buf3,profile[index2].iCount);
- buf.Format(_L("Time=%d.%2d"),profile[0].iTime/1000000,(profile[0].iTime%1000000)/10000);
-#endif
- dialog->SetTitle(buf);
-#if USE_PROCESS
- }
- else
- {
- dialog->SetTitle(_L("Error in test"));
- buf.Format(_L("Error=%d"),status.Int());
- buf2=iTimeTest.ExitCategory();
- }
-#endif
- dialog->SetLine1(buf2);
- dialog->SetLine2(buf3);
- dialog->SetNumButtons(1);
- dialog->SetButtonText(0,_L("Okay"));
- if (dialog->Display()!=0)
- Panic(0);
- }
-
-TPtrC CTestList::GetText(TInt aLine)
- {
- return(TPtrC(iTestNames[aLine]));
- }
-
-TInt CTestList::ListCount()
- {
- return(iTestNames.Count());
- }
-
-void CTestList::WinKeyL(const TKeyEvent &aKey,const TTime& aTime)
- {
- if (aKey.iModifiers&EModifierFunc)
- {
- switch(aKey.iCode)
- {
- case EKeyLeftArrow:
- AdjustSize(-Xmove,0,aKey.iModifiers);
- break;
- case EKeyRightArrow:
- AdjustSize(Xmove,0,aKey.iModifiers);
- break;
- case EKeyUpArrow:
- AdjustSize(0,-Ymove,aKey.iModifiers);
- break;
- case EKeyDownArrow:
- AdjustSize(0,Ymove,aKey.iModifiers);
- break;
- default:
- goto not_used;
- }
- }
- else
- goto not_used;
- return;
-not_used:
- CListWindow::WinKeyL(aKey,aTime);
- }
-
-void CTestList::AppendToListL(const TDesC &aDesc)
- {
- TestNameBuf buf(aDesc);
- iTestNames.AppendL(buf);
- }
-
-//
-
-CResultDialog::CResultDialog(CTWindowGroup *aGroupWin,CWindowGc *aGc) : CTDialog(),
- iGroupWin(aGroupWin),
- iGc(aGc)
- {
- }
-
-void CResultDialog::ButtonPressL(TInt aButton)
- {
- if (aButton==0)
- CTDialog::ButtonPressL(aButton);
- }
-
-void CResultDialog::ConstructLD()
- {
- CTDialog::ConstructLD(*iGroupWin, *iGc);
- }
-
-//
-// CTimeTestWindowGroup class //
-//
-
-CTimeTestWindowGroup::CTimeTestWindowGroup(CTClient *aClient) : CTWindowGroup(aClient)
- {
- }
-
-void CTimeTestWindowGroup::KeyL(const TKeyEvent &aKey,const TTime &aTime)
- {
- if (aKey.iModifiers&EModifierFunc)
- {
- switch(aKey.iCode)
- {
- case 'x':
- ((CTimeClient *)Client())->Exit();
- break;
- }
- }
- else
- iCurWin->WinKeyL(aKey,aTime);
- }
-
-//
-
-CTimeClient::CTimeClient()
- {
- }
-
-CTWin *CTimeClient::CreateTestWindowL(TPoint pos,CTWinBase *parent)
- {
- CTWin *win=new(ELeave) CTestList();
- TRAPD(err,win->ConstructL(*parent));
- if (err!=KErrNone)
- goto ctw_err;
- TRAP(err,win->SetPos(pos));
- if (err!=KErrNone)
- {
-ctw_err:
- delete win;
- User::Leave(err);
- }
- win->Activate();
- win->AssignGC(*iGc);
- return(win);
- }
-
-void CTimeClient::ConstructL()
- {
- CTClient::ConstructL();
-
- iGroup=new(ELeave) CTimeTestWindowGroup(this);
- iGroup->ConstructL();
-
- CreateTestWindowL(TPoint(30,4),iGroup);
- iGroup->SetCurrentWindow(iGroup->Child());
- }
-
-void CTimeClient::Exit()
- {
- CActiveScheduler::Stop();
- }
-
-GLDEF_C CTClient *CreateClientL()
- {
- return(new(ELeave) CTimeClient());
- }
-
-GLDEF_C TInt E32Main()
- {
- return(TestLibStartUp(CreateClientL));
- }