windowing/windowserver/test/tauto/TBACKUPW.CPP
author hgs
Tue, 22 Jun 2010 15:21:29 +0300
changeset 103 2717213c588a
permissions -rw-r--r--
201024
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
103
hgs
parents:
diff changeset
     1
// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     2
// All rights reserved.
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     7
//
hgs
parents:
diff changeset
     8
// Initial Contributors:
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    10
//
hgs
parents:
diff changeset
    11
// Contributors:
hgs
parents:
diff changeset
    12
//
hgs
parents:
diff changeset
    13
// Description:
hgs
parents:
diff changeset
    14
// Test backed up windows
hgs
parents:
diff changeset
    15
// 
hgs
parents:
diff changeset
    16
//
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
/**
hgs
parents:
diff changeset
    19
 @file
hgs
parents:
diff changeset
    20
 @test
hgs
parents:
diff changeset
    21
 @internalComponent - Internal Symbian test code
hgs
parents:
diff changeset
    22
*/
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
#include "TBACKUPW.H"
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
CTBackedUpWindow::CTBackedUpWindow(CTestStep* aStep):
hgs
parents:
diff changeset
    27
	CTWsGraphicsBase(aStep)
hgs
parents:
diff changeset
    28
	{
hgs
parents:
diff changeset
    29
	}
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
void CTBackedUpWindow::CheckWindow(CFbsBitmap *aBitmap)
hgs
parents:
diff changeset
    33
	{
hgs
parents:
diff changeset
    34
	TPoint oldPos=iBackedUpWindow.Position();
hgs
parents:
diff changeset
    35
	iBackedUpWindow.SetPosition(TPoint(0,0));
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
	iCheckWindow.SetVisible(ETrue);
hgs
parents:
diff changeset
    38
	iCheckWindow.SetPosition(iCheckPos);
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
	iCheckWindow.BeginRedraw();
hgs
parents:
diff changeset
    41
	TheGc->Activate(iCheckWindow);
hgs
parents:
diff changeset
    42
	TheGc->BitBlt(TPoint(0,0), aBitmap);
hgs
parents:
diff changeset
    43
	TheGc->Deactivate();
hgs
parents:
diff changeset
    44
	iCheckWindow.EndRedraw();
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
	TheClient->iWs.Flush();
hgs
parents:
diff changeset
    47
	TheClient->WaitForRedrawsToFinish();
hgs
parents:
diff changeset
    48
	TBool retVal = TheClient->iScreen->RectCompare(TRect(iSize),TRect(iCheckPos,iSize));
hgs
parents:
diff changeset
    49
	TEST(retVal);
hgs
parents:
diff changeset
    50
	if (!retVal)
hgs
parents:
diff changeset
    51
		INFO_PRINTF3(_L("TheClient->iScreen->RectCompare(TRect(iSize),TRect(iCheckPos,iSize)) return value - Expected: %d , Actual: %d"), ETrue, retVal);		
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
	iCheckWindow.SetVisible(EFalse);
hgs
parents:
diff changeset
    54
	iBackedUpWindow.SetPosition(oldPos);
hgs
parents:
diff changeset
    55
	}
hgs
parents:
diff changeset
    56
hgs
parents:
diff changeset
    57
void CTBackedUpWindow::CheckWindow()
hgs
parents:
diff changeset
    58
	{
hgs
parents:
diff changeset
    59
	CheckWindow(&iBitmap);
hgs
parents:
diff changeset
    60
	}
hgs
parents:
diff changeset
    61
hgs
parents:
diff changeset
    62
void CTBackedUpWindow::Draw(TInt aDrawFunc, TAny *aParam)
hgs
parents:
diff changeset
    63
	{
hgs
parents:
diff changeset
    64
	TheGc->Activate(iBackedUpWindow);
hgs
parents:
diff changeset
    65
	Draw(aDrawFunc, aParam, TheGc, iBitGc);
hgs
parents:
diff changeset
    66
	TheGc->Deactivate();
hgs
parents:
diff changeset
    67
	}
hgs
parents:
diff changeset
    68
hgs
parents:
diff changeset
    69
void CTBackedUpWindow::DrawWithTwoGcsL()
hgs
parents:
diff changeset
    70
	{
hgs
parents:
diff changeset
    71
	RBlankWindow blank(TheClient->iWs);
hgs
parents:
diff changeset
    72
	User::LeaveIfError(blank.Construct(*(TheClient->iGroup->GroupWin()),ENullWsHandle));
hgs
parents:
diff changeset
    73
	blank.Activate();
hgs
parents:
diff changeset
    74
	CWindowGc *gc2;
hgs
parents:
diff changeset
    75
	User::LeaveIfError(TheClient->iScreen->CreateContext(gc2));
hgs
parents:
diff changeset
    76
	CleanupStack::PushL(gc2);
hgs
parents:
diff changeset
    77
hgs
parents:
diff changeset
    78
	CFbsFont *font1;
hgs
parents:
diff changeset
    79
	TFontSpec fspec(KTestFontTypefaceName,200);
hgs
parents:
diff changeset
    80
	User::LeaveIfError(TheClient->iScreen->GetNearestFontToDesignHeightInTwips((CFont *&)font1,fspec));
hgs
parents:
diff changeset
    81
	CFbsFont *font2;
hgs
parents:
diff changeset
    82
	TFontSpec fspec2(KTestFontTypefaceName,400);
hgs
parents:
diff changeset
    83
	User::LeaveIfError(TheClient->iScreen->GetNearestFontToDesignHeightInTwips((CFont *&)font2,fspec2));
hgs
parents:
diff changeset
    84
hgs
parents:
diff changeset
    85
	gc2->Activate(iBackedUpWindow);
hgs
parents:
diff changeset
    86
	gc2->UseFont(font2);
hgs
parents:
diff changeset
    87
	TheGc->Activate(iBackedUpWindow);
hgs
parents:
diff changeset
    88
	TheGc->UseFont(font1);
hgs
parents:
diff changeset
    89
	_LIT(KText,"Testing123");
hgs
parents:
diff changeset
    90
	TheGc->DrawText(KText,TPoint(20,20));
hgs
parents:
diff changeset
    91
	gc2->DrawText(KText,TPoint(20,40));
hgs
parents:
diff changeset
    92
	iBitGc->UseFont(font1);
hgs
parents:
diff changeset
    93
	iBitGc->DrawText(KText,TPoint(20,20));
hgs
parents:
diff changeset
    94
	iBitGc->UseFont(font2);
hgs
parents:
diff changeset
    95
	iBitGc->DrawText(KText,TPoint(20,40));
hgs
parents:
diff changeset
    96
	iBitGc->DiscardFont();
hgs
parents:
diff changeset
    97
	TheGc->Deactivate();
hgs
parents:
diff changeset
    98
	TheClient->iScreen->ReleaseFont(font2);
hgs
parents:
diff changeset
    99
	TheClient->iScreen->ReleaseFont(font1);
hgs
parents:
diff changeset
   100
	CleanupStack::PopAndDestroy();
hgs
parents:
diff changeset
   101
	blank.Close();
hgs
parents:
diff changeset
   102
	}
hgs
parents:
diff changeset
   103
hgs
parents:
diff changeset
   104
void CTBackedUpWindow::Draw(TInt aDrawFunc, TAny *aParam, CBitmapContext *gc1, CBitmapContext *gc2)			//DDD
hgs
parents:
diff changeset
   105
	{
hgs
parents:
diff changeset
   106
	CBitmapContext *gc;
hgs
parents:
diff changeset
   107
	for(TInt mode=0;mode<2;mode++)
hgs
parents:
diff changeset
   108
		{
hgs
parents:
diff changeset
   109
		if (mode==0)
hgs
parents:
diff changeset
   110
			gc=gc1;
hgs
parents:
diff changeset
   111
		else
hgs
parents:
diff changeset
   112
			gc=gc2;
hgs
parents:
diff changeset
   113
		gc->Reset();
hgs
parents:
diff changeset
   114
		switch(aDrawFunc)
hgs
parents:
diff changeset
   115
			{
hgs
parents:
diff changeset
   116
			case 0:
hgs
parents:
diff changeset
   117
				gc->SetBrushColor(*((TRgb *)aParam));
hgs
parents:
diff changeset
   118
				gc->SetBrushStyle(CGraphicsContext::ESolidBrush);
hgs
parents:
diff changeset
   119
				gc->SetPenStyle(CGraphicsContext::ENullPen);
hgs
parents:
diff changeset
   120
				gc->DrawRect(TRect(iSize));
hgs
parents:
diff changeset
   121
				break;
hgs
parents:
diff changeset
   122
			case 1:
hgs
parents:
diff changeset
   123
				{
hgs
parents:
diff changeset
   124
				TSize half(iSize.iWidth/2,iSize.iHeight/2);
hgs
parents:
diff changeset
   125
				gc->DrawEllipse(TRect(half));
hgs
parents:
diff changeset
   126
				gc->DrawEllipse(TRect(TPoint(0,half.iHeight),half));
hgs
parents:
diff changeset
   127
				TRect rect1(half);
hgs
parents:
diff changeset
   128
				gc->SetOrigin(TPoint(half.iWidth,0));
hgs
parents:
diff changeset
   129
				gc->SetClippingRect(rect1);
hgs
parents:
diff changeset
   130
				gc->DrawEllipse(rect1);
hgs
parents:
diff changeset
   131
				gc->SetOrigin(TPoint(half.iWidth,half.iHeight));
hgs
parents:
diff changeset
   132
				gc->SetClippingRect(rect1);
hgs
parents:
diff changeset
   133
				gc->DrawEllipse(rect1);
hgs
parents:
diff changeset
   134
				gc->SetOrigin(TPoint(0,0));
hgs
parents:
diff changeset
   135
				gc->CancelClippingRect();
hgs
parents:
diff changeset
   136
				}
hgs
parents:
diff changeset
   137
				break;
hgs
parents:
diff changeset
   138
			case 2:
hgs
parents:
diff changeset
   139
				{
hgs
parents:
diff changeset
   140
				TInt param= *((TInt *)aParam);
hgs
parents:
diff changeset
   141
				if (param&0x1)
hgs
parents:
diff changeset
   142
					gc->DrawLine(TPoint(param+(param*27)%iSize.iWidth,0),
hgs
parents:
diff changeset
   143
								 TPoint(iSize.iWidth-((param<<1)+(param*19)%iSize.iWidth),iSize.iHeight));
hgs
parents:
diff changeset
   144
				else
hgs
parents:
diff changeset
   145
					gc->DrawLine(TPoint(0, (param<<1)+(param*7)%iSize.iHeight),
hgs
parents:
diff changeset
   146
								 TPoint(iSize.iWidth,param+(param*13)%iSize.iHeight));
hgs
parents:
diff changeset
   147
				}
hgs
parents:
diff changeset
   148
				break;
hgs
parents:
diff changeset
   149
			case 3:
hgs
parents:
diff changeset
   150
				{
hgs
parents:
diff changeset
   151
				TPoint pos;
hgs
parents:
diff changeset
   152
				for(;pos.iX<iSize.iWidth;pos.iX+=10)
hgs
parents:
diff changeset
   153
					gc->DrawLine(pos,pos+TSize(0,iSize.iHeight));
hgs
parents:
diff changeset
   154
				for(pos.iX=0;pos.iY<iSize.iHeight;pos.iY+=10)
hgs
parents:
diff changeset
   155
					gc->DrawLine(pos,pos+TSize(iSize.iWidth,0));
hgs
parents:
diff changeset
   156
				}
hgs
parents:
diff changeset
   157
				break;
hgs
parents:
diff changeset
   158
			}
hgs
parents:
diff changeset
   159
		}
hgs
parents:
diff changeset
   160
	}
hgs
parents:
diff changeset
   161
hgs
parents:
diff changeset
   162
CTBackedUpWindow::~CTBackedUpWindow()
hgs
parents:
diff changeset
   163
	{
hgs
parents:
diff changeset
   164
	iBackedUpWindow.Close();
hgs
parents:
diff changeset
   165
	iCheckWindow.Close();
hgs
parents:
diff changeset
   166
	iOomFrontWindow.Close();
hgs
parents:
diff changeset
   167
	delete iBitGc;
hgs
parents:
diff changeset
   168
	delete iBitmapDevice;
hgs
parents:
diff changeset
   169
	delete iTestBitmap;
hgs
parents:
diff changeset
   170
	delete iMaskBitmap;
hgs
parents:
diff changeset
   171
	}
hgs
parents:
diff changeset
   172
hgs
parents:
diff changeset
   173
void CopyToGray4L(CFbsBitmap*& aDestBitmap,const CFbsBitmap& aSrcBitmap)
hgs
parents:
diff changeset
   174
	{
hgs
parents:
diff changeset
   175
	aDestBitmap=new(ELeave) CFbsBitmap();
hgs
parents:
diff changeset
   176
	CleanupStack::PushL(aDestBitmap);
hgs
parents:
diff changeset
   177
	User::LeaveIfError(aDestBitmap->Create(aSrcBitmap.SizeInPixels(),EGray4));
hgs
parents:
diff changeset
   178
	CFbsBitmapDevice* device=CFbsBitmapDevice::NewL(aDestBitmap);
hgs
parents:
diff changeset
   179
	CleanupStack::PushL(device);
hgs
parents:
diff changeset
   180
	CFbsBitGc* gc;
hgs
parents:
diff changeset
   181
	User::LeaveIfError(device->CreateContext(gc));
hgs
parents:
diff changeset
   182
	gc->BitBlt(TPoint(),&aSrcBitmap);
hgs
parents:
diff changeset
   183
	delete gc;
hgs
parents:
diff changeset
   184
	CleanupStack::PopAndDestroy(device);
hgs
parents:
diff changeset
   185
	CleanupStack::Pop(aDestBitmap);
hgs
parents:
diff changeset
   186
	}
hgs
parents:
diff changeset
   187
hgs
parents:
diff changeset
   188
void CTBackedUpWindow::ConstructL()
hgs
parents:
diff changeset
   189
	{
hgs
parents:
diff changeset
   190
	iBackedUpWindow=RBackedUpWindow(TheClient->iWs);
hgs
parents:
diff changeset
   191
	iBackedUpWindow.Construct(*(TheClient->iGroup->GroupWin()),EGray4,ENullWsHandle);
hgs
parents:
diff changeset
   192
	TSize size=TheClient->iScreen->SizeInTwips();
hgs
parents:
diff changeset
   193
	iSize=TheClient->iScreen->SizeInPixels();
hgs
parents:
diff changeset
   194
	iSize.iWidth>>=1;
hgs
parents:
diff changeset
   195
	iSize.iHeight>>=1;
hgs
parents:
diff changeset
   196
	size.iWidth>>=1;
hgs
parents:
diff changeset
   197
	size.iHeight>>=1;
hgs
parents:
diff changeset
   198
	size.iWidth-=1;			//Modification to get the mapping factor the same as the screen
hgs
parents:
diff changeset
   199
	size.iHeight-=1;		//Ditto
hgs
parents:
diff changeset
   200
	iWinPos.SetXY(iSize.iWidth>>1,iSize.iHeight>>1);
hgs
parents:
diff changeset
   201
	User::LeaveIfError(iBackedUpWindow.SetExtentErr(iWinPos,iSize));
hgs
parents:
diff changeset
   202
	iBackedUpWindow.Activate();
hgs
parents:
diff changeset
   203
hgs
parents:
diff changeset
   204
	iCheckPos.SetXY(iSize.iWidth,0);
hgs
parents:
diff changeset
   205
	iCheckWindow=RWindow(TheClient->iWs);
hgs
parents:
diff changeset
   206
	iCheckWindow.Construct(*(TheClient->iGroup->GroupWin()),ENullWsHandle);
hgs
parents:
diff changeset
   207
	iCheckWindow.SetSize(iSize);
hgs
parents:
diff changeset
   208
	iCheckWindow.SetVisible(EFalse);
hgs
parents:
diff changeset
   209
	iCheckWindow.Activate();
hgs
parents:
diff changeset
   210
hgs
parents:
diff changeset
   211
	TInt col,grey;
hgs
parents:
diff changeset
   212
	TDisplayMode defMode=TheClient->iWs.GetDefModeMaxNumColors(col,grey);
hgs
parents:
diff changeset
   213
	User::LeaveIfError(iBitmap.Create(iSize,defMode));
hgs
parents:
diff changeset
   214
	iBitmap.SetSizeInTwips(size);
hgs
parents:
diff changeset
   215
	iBitmapDevice=CFbsBitmapDevice::NewL(&iBitmap);
hgs
parents:
diff changeset
   216
	User::LeaveIfError(iBitmapDevice->CreateContext(iBitGc));
hgs
parents:
diff changeset
   217
hgs
parents:
diff changeset
   218
	TRgb rgb(TRgb::Gray4(2));
hgs
parents:
diff changeset
   219
	Draw(0,&rgb);
hgs
parents:
diff changeset
   220
hgs
parents:
diff changeset
   221
	iTestBitmap=new(ELeave) CFbsBitmap();
hgs
parents:
diff changeset
   222
  	User::LeaveIfError(iTestBitmap->Load(TEST_BITMAP_NAME,0));
hgs
parents:
diff changeset
   223
	iTestBitmap->SetSizeInTwips(TSize(1500,750));
hgs
parents:
diff changeset
   224
	iMaskBitmap=new(ELeave) CFbsBitmap();
hgs
parents:
diff changeset
   225
  	User::LeaveIfError(iMaskBitmap->Load(TEST_BITMAP_NAME,0));
hgs
parents:
diff changeset
   226
  	TDisplayMode defMode2=iMaskBitmap->DisplayMode();
hgs
parents:
diff changeset
   227
  	if (defMode>EGray4)
hgs
parents:
diff changeset
   228
		{
hgs
parents:
diff changeset
   229
		CFbsBitmap* bitmap=iTestBitmap;
hgs
parents:
diff changeset
   230
		CopyToGray4L(iTestBitmap,*bitmap);
hgs
parents:
diff changeset
   231
		delete bitmap;
hgs
parents:
diff changeset
   232
		bitmap=iMaskBitmap;
hgs
parents:
diff changeset
   233
		CopyToGray4L(iMaskBitmap,*bitmap);
hgs
parents:
diff changeset
   234
		delete bitmap;
hgs
parents:
diff changeset
   235
		}
hgs
parents:
diff changeset
   236
	defMode2=iMaskBitmap->DisplayMode();
hgs
parents:
diff changeset
   237
	defMode2=iMaskBitmap->DisplayMode();	
hgs
parents:
diff changeset
   238
	}
hgs
parents:
diff changeset
   239
hgs
parents:
diff changeset
   240
void CTBackedUpWindow::InvisVis()
hgs
parents:
diff changeset
   241
	{
hgs
parents:
diff changeset
   242
	iBackedUpWindow.SetVisible(EFalse);
hgs
parents:
diff changeset
   243
	TheClient->iWs.Flush();
hgs
parents:
diff changeset
   244
	iBackedUpWindow.SetVisible(ETrue);
hgs
parents:
diff changeset
   245
	TheClient->iWs.Flush();
hgs
parents:
diff changeset
   246
	}
hgs
parents:
diff changeset
   247
hgs
parents:
diff changeset
   248
void CTBackedUpWindow::WindowOnTop()
hgs
parents:
diff changeset
   249
	{
hgs
parents:
diff changeset
   250
	RBlankWindow blank(TheClient->iWs);
hgs
parents:
diff changeset
   251
	blank.Construct(*(TheClient->iGroup->GroupWin()),ENullWsHandle);
hgs
parents:
diff changeset
   252
	blank.Activate();
hgs
parents:
diff changeset
   253
	blank.Close();
hgs
parents:
diff changeset
   254
	TheClient->iWs.Flush();
hgs
parents:
diff changeset
   255
hgs
parents:
diff changeset
   256
	TPoint pos;
hgs
parents:
diff changeset
   257
	TInt sizeMode=0;
hgs
parents:
diff changeset
   258
	TInt draw=13;
hgs
parents:
diff changeset
   259
hgs
parents:
diff changeset
   260
	for(pos.iX=-iSize.iWidth;pos.iX<iSize.iWidth;pos.iX+=50)
hgs
parents:
diff changeset
   261
		for(pos.iY=-iSize.iHeight;pos.iY<iSize.iHeight;pos.iY+=50)
hgs
parents:
diff changeset
   262
			{
hgs
parents:
diff changeset
   263
			blank=RBlankWindow(TheClient->iWs);
hgs
parents:
diff changeset
   264
			blank.Construct(*(TheClient->iGroup->GroupWin()),ENullWsHandle);
hgs
parents:
diff changeset
   265
			blank.SetColor(TRgb::Gray256(220));
hgs
parents:
diff changeset
   266
			blank.SetShadowHeight(2);
hgs
parents:
diff changeset
   267
			blank.SetExtent(pos+iWinPos,TSize((sizeMode&0x1)?iSize.iWidth>>1:iSize.iWidth<<1,(sizeMode&0x2)?iSize.iHeight>>1:iSize.iHeight<<1));
hgs
parents:
diff changeset
   268
			sizeMode=(sizeMode+1)%4;
hgs
parents:
diff changeset
   269
			blank.Activate();
hgs
parents:
diff changeset
   270
			Draw(2,&draw);
hgs
parents:
diff changeset
   271
			TheClient->iWs.Flush();
hgs
parents:
diff changeset
   272
			draw++;
hgs
parents:
diff changeset
   273
			blank.Close();
hgs
parents:
diff changeset
   274
			}
hgs
parents:
diff changeset
   275
	}
hgs
parents:
diff changeset
   276
hgs
parents:
diff changeset
   277
void CTBackedUpWindow::Resize()
hgs
parents:
diff changeset
   278
	{
hgs
parents:
diff changeset
   279
	RBlankWindow blank(TheClient->iWs);
hgs
parents:
diff changeset
   280
	blank.Construct(*(TheClient->iGroup->GroupWin()),ENullWsHandle);
hgs
parents:
diff changeset
   281
	blank.SetColor(TRgb::Gray256(128));
hgs
parents:
diff changeset
   282
	blank.Activate();
hgs
parents:
diff changeset
   283
	TInt xtop=(iSize.iWidth)-(iSize.iWidth>>2);
hgs
parents:
diff changeset
   284
	TInt ytop=(iSize.iHeight)-(iSize.iHeight>>2);
hgs
parents:
diff changeset
   285
	for(TInt winMode=0;winMode<3;winMode++)
hgs
parents:
diff changeset
   286
		{
hgs
parents:
diff changeset
   287
		switch(winMode)
hgs
parents:
diff changeset
   288
			{
hgs
parents:
diff changeset
   289
			case 0:
hgs
parents:
diff changeset
   290
				blank.SetExtent(TPoint(0,ytop),TSize(iSize.iWidth,iSize.iHeight>>1));
hgs
parents:
diff changeset
   291
				break;
hgs
parents:
diff changeset
   292
			case 1:
hgs
parents:
diff changeset
   293
				blank.SetExtent(TPoint(xtop,0),TSize(iSize.iWidth>>1,iSize.iHeight));
hgs
parents:
diff changeset
   294
				break;
hgs
parents:
diff changeset
   295
			case 2:
hgs
parents:
diff changeset
   296
				blank.SetExtent(TPoint(xtop,ytop),TSize(iSize.iWidth>>1,iSize.iHeight>>1));
hgs
parents:
diff changeset
   297
				break;
hgs
parents:
diff changeset
   298
			}
hgs
parents:
diff changeset
   299
		blank.SetShadowHeight(winMode);
hgs
parents:
diff changeset
   300
		TPoint oldPos=iBackedUpWindow.Position();
hgs
parents:
diff changeset
   301
		TPoint pos=oldPos;
hgs
parents:
diff changeset
   302
		for(TUint i=0;i<sizeof(moveList)/sizeof(moveList[0]);i++)
hgs
parents:
diff changeset
   303
			{
hgs
parents:
diff changeset
   304
			pos+=moveList[i];
hgs
parents:
diff changeset
   305
			iBackedUpWindow.SetPosition(pos);
hgs
parents:
diff changeset
   306
			TheClient->iWs.Flush();
hgs
parents:
diff changeset
   307
			}
hgs
parents:
diff changeset
   308
		iBackedUpWindow.SetPosition(oldPos);
hgs
parents:
diff changeset
   309
		}
hgs
parents:
diff changeset
   310
	blank.Close();
hgs
parents:
diff changeset
   311
	}
hgs
parents:
diff changeset
   312
hgs
parents:
diff changeset
   313
void CTBackedUpWindow::ChildWindows()
hgs
parents:
diff changeset
   314
	{
hgs
parents:
diff changeset
   315
	TPoint pos;
hgs
parents:
diff changeset
   316
	TInt sizeMode=0;
hgs
parents:
diff changeset
   317
	TInt draw=13;
hgs
parents:
diff changeset
   318
	RBlankWindow blank(TheClient->iWs);
hgs
parents:
diff changeset
   319
	for(pos.iX=-(iSize.iWidth>>1);pos.iX<iSize.iWidth;pos.iX+=33)
hgs
parents:
diff changeset
   320
		for(pos.iY=-(iSize.iHeight>>1);pos.iY<iSize.iHeight;pos.iY+=33)
hgs
parents:
diff changeset
   321
			{
hgs
parents:
diff changeset
   322
			blank.Construct(iBackedUpWindow,ENullWsHandle);
hgs
parents:
diff changeset
   323
			blank.SetColor(TRgb::Gray256(220));
hgs
parents:
diff changeset
   324
			blank.SetShadowHeight(2);
hgs
parents:
diff changeset
   325
			blank.SetExtent(pos,TSize((sizeMode&0x1)?iSize.iWidth>>2:iSize.iWidth,(sizeMode&0x2)?iSize.iHeight>>2:iSize.iHeight));
hgs
parents:
diff changeset
   326
			sizeMode=(sizeMode+1)%4;
hgs
parents:
diff changeset
   327
			blank.Activate();
hgs
parents:
diff changeset
   328
			Draw(2,&draw);
hgs
parents:
diff changeset
   329
			TheClient->iWs.Flush();
hgs
parents:
diff changeset
   330
			draw++;
hgs
parents:
diff changeset
   331
			blank.Close();
hgs
parents:
diff changeset
   332
			}
hgs
parents:
diff changeset
   333
	}
hgs
parents:
diff changeset
   334
hgs
parents:
diff changeset
   335
void CTBackedUpWindow::DupBitmapTestL()
hgs
parents:
diff changeset
   336
	{
hgs
parents:
diff changeset
   337
	INFO_PRINTF1(_L("AUTO  Dup Bitmap Test "));
hgs
parents:
diff changeset
   338
	CFbsBitmap *dup=new(ELeave) CFbsBitmap();
hgs
parents:
diff changeset
   339
	dup->Duplicate(iBackedUpWindow.BitmapHandle());
hgs
parents:
diff changeset
   340
	CheckWindow(dup);
hgs
parents:
diff changeset
   341
	TRgb rgb(TRgb::Gray4(1));
hgs
parents:
diff changeset
   342
	Draw(0,&rgb);
hgs
parents:
diff changeset
   343
	CheckWindow(dup);
hgs
parents:
diff changeset
   344
	INFO_PRINTF1(_L(" Done Window Drawing Test"));
hgs
parents:
diff changeset
   345
hgs
parents:
diff changeset
   346
	CFbsBitmapDevice *dupDevice=NULL;
hgs
parents:
diff changeset
   347
	TRAPD(err,dupDevice=CFbsBitmapDevice::NewL(dup));
hgs
parents:
diff changeset
   348
	CFbsBitGc *gc;
hgs
parents:
diff changeset
   349
	if (err==KErrNone && dupDevice->CreateContext(gc)==KErrNone)
hgs
parents:
diff changeset
   350
		{
hgs
parents:
diff changeset
   351
		Draw(3,NULL,gc,iBitGc);		// Draw directly to backup bitmap (and test bitmap)
hgs
parents:
diff changeset
   352
		iBackedUpWindow.UpdateScreen();
hgs
parents:
diff changeset
   353
		INFO_PRINTF1(_L(" First Bitmap Drawing"));
hgs
parents:
diff changeset
   354
		CheckWindow();
hgs
parents:
diff changeset
   355
		TRgb rgb(TRgb::Gray256(128));
hgs
parents:
diff changeset
   356
		TInt col,grey;
hgs
parents:
diff changeset
   357
		if (TheClient->iWs.GetDefModeMaxNumColors(col,grey)>EGray4)
hgs
parents:
diff changeset
   358
			rgb=TRgb::Gray4(2);
hgs
parents:
diff changeset
   359
		Draw(0,&rgb,gc,iBitGc);
hgs
parents:
diff changeset
   360
		Draw(1,NULL,gc,iBitGc);
hgs
parents:
diff changeset
   361
		iBackedUpWindow.UpdateScreen(TRegionFix<1>(TRect(iSize)));
hgs
parents:
diff changeset
   362
		INFO_PRINTF1(_L(" Second Bitmap Drawing"));
hgs
parents:
diff changeset
   363
		CheckWindow();
hgs
parents:
diff changeset
   364
		delete gc;
hgs
parents:
diff changeset
   365
		}
hgs
parents:
diff changeset
   366
	delete dupDevice;
hgs
parents:
diff changeset
   367
	delete dup;
hgs
parents:
diff changeset
   368
	}
hgs
parents:
diff changeset
   369
hgs
parents:
diff changeset
   370
void CTBackedUpWindow::UpdateBitmapTestL()
hgs
parents:
diff changeset
   371
	{
hgs
parents:
diff changeset
   372
	INFO_PRINTF1(_L("AUTO  UpdateBitmap "));
hgs
parents:
diff changeset
   373
	CheckWindow();
hgs
parents:
diff changeset
   374
	CFbsBitmap *dup=new(ELeave) CFbsBitmap();
hgs
parents:
diff changeset
   375
	dup->Duplicate(iBackedUpWindow.BitmapHandle());
hgs
parents:
diff changeset
   376
	Draw(3,NULL);
hgs
parents:
diff changeset
   377
	iBackedUpWindow.UpdateBackupBitmap();
hgs
parents:
diff changeset
   378
	INFO_PRINTF1(_L(" First Drawing"));
hgs
parents:
diff changeset
   379
	CheckWindow(dup);
hgs
parents:
diff changeset
   380
	TRgb rgb;
hgs
parents:
diff changeset
   381
	if (iSupState==0)
hgs
parents:
diff changeset
   382
		rgb=TRgb::Gray256(128);
hgs
parents:
diff changeset
   383
	else
hgs
parents:
diff changeset
   384
		rgb=TRgb::Gray4(2);
hgs
parents:
diff changeset
   385
	Draw(0,&rgb);
hgs
parents:
diff changeset
   386
	Draw(1,NULL);
hgs
parents:
diff changeset
   387
	iBackedUpWindow.UpdateBackupBitmap();
hgs
parents:
diff changeset
   388
	INFO_PRINTF1(_L(" Second Drawing"));
hgs
parents:
diff changeset
   389
	CheckWindow(dup);
hgs
parents:
diff changeset
   390
	delete dup;
hgs
parents:
diff changeset
   391
	}
hgs
parents:
diff changeset
   392
hgs
parents:
diff changeset
   393
void CTBackedUpWindow::OOML()
hgs
parents:
diff changeset
   394
	{
hgs
parents:
diff changeset
   395
	iOomFrontWindow=RBlankWindow(TheClient->iWs);
hgs
parents:
diff changeset
   396
	TSize size(iBackedUpWindow.Size());
hgs
parents:
diff changeset
   397
	size.iWidth>>=1;
hgs
parents:
diff changeset
   398
	size.iHeight>>=1;
hgs
parents:
diff changeset
   399
	TPoint pos(size.iWidth*3/2,size.iHeight*3/2);
hgs
parents:
diff changeset
   400
	iOomFrontWindow.Construct(*(TheClient->iGroup->GroupWin()),ENullWsHandle);
hgs
parents:
diff changeset
   401
	iOomFrontWindow.SetColor(TRgb(TRgb::Gray4(1)));
hgs
parents:
diff changeset
   402
	iOomFrontWindow.SetExtent(pos,size);
hgs
parents:
diff changeset
   403
	iOomFrontWindow.Activate();
hgs
parents:
diff changeset
   404
	TheClient->iWs.Flush();
hgs
parents:
diff changeset
   405
hgs
parents:
diff changeset
   406
	TPoint buwPos=iBackedUpWindow.Position();
hgs
parents:
diff changeset
   407
	TSize buwSize=iBackedUpWindow.Size();
hgs
parents:
diff changeset
   408
	for(TInt count=0;count<100;count++)
hgs
parents:
diff changeset
   409
		{
hgs
parents:
diff changeset
   410
		iOomFrontWindow.SetVisible(ETrue);
hgs
parents:
diff changeset
   411
		TheClient->iWs.HeapSetFail(RHeap::EDeterministic,count);
hgs
parents:
diff changeset
   412
		iBackedUpWindow.SetPosition(buwPos+TPoint(10,5));
hgs
parents:
diff changeset
   413
		iBackedUpWindow.SetPosition(buwPos);
hgs
parents:
diff changeset
   414
		iOomFrontWindow.SetSize(size+TSize(10,5));
hgs
parents:
diff changeset
   415
		iOomFrontWindow.SetSize(size);
hgs
parents:
diff changeset
   416
		iBackedUpWindow.SetSizeErr(buwSize+TSize(13,7));
hgs
parents:
diff changeset
   417
		iBackedUpWindow.SetSizeErr(buwSize);
hgs
parents:
diff changeset
   418
		iOomFrontWindow.SetVisible(EFalse);
hgs
parents:
diff changeset
   419
		TheClient->iWs.HeapSetFail(RHeap::ENone,0);
hgs
parents:
diff changeset
   420
		User::LeaveIfError(iBackedUpWindow.SetSizeErr(buwSize));
hgs
parents:
diff changeset
   421
		TheClient->WaitForRedrawsToFinish();
hgs
parents:
diff changeset
   422
		CheckWindow();
hgs
parents:
diff changeset
   423
		}
hgs
parents:
diff changeset
   424
hgs
parents:
diff changeset
   425
	iOomFrontWindow.Close();
hgs
parents:
diff changeset
   426
	}
hgs
parents:
diff changeset
   427
hgs
parents:
diff changeset
   428
void CTBackedUpWindow::doGraphicFunctionsL(CBitmapContext *gc,TBool aExtraDrawBitMap)
hgs
parents:
diff changeset
   429
	{
hgs
parents:
diff changeset
   430
	TSize size=iBackedUpWindow.Size();
hgs
parents:
diff changeset
   431
	CFbsFont *aFont;
hgs
parents:
diff changeset
   432
	_LIT(KFontName,"Swiss");
hgs
parents:
diff changeset
   433
	TFontSpec fspec(KFontName,190);
hgs
parents:
diff changeset
   434
	User::LeaveIfError(TheClient->iScreen->GetNearestFontToDesignHeightInTwips((CFont *&)aFont,fspec));
hgs
parents:
diff changeset
   435
	CFbsBitmap* aBitmap=iTestBitmap;
hgs
parents:
diff changeset
   436
	CFbsBitmap* aMaskBitmap=iMaskBitmap;
hgs
parents:
diff changeset
   437
hgs
parents:
diff changeset
   438
	#include "DLLDRAW.H"	// Draws to a Gc called 'gc'
hgs
parents:
diff changeset
   439
	
hgs
parents:
diff changeset
   440
	TheClient->iScreen->ReleaseFont(aFont);
hgs
parents:
diff changeset
   441
	}
hgs
parents:
diff changeset
   442
hgs
parents:
diff changeset
   443
void CTBackedUpWindow::AllGraphicFunctionsL(RBlankWindow &aBlank,TBool aExtraDrawBitMap/*=ETrue*/)
hgs
parents:
diff changeset
   444
	{
hgs
parents:
diff changeset
   445
	aExtraDrawBitMap=EFalse;		//Check out when bitblit scaling has changed again
hgs
parents:
diff changeset
   446
	aBlank.SetVisible(ETrue);
hgs
parents:
diff changeset
   447
	TheGc->Activate(iBackedUpWindow);
hgs
parents:
diff changeset
   448
	TRAPD(err,doGraphicFunctionsL(TheGc,aExtraDrawBitMap));
hgs
parents:
diff changeset
   449
	TheGc->Deactivate();
hgs
parents:
diff changeset
   450
	User::LeaveIfError(err);
hgs
parents:
diff changeset
   451
	iBitGc->Reset();
hgs
parents:
diff changeset
   452
	iBitGc->SetUserDisplayMode(EGray4);
hgs
parents:
diff changeset
   453
	doGraphicFunctionsL(iBitGc,aExtraDrawBitMap);
hgs
parents:
diff changeset
   454
	aBlank.SetVisible(EFalse);
hgs
parents:
diff changeset
   455
	CheckWindow();
hgs
parents:
diff changeset
   456
	}
hgs
parents:
diff changeset
   457
hgs
parents:
diff changeset
   458
void CTBackedUpWindow::AllGraphicFunctionsTestsL()
hgs
parents:
diff changeset
   459
	{
hgs
parents:
diff changeset
   460
	RBlankWindow blank(TheClient->iWs);
hgs
parents:
diff changeset
   461
	TInt xtop=(iSize.iWidth)-(iSize.iWidth>>1);
hgs
parents:
diff changeset
   462
	TInt ytop=(iSize.iHeight)-(iSize.iHeight>>1);
hgs
parents:
diff changeset
   463
	blank.Construct(*(TheClient->iGroup->GroupWin()),ENullWsHandle);
hgs
parents:
diff changeset
   464
	blank.SetColor(TRgb::Gray256(128));
hgs
parents:
diff changeset
   465
	blank.Activate();
hgs
parents:
diff changeset
   466
	blank.SetExtent(TPoint(0,ytop),TSize(iSize.iWidth,iSize.iHeight>>2));
hgs
parents:
diff changeset
   467
	AllGraphicFunctionsL(blank);
hgs
parents:
diff changeset
   468
	blank.SetExtent(TPoint(0,ytop+10),TSize(iSize.iWidth,iSize.iHeight>>2));
hgs
parents:
diff changeset
   469
	AllGraphicFunctionsL(blank);
hgs
parents:
diff changeset
   470
	blank.SetExtent(TPoint(xtop,ytop),TSize(iSize.iWidth>>1,iSize.iHeight));
hgs
parents:
diff changeset
   471
	AllGraphicFunctionsL(blank,EFalse);
hgs
parents:
diff changeset
   472
	blank.SetExtent(TPoint(xtop+(iSize.iWidth>>1),ytop),TSize(iSize.iWidth>>1,iSize.iHeight));
hgs
parents:
diff changeset
   473
	AllGraphicFunctionsL(blank,EFalse);
hgs
parents:
diff changeset
   474
	blank.SetExtent(TPoint(xtop+10,iSize.iHeight),TSize(iSize.iWidth,iSize.iHeight));
hgs
parents:
diff changeset
   475
	AllGraphicFunctionsL(blank,EFalse);
hgs
parents:
diff changeset
   476
	blank.SetExtent(TPoint(xtop,ytop),iSize);
hgs
parents:
diff changeset
   477
	AllGraphicFunctionsL(blank,EFalse);
hgs
parents:
diff changeset
   478
	blank.SetExtent(TPoint(0,0),TSize(0,0));
hgs
parents:
diff changeset
   479
	AllGraphicFunctionsL(blank);
hgs
parents:
diff changeset
   480
	blank.Close();
hgs
parents:
diff changeset
   481
	}
hgs
parents:
diff changeset
   482
hgs
parents:
diff changeset
   483
void CTBackedUpWindow::RunTestCaseL(TInt /*aCurTestCase*/)
hgs
parents:
diff changeset
   484
	{
hgs
parents:
diff changeset
   485
	switch(iSupState)
hgs
parents:
diff changeset
   486
		{
hgs
parents:
diff changeset
   487
		case 0:
hgs
parents:
diff changeset
   488
			for (TInt iSubTest=0;iSubTest<KLastSubtest;iSubTest++)
hgs
parents:
diff changeset
   489
				{
hgs
parents:
diff changeset
   490
				DoSubTestL(iSubTest);
hgs
parents:
diff changeset
   491
				}
hgs
parents:
diff changeset
   492
			iBackedUpWindow.MaintainBackup();		//Putting this line here is a work around
hgs
parents:
diff changeset
   493
			break;
hgs
parents:
diff changeset
   494
		case 1:
hgs
parents:
diff changeset
   495
			for (TInt iSubTest=0;iSubTest<KLastSubtest;iSubTest++)
hgs
parents:
diff changeset
   496
				{
hgs
parents:
diff changeset
   497
				DoSubTestL(iSubTest);
hgs
parents:
diff changeset
   498
				}
hgs
parents:
diff changeset
   499
			break;
hgs
parents:
diff changeset
   500
		default:
hgs
parents:
diff changeset
   501
			TestComplete();
hgs
parents:
diff changeset
   502
			break;
hgs
parents:
diff changeset
   503
		}
hgs
parents:
diff changeset
   504
	iSupState++;
hgs
parents:
diff changeset
   505
	}
hgs
parents:
diff changeset
   506
hgs
parents:
diff changeset
   507
void CTBackedUpWindow::DoSubTestL(TInt iState)
hgs
parents:
diff changeset
   508
	{
hgs
parents:
diff changeset
   509
	_LIT(KTest0,"Simple draw");
hgs
parents:
diff changeset
   510
	_LIT(KTest1,"Resizing");
hgs
parents:
diff changeset
   511
	_LIT(KTest2,"Invisible/Visible");
hgs
parents:
diff changeset
   512
	_LIT(KTest3,"Windows on top");
hgs
parents:
diff changeset
   513
	_LIT(KTest4,"Child Windows");
hgs
parents:
diff changeset
   514
	_LIT(KTest5,"OOM");
hgs
parents:
diff changeset
   515
	_LIT(KTest6,"Update Bitmap");
hgs
parents:
diff changeset
   516
	_LIT(KTest7,"Bitmap duplicate");
hgs
parents:
diff changeset
   517
	_LIT(KTest8,"Two Graphic Contexts");
hgs
parents:
diff changeset
   518
	_LIT(KTest9,"All Graphic Functions");
hgs
parents:
diff changeset
   519
	_LIT(KTest10,"Reactivate");
hgs
parents:
diff changeset
   520
	_LIT(KTest11,"DoDrawCommand");
hgs
parents:
diff changeset
   521
hgs
parents:
diff changeset
   522
	TRgb rgb1(255,255,255);
hgs
parents:
diff changeset
   523
	TRgb rgb2(255,255,255);
hgs
parents:
diff changeset
   524
	TRgb rgb3(255,255,255);
hgs
parents:
diff changeset
   525
	TRgb rgb4(255,255,255);
hgs
parents:
diff changeset
   526
	TRgb rgb5(255,255,255);
hgs
parents:
diff changeset
   527
	TRgb rgb6(255,255,255);
hgs
parents:
diff changeset
   528
	TRgb rgb7(255,255,255);
hgs
parents:
diff changeset
   529
	TRgb color(TRgb::Gray4(2));
hgs
parents:
diff changeset
   530
hgs
parents:
diff changeset
   531
	iTest->iState=iState;
hgs
parents:
diff changeset
   532
((CTBackedUpWindowStep*)iStep)->SetTestStepID(KUnknownSYMTestCaseIDName);
hgs
parents:
diff changeset
   533
	switch(iState)
hgs
parents:
diff changeset
   534
		{
hgs
parents:
diff changeset
   535
/**
hgs
parents:
diff changeset
   536
@SYMTestCaseID		GRAPHICS-WSERV-0202-0001
hgs
parents:
diff changeset
   537
hgs
parents:
diff changeset
   538
@SYMDEF             DEF081259
hgs
parents:
diff changeset
   539
hgs
parents:
diff changeset
   540
@SYMTestCaseDesc    Test drawing in a backed up window
hgs
parents:
diff changeset
   541
hgs
parents:
diff changeset
   542
@SYMTestPriority    High
hgs
parents:
diff changeset
   543
hgs
parents:
diff changeset
   544
@SYMTestStatus      Implemented
hgs
parents:
diff changeset
   545
hgs
parents:
diff changeset
   546
@SYMTestActions     Draw in a backed up window and a normal window and check
hgs
parents:
diff changeset
   547
					the two drawings are the same
hgs
parents:
diff changeset
   548
hgs
parents:
diff changeset
   549
@SYMTestExpectedResults The two drawings are exactly the same
hgs
parents:
diff changeset
   550
*/
hgs
parents:
diff changeset
   551
		case 0:
hgs
parents:
diff changeset
   552
			((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0202-0001"));
hgs
parents:
diff changeset
   553
			iTest->LogSubTest(KTest0);
hgs
parents:
diff changeset
   554
			Draw(1,NULL);
hgs
parents:
diff changeset
   555
			CheckWindow();
hgs
parents:
diff changeset
   556
			break;
hgs
parents:
diff changeset
   557
/**
hgs
parents:
diff changeset
   558
@SYMTestCaseID		GRAPHICS-WSERV-0202-0002
hgs
parents:
diff changeset
   559
hgs
parents:
diff changeset
   560
@SYMDEF             DEF081259
hgs
parents:
diff changeset
   561
hgs
parents:
diff changeset
   562
@SYMTestCaseDesc    Test drawing in a backed up window
hgs
parents:
diff changeset
   563
hgs
parents:
diff changeset
   564
@SYMTestPriority    High
hgs
parents:
diff changeset
   565
hgs
parents:
diff changeset
   566
@SYMTestStatus      Implemented
hgs
parents:
diff changeset
   567
hgs
parents:
diff changeset
   568
@SYMTestActions     Draw in a backed up window and a normal window and check
hgs
parents:
diff changeset
   569
					the two drawings are the same
hgs
parents:
diff changeset
   570
hgs
parents:
diff changeset
   571
@SYMTestExpectedResults The two drawings are exactly the same
hgs
parents:
diff changeset
   572
*/
hgs
parents:
diff changeset
   573
		case 1:
hgs
parents:
diff changeset
   574
			((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0202-0002"));
hgs
parents:
diff changeset
   575
			iTest->LogSubTest(KTest1);
hgs
parents:
diff changeset
   576
			Draw(0,&rgb1);
hgs
parents:
diff changeset
   577
			Draw(3,NULL);
hgs
parents:
diff changeset
   578
			Resize();
hgs
parents:
diff changeset
   579
			CheckWindow();
hgs
parents:
diff changeset
   580
			break;
hgs
parents:
diff changeset
   581
/**
hgs
parents:
diff changeset
   582
@SYMTestCaseID		GRAPHICS-WSERV-0203
hgs
parents:
diff changeset
   583
hgs
parents:
diff changeset
   584
@SYMDEF             DEF081259
hgs
parents:
diff changeset
   585
hgs
parents:
diff changeset
   586
@SYMTestCaseDesc    Test making a backed up window invisible
hgs
parents:
diff changeset
   587
hgs
parents:
diff changeset
   588
@SYMTestPriority    High
hgs
parents:
diff changeset
   589
hgs
parents:
diff changeset
   590
@SYMTestStatus      Implemented
hgs
parents:
diff changeset
   591
hgs
parents:
diff changeset
   592
@SYMTestActions     Draw in a backed up window and a normal window, make
hgs
parents:
diff changeset
   593
					the backed up window invisible then visible and
hgs
parents:
diff changeset
   594
					then check the two drawings are the same
hgs
parents:
diff changeset
   595
hgs
parents:
diff changeset
   596
@SYMTestExpectedResults The two drawings are exactly the same
hgs
parents:
diff changeset
   597
*/
hgs
parents:
diff changeset
   598
		case 2:
hgs
parents:
diff changeset
   599
			((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0203"));
hgs
parents:
diff changeset
   600
			iTest->LogSubTest(KTest2);
hgs
parents:
diff changeset
   601
			Draw(0,&rgb2);
hgs
parents:
diff changeset
   602
			Draw(1,NULL);
hgs
parents:
diff changeset
   603
			InvisVis();
hgs
parents:
diff changeset
   604
			CheckWindow();
hgs
parents:
diff changeset
   605
			break;
hgs
parents:
diff changeset
   606
/**
hgs
parents:
diff changeset
   607
@SYMTestCaseID		GRAPHICS-WSERV-0204
hgs
parents:
diff changeset
   608
hgs
parents:
diff changeset
   609
@SYMDEF             DEF081259
hgs
parents:
diff changeset
   610
hgs
parents:
diff changeset
   611
@SYMTestCaseDesc    Test drawing in a backed up window and then placing a
hgs
parents:
diff changeset
   612
					window on top of it
hgs
parents:
diff changeset
   613
hgs
parents:
diff changeset
   614
@SYMTestPriority    High
hgs
parents:
diff changeset
   615
hgs
parents:
diff changeset
   616
@SYMTestStatus      Implemented
hgs
parents:
diff changeset
   617
hgs
parents:
diff changeset
   618
@SYMTestActions     Draw in a backed up window and a normal window, then
hgs
parents:
diff changeset
   619
					place a window on top of the backed up window and then
hgs
parents:
diff changeset
   620
					check the two drawings are the same
hgs
parents:
diff changeset
   621
hgs
parents:
diff changeset
   622
@SYMTestExpectedResults The two drawings are exactly the same
hgs
parents:
diff changeset
   623
*/
hgs
parents:
diff changeset
   624
		case 3:
hgs
parents:
diff changeset
   625
			((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0204"));
hgs
parents:
diff changeset
   626
			iTest->LogSubTest(KTest3);
hgs
parents:
diff changeset
   627
			//TRgb rgb(220,220,220);
hgs
parents:
diff changeset
   628
			Draw(0,&rgb3);
hgs
parents:
diff changeset
   629
			Draw(1,NULL);
hgs
parents:
diff changeset
   630
			WindowOnTop();
hgs
parents:
diff changeset
   631
			CheckWindow();
hgs
parents:
diff changeset
   632
			break;
hgs
parents:
diff changeset
   633
/**
hgs
parents:
diff changeset
   634
@SYMTestCaseID		GRAPHICS-WSERV-0205
hgs
parents:
diff changeset
   635
hgs
parents:
diff changeset
   636
@SYMDEF             DEF081259
hgs
parents:
diff changeset
   637
hgs
parents:
diff changeset
   638
@SYMTestCaseDesc    Test drawing in a backed up window and then drawing in
hgs
parents:
diff changeset
   639
					a child window
hgs
parents:
diff changeset
   640
hgs
parents:
diff changeset
   641
@SYMTestPriority    High
hgs
parents:
diff changeset
   642
hgs
parents:
diff changeset
   643
@SYMTestStatus      Implemented
hgs
parents:
diff changeset
   644
hgs
parents:
diff changeset
   645
@SYMTestActions     Draw in a backed up window and a normal window, then
hgs
parents:
diff changeset
   646
					create and draw in a child window and then
hgs
parents:
diff changeset
   647
					check the two original drawings are the same
hgs
parents:
diff changeset
   648
hgs
parents:
diff changeset
   649
@SYMTestExpectedResults The two drawings are exactly the same
hgs
parents:
diff changeset
   650
*/
hgs
parents:
diff changeset
   651
		case 4:
hgs
parents:
diff changeset
   652
			((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0205"));
hgs
parents:
diff changeset
   653
			iTest->LogSubTest(KTest4);
hgs
parents:
diff changeset
   654
			Draw(0,&rgb4);
hgs
parents:
diff changeset
   655
			Draw(3,NULL);
hgs
parents:
diff changeset
   656
			ChildWindows();
hgs
parents:
diff changeset
   657
			CheckWindow();
hgs
parents:
diff changeset
   658
			break;
hgs
parents:
diff changeset
   659
/**
hgs
parents:
diff changeset
   660
@SYMTestCaseID		GRAPHICS-WSERV-0206
hgs
parents:
diff changeset
   661
hgs
parents:
diff changeset
   662
@SYMDEF             DEF081259
hgs
parents:
diff changeset
   663
hgs
parents:
diff changeset
   664
@SYMTestCaseDesc    Out of memeory test for backed up windows
hgs
parents:
diff changeset
   665
hgs
parents:
diff changeset
   666
@SYMTestPriority    High
hgs
parents:
diff changeset
   667
hgs
parents:
diff changeset
   668
@SYMTestStatus      Implemented
hgs
parents:
diff changeset
   669
hgs
parents:
diff changeset
   670
@SYMTestActions     Out of memeory test for backed up windows
hgs
parents:
diff changeset
   671
hgs
parents:
diff changeset
   672
@SYMTestExpectedResults Backed up window responds correctly when out
hgs
parents:
diff changeset
   673
						of memory
hgs
parents:
diff changeset
   674
*/
hgs
parents:
diff changeset
   675
		case 5:
hgs
parents:
diff changeset
   676
			((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0206"));
hgs
parents:
diff changeset
   677
			iTest->LogSubTest(KTest5);
hgs
parents:
diff changeset
   678
			if (!iTest->IsFullRomL())
hgs
parents:
diff changeset
   679
				{
hgs
parents:
diff changeset
   680
				Draw(0,&rgb5);
hgs
parents:
diff changeset
   681
				Draw(3,NULL);
hgs
parents:
diff changeset
   682
				OOML();
hgs
parents:
diff changeset
   683
				CheckWindow();
hgs
parents:
diff changeset
   684
				}
hgs
parents:
diff changeset
   685
			break;
hgs
parents:
diff changeset
   686
/**
hgs
parents:
diff changeset
   687
@SYMTestCaseID		GRAPHICS-WSERV-0207
hgs
parents:
diff changeset
   688
hgs
parents:
diff changeset
   689
@SYMDEF             DEF081259
hgs
parents:
diff changeset
   690
hgs
parents:
diff changeset
   691
@SYMTestCaseDesc    Test updating a bitmap in a backed up window
hgs
parents:
diff changeset
   692
hgs
parents:
diff changeset
   693
@SYMTestPriority    High
hgs
parents:
diff changeset
   694
hgs
parents:
diff changeset
   695
@SYMTestStatus      Implemented
hgs
parents:
diff changeset
   696
hgs
parents:
diff changeset
   697
@SYMTestActions     Update a bitmap in a backed up window and a normal window
hgs
parents:
diff changeset
   698
					and check the two bitmaps are the same
hgs
parents:
diff changeset
   699
hgs
parents:
diff changeset
   700
@SYMTestExpectedResults The two bitmaps are exactly the same
hgs
parents:
diff changeset
   701
*/
hgs
parents:
diff changeset
   702
		case 6:
hgs
parents:
diff changeset
   703
			((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0207"));
hgs
parents:
diff changeset
   704
			iTest->LogSubTest(KTest6);
hgs
parents:
diff changeset
   705
			Draw(0,&rgb6);
hgs
parents:
diff changeset
   706
			Draw(1,NULL);
hgs
parents:
diff changeset
   707
			UpdateBitmapTestL();
hgs
parents:
diff changeset
   708
			break;
hgs
parents:
diff changeset
   709
/**
hgs
parents:
diff changeset
   710
@SYMTestCaseID		GRAPHICS-WSERV-0208
hgs
parents:
diff changeset
   711
hgs
parents:
diff changeset
   712
@SYMDEF             DEF081259
hgs
parents:
diff changeset
   713
hgs
parents:
diff changeset
   714
@SYMTestCaseDesc    Test updating a duplicate bitmap in a backed up window
hgs
parents:
diff changeset
   715
hgs
parents:
diff changeset
   716
@SYMTestPriority    High
hgs
parents:
diff changeset
   717
hgs
parents:
diff changeset
   718
@SYMTestStatus      Implemented
hgs
parents:
diff changeset
   719
hgs
parents:
diff changeset
   720
@SYMTestActions     Update a duplicated bitmap in a backed up window and a normal window
hgs
parents:
diff changeset
   721
					and check the two bitmaps are the same
hgs
parents:
diff changeset
   722
hgs
parents:
diff changeset
   723
@SYMTestExpectedResults The two bitmaps are exactly the same
hgs
parents:
diff changeset
   724
*/
hgs
parents:
diff changeset
   725
		case 7:
hgs
parents:
diff changeset
   726
			((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0208"));
hgs
parents:
diff changeset
   727
			if (iSupState==0)		//Will fail unless the window is fully backup.
hgs
parents:
diff changeset
   728
				break;
hgs
parents:
diff changeset
   729
			iTest->LogSubTest(KTest7);
hgs
parents:
diff changeset
   730
			Draw(0,&rgb7);
hgs
parents:
diff changeset
   731
			Draw(1,NULL);
hgs
parents:
diff changeset
   732
			DupBitmapTestL();
hgs
parents:
diff changeset
   733
			break;
hgs
parents:
diff changeset
   734
/**
hgs
parents:
diff changeset
   735
@SYMTestCaseID		GRAPHICS-WSERV-0209
hgs
parents:
diff changeset
   736
hgs
parents:
diff changeset
   737
@SYMDEF             DEF081259
hgs
parents:
diff changeset
   738
hgs
parents:
diff changeset
   739
@SYMTestCaseDesc    Test drawing with two graphic contexts in a backed up window
hgs
parents:
diff changeset
   740
hgs
parents:
diff changeset
   741
@SYMTestPriority    High
hgs
parents:
diff changeset
   742
hgs
parents:
diff changeset
   743
@SYMTestStatus      Implemented
hgs
parents:
diff changeset
   744
hgs
parents:
diff changeset
   745
@SYMTestActions     Draw using two graphic contexts in a backed up window and a normal
hgs
parents:
diff changeset
   746
					window and check the two drawings are the same
hgs
parents:
diff changeset
   747
hgs
parents:
diff changeset
   748
@SYMTestExpectedResults The two drawings are exactly the same
hgs
parents:
diff changeset
   749
*/
hgs
parents:
diff changeset
   750
		case 8:
hgs
parents:
diff changeset
   751
			((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0209"));
hgs
parents:
diff changeset
   752
			iTest->LogSubTest(KTest8);
hgs
parents:
diff changeset
   753
			Draw(0,&color);
hgs
parents:
diff changeset
   754
			Draw(1,NULL);
hgs
parents:
diff changeset
   755
			DrawWithTwoGcsL();
hgs
parents:
diff changeset
   756
			CheckWindow();
hgs
parents:
diff changeset
   757
			break;
hgs
parents:
diff changeset
   758
			
hgs
parents:
diff changeset
   759
/**
hgs
parents:
diff changeset
   760
@SYMTestCaseID		GRAPHICS-WSERV-0210
hgs
parents:
diff changeset
   761
hgs
parents:
diff changeset
   762
@SYMDEF             DEF081259
hgs
parents:
diff changeset
   763
hgs
parents:
diff changeset
   764
@SYMTestCaseDesc    Test drawing using all the graphic functions in a backed up window
hgs
parents:
diff changeset
   765
hgs
parents:
diff changeset
   766
@SYMTestPriority    High
hgs
parents:
diff changeset
   767
hgs
parents:
diff changeset
   768
@SYMTestStatus      Implemented
hgs
parents:
diff changeset
   769
hgs
parents:
diff changeset
   770
@SYMTestActions     Draw using all the graphic functions in a backed up window and a normal
hgs
parents:
diff changeset
   771
					window and check the two drawings are the same
hgs
parents:
diff changeset
   772
hgs
parents:
diff changeset
   773
@SYMTestExpectedResults The two drawings are exactly the same
hgs
parents:
diff changeset
   774
*/
hgs
parents:
diff changeset
   775
		case 9:
hgs
parents:
diff changeset
   776
			((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0210"));
hgs
parents:
diff changeset
   777
			iTest->LogSubTest(KTest9);
hgs
parents:
diff changeset
   778
			if(TheClient->iScreen->SizeInPixels() == TSize(640,240))
hgs
parents:
diff changeset
   779
				AllGraphicFunctionsTestsL();
hgs
parents:
diff changeset
   780
			break;
hgs
parents:
diff changeset
   781
hgs
parents:
diff changeset
   782
		//A Coverage test, nothing spectacular just making the code
hgs
parents:
diff changeset
   783
		//go into CWsGc::Reactivate
hgs
parents:
diff changeset
   784
		case 10:
hgs
parents:
diff changeset
   785
			{
hgs
parents:
diff changeset
   786
/**
hgs
parents:
diff changeset
   787
@SYMTestCaseID		GRAPHICS-WSERV-0502
hgs
parents:
diff changeset
   788
*/
hgs
parents:
diff changeset
   789
			((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0502"));
hgs
parents:
diff changeset
   790
			iTest->LogSubTest(KTest10);
hgs
parents:
diff changeset
   791
			TheGc->Deactivate();
hgs
parents:
diff changeset
   792
			RBackedUpWindow extentWindow;
hgs
parents:
diff changeset
   793
			extentWindow=RBackedUpWindow(TheClient->iWs);
hgs
parents:
diff changeset
   794
			extentWindow.Construct(*(TheClient->iGroup->GroupWin()),EGray4,ENullWsHandle);
hgs
parents:
diff changeset
   795
			TheGc->Activate(extentWindow);
hgs
parents:
diff changeset
   796
			TheClient->Flush();
hgs
parents:
diff changeset
   797
			User::LeaveIfError(extentWindow.SetExtentErr(TPoint(2,2), TSize(4,4)));
hgs
parents:
diff changeset
   798
			extentWindow.Activate();
hgs
parents:
diff changeset
   799
			extentWindow.Close();
hgs
parents:
diff changeset
   800
			TheGc->Deactivate();
hgs
parents:
diff changeset
   801
			break;
hgs
parents:
diff changeset
   802
			}
hgs
parents:
diff changeset
   803
hgs
parents:
diff changeset
   804
		//Coverage for various messages for CWsGc::DoDrawCommand
hgs
parents:
diff changeset
   805
		case 11:
hgs
parents:
diff changeset
   806
			{
hgs
parents:
diff changeset
   807
/**
hgs
parents:
diff changeset
   808
@SYMTestCaseID		GRAPHICS-WSERV-0507
hgs
parents:
diff changeset
   809
*/
hgs
parents:
diff changeset
   810
			((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0507"));
hgs
parents:
diff changeset
   811
			iTest->LogSubTest(KTest11);
hgs
parents:
diff changeset
   812
			TheGc->Activate(iBackedUpWindow);
hgs
parents:
diff changeset
   813
			TheGc->Reset();
hgs
parents:
diff changeset
   814
			iBitGc->Reset();
hgs
parents:
diff changeset
   815
			iBitGc->SetUserDisplayMode(EGray4);
hgs
parents:
diff changeset
   816
			
hgs
parents:
diff changeset
   817
			// EWsGcOpDrawWsGraphic
hgs
parents:
diff changeset
   818
			TheGc->DrawWsGraphic(TWsGraphicId(0), TRect(0,0,10,10)); 
hgs
parents:
diff changeset
   819
			
hgs
parents:
diff changeset
   820
			//create a large junk buffer so that messages with Ptr suffix will be sent
hgs
parents:
diff changeset
   821
			RBuf8 junkBuf8;
hgs
parents:
diff changeset
   822
			RBuf  junkBuf;
hgs
parents:
diff changeset
   823
			junkBuf8.CreateMax(650); // a large enough buffer to sent as Ptr (this value used to crash the code before)
hgs
parents:
diff changeset
   824
			junkBuf.CreateMax(650); // a large enough buffer to sent as Ptr
hgs
parents:
diff changeset
   825
			for (int i=0; i<junkBuf.MaxLength()-1;i++)
hgs
parents:
diff changeset
   826
				{
hgs
parents:
diff changeset
   827
				junkBuf8[i] = 'A';
hgs
parents:
diff changeset
   828
				junkBuf[i] = 'A';
hgs
parents:
diff changeset
   829
				}
hgs
parents:
diff changeset
   830
			junkBuf8[junkBuf8.MaxLength()-1] = '\0';
hgs
parents:
diff changeset
   831
			junkBuf[junkBuf.MaxLength()-1] = '\0';
hgs
parents:
diff changeset
   832
			
hgs
parents:
diff changeset
   833
			// EWsGcOpDrawWsGraphicPtr
hgs
parents:
diff changeset
   834
			TheGc->DrawWsGraphic(TWsGraphicId(0), TRect(0,0,10,10), junkBuf8);
hgs
parents:
diff changeset
   835
			
hgs
parents:
diff changeset
   836
			// Set font for drawing on screen
hgs
parents:
diff changeset
   837
			CFbsFont *font1;
hgs
parents:
diff changeset
   838
			TFontSpec fspec(KTestFontTypefaceName,200);
hgs
parents:
diff changeset
   839
			User::LeaveIfError(TheClient->iScreen->GetNearestFontToDesignHeightInTwips((CFont *&)font1,fspec));
hgs
parents:
diff changeset
   840
			TheGc->UseFont(font1);
hgs
parents:
diff changeset
   841
			iBitGc->UseFont(font1);
hgs
parents:
diff changeset
   842
						
hgs
parents:
diff changeset
   843
			// EWsGcOpDrawTextPtr
hgs
parents:
diff changeset
   844
			TheGc->DrawText(junkBuf, TPoint(0,0));
hgs
parents:
diff changeset
   845
			iBitGc->DrawText(junkBuf, TPoint(0,0));
hgs
parents:
diff changeset
   846
			
hgs
parents:
diff changeset
   847
			// EWsGcOpDrawBoxText - unreachable 299-too lo, 300-too hi
hgs
parents:
diff changeset
   848
hgs
parents:
diff changeset
   849
			// EWsGcOpDrawBoxTextPtr
hgs
parents:
diff changeset
   850
			TheGc->DrawText(junkBuf, TRect(0,0,10,10), 0, CGraphicsContext::ELeft, 0); 
hgs
parents:
diff changeset
   851
			iBitGc->DrawText(junkBuf, TRect(0,0,10,10), 0, CGraphicsContext::ELeft, 0); 
hgs
parents:
diff changeset
   852
			
hgs
parents:
diff changeset
   853
			// EWsGcOpDrawTextVerticalPtr
hgs
parents:
diff changeset
   854
			TheGc->DrawTextVertical(junkBuf, TPoint(0,0), ETrue);
hgs
parents:
diff changeset
   855
			iBitGc->DrawTextVertical(junkBuf, TPoint(0,0), ETrue);
hgs
parents:
diff changeset
   856
			
hgs
parents:
diff changeset
   857
			// EWsGcOpDrawBoxTextVerticalPtr
hgs
parents:
diff changeset
   858
			TheGc->DrawTextVertical(junkBuf, TRect(0,0,10,10), 0, ETrue, CGraphicsContext::ELeft, 0);
hgs
parents:
diff changeset
   859
			iBitGc->DrawTextVertical(junkBuf, TRect(0,0,10,10), 0, ETrue, CGraphicsContext::ELeft, 0);
hgs
parents:
diff changeset
   860
			
hgs
parents:
diff changeset
   861
			// EWsGcOpMoveBy
hgs
parents:
diff changeset
   862
			TheGc->MoveBy(TPoint(2,2));
hgs
parents:
diff changeset
   863
			iBitGc->MoveBy(TPoint(2,2));
hgs
parents:
diff changeset
   864
			
hgs
parents:
diff changeset
   865
			// a bitmap for bitblt ops
hgs
parents:
diff changeset
   866
			CWsBitmap bmp(TheClient->iWs);
hgs
parents:
diff changeset
   867
			bmp.Create(TSize(16,16), iBackedUpWindow.DisplayMode());
hgs
parents:
diff changeset
   868
			
hgs
parents:
diff changeset
   869
			// EWsGcOpGdiWsBlt2
hgs
parents:
diff changeset
   870
			TheGc->BitBlt(TPoint(0,0), &bmp);
hgs
parents:
diff changeset
   871
			iBitGc->BitBlt(TPoint(0,0), &bmp);
hgs
parents:
diff changeset
   872
			
hgs
parents:
diff changeset
   873
			// EWsGcOpGdiWsBlt3
hgs
parents:
diff changeset
   874
			TheGc->BitBlt(TPoint(0,0), &bmp, TRect(0,0,10,10));
hgs
parents:
diff changeset
   875
			iBitGc->BitBlt(TPoint(0,0), &bmp, TRect(0,0,10,10));
hgs
parents:
diff changeset
   876
			
hgs
parents:
diff changeset
   877
			// EWsGcOpGdiWsBltMasked
hgs
parents:
diff changeset
   878
			TheGc->BitBltMasked(TPoint(0,0), &bmp, TRect(0,0,10,10), &bmp, EFalse);
hgs
parents:
diff changeset
   879
			iBitGc->BitBltMasked(TPoint(0,0), &bmp, TRect(0,0,10,10), &bmp, EFalse);
hgs
parents:
diff changeset
   880
			
hgs
parents:
diff changeset
   881
			// EWsGcOpGdiWsAlphaBlendBitmaps
hgs
parents:
diff changeset
   882
			TheGc->AlphaBlendBitmaps(TPoint(0,0), &bmp, TRect(0,0,10,10), &bmp, TPoint(1,1));
hgs
parents:
diff changeset
   883
			iBitGc->AlphaBlendBitmaps(TPoint(0,0), &bmp, TRect(0,0,10,10), &bmp, TPoint(1,1));
hgs
parents:
diff changeset
   884
			
hgs
parents:
diff changeset
   885
			// EWsGcOpWsDrawBitmapMasked
hgs
parents:
diff changeset
   886
			TheGc->DrawBitmapMasked(TRect(0,0,10,10), &bmp, TRect(0,0,8,8), &bmp, ETrue);
hgs
parents:
diff changeset
   887
			iBitGc->DrawBitmapMasked(TRect(0,0,10,10), &bmp, TRect(0,0,8,8), &bmp, ETrue);
hgs
parents:
diff changeset
   888
			
hgs
parents:
diff changeset
   889
			// EWsGcOpDrawBitmap 
hgs
parents:
diff changeset
   890
			TheGc->DrawBitmap(TPoint(0,0), &bmp);
hgs
parents:
diff changeset
   891
			iBitGc->DrawBitmap(TPoint(0,0), &bmp);
hgs
parents:
diff changeset
   892
			
hgs
parents:
diff changeset
   893
			// EWsGcOpDrawBitmapMasked 
hgs
parents:
diff changeset
   894
			TheGc->DrawBitmapMasked(TRect(0,0,10,10), static_cast<const CFbsBitmap*>(&bmp), 
hgs
parents:
diff changeset
   895
					                TRect(0,0,8,8), static_cast<const CFbsBitmap*>(&bmp), 
hgs
parents:
diff changeset
   896
					                EFalse);
hgs
parents:
diff changeset
   897
			iBitGc->DrawBitmapMasked(TRect(0,0,10,10), static_cast<const CFbsBitmap*>(&bmp), 
hgs
parents:
diff changeset
   898
	                				TRect(0,0,8,8), static_cast<const CFbsBitmap*>(&bmp), 
hgs
parents:
diff changeset
   899
	                				EFalse);
hgs
parents:
diff changeset
   900
			
hgs
parents:
diff changeset
   901
			// EWsGcOpDrawPolyLineContinued
hgs
parents:
diff changeset
   902
			TheGc->DrawPolyLine(reinterpret_cast<const TPoint*>(junkBuf8.Ptr()),
hgs
parents:
diff changeset
   903
    				            TInt(junkBuf8.Size()/sizeof(TPoint)));
hgs
parents:
diff changeset
   904
			iBitGc->DrawPolyLine(reinterpret_cast<const TPoint*>(junkBuf8.Ptr()),
hgs
parents:
diff changeset
   905
		            			TInt(junkBuf8.Size()/sizeof(TPoint)));
hgs
parents:
diff changeset
   906
			
hgs
parents:
diff changeset
   907
			// EWsGcOpCopyRect
hgs
parents:
diff changeset
   908
			TheGc->CopyRect(TPoint(0,0), TRect(0,0,10,10));
hgs
parents:
diff changeset
   909
			iBitGc->CopyRect(TPoint(0,0), TRect(0,0,10,10));
hgs
parents:
diff changeset
   910
			
hgs
parents:
diff changeset
   911
			//cleanup
hgs
parents:
diff changeset
   912
			TheClient->Flush();
hgs
parents:
diff changeset
   913
			TheGc->DiscardFont();
hgs
parents:
diff changeset
   914
			iBitGc->DiscardFont();
hgs
parents:
diff changeset
   915
			TheClient->iScreen->ReleaseFont(font1);
hgs
parents:
diff changeset
   916
			junkBuf.Close();
hgs
parents:
diff changeset
   917
			junkBuf8.Close();
hgs
parents:
diff changeset
   918
			TheGc->Deactivate();
hgs
parents:
diff changeset
   919
		
hgs
parents:
diff changeset
   920
			CheckWindow();
hgs
parents:
diff changeset
   921
			
hgs
parents:
diff changeset
   922
			//the following have no client equivalent methods
hgs
parents:
diff changeset
   923
			// EWsGcOpMapColorsLocal
hgs
parents:
diff changeset
   924
			// EWsGcOpDrawPolyLineLocalBufLen
hgs
parents:
diff changeset
   925
			// EWsGcOpDrawPolyLineLocal
hgs
parents:
diff changeset
   926
			// EWsGcOpDrawPolygonLocalBufLen
hgs
parents:
diff changeset
   927
			// EWsGcOpDrawPolygonLocal
hgs
parents:
diff changeset
   928
			// EWsGcOpDrawBitmapLocal
hgs
parents:
diff changeset
   929
			// EWsGcOpDrawBitmap2Local
hgs
parents:
diff changeset
   930
			// EWsGcOpDrawBitmap3Local
hgs
parents:
diff changeset
   931
			// EWsGcOpDrawBitmapMaskedLocal
hgs
parents:
diff changeset
   932
			// EWsGcOpDrawTextPtr1
hgs
parents:
diff changeset
   933
			// EWsGcOpDrawBoxTextPtr1
hgs
parents:
diff changeset
   934
			// EWsGcOpDrawTextVerticalPtr1
hgs
parents:
diff changeset
   935
			// EWsGcOpDrawBoxTextVerticalPtr1
hgs
parents:
diff changeset
   936
			// EWsGcOpDrawTextLocal
hgs
parents:
diff changeset
   937
			// EWsGcOpDrawBoxTextLocal
hgs
parents:
diff changeset
   938
			// EWsGcOpGdiBlt2Local
hgs
parents:
diff changeset
   939
			// EWsGcOpGdiBlt3Local
hgs
parents:
diff changeset
   940
			// EWsGcOpGdiBltMaskedLocal
hgs
parents:
diff changeset
   941
			((CTBackedUpWindowStep*)iStep)->CloseTMSGraphicsStep();
hgs
parents:
diff changeset
   942
			break;
hgs
parents:
diff changeset
   943
			}
hgs
parents:
diff changeset
   944
hgs
parents:
diff changeset
   945
		default:
hgs
parents:
diff changeset
   946
			((CTBackedUpWindowStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName);
hgs
parents:
diff changeset
   947
			((CTBackedUpWindowStep*)iStep)->CloseTMSGraphicsStep();
hgs
parents:
diff changeset
   948
			break;
hgs
parents:
diff changeset
   949
		}
hgs
parents:
diff changeset
   950
       ((CTBackedUpWindowStep*)iStep)->RecordTestResultL();
hgs
parents:
diff changeset
   951
	}
hgs
parents:
diff changeset
   952
hgs
parents:
diff changeset
   953
__WS_CONSTRUCT_STEP__(BackedUpWindow)