graphicstest/uibench/s60/src/windows/tsmallwindowraster.cpp
changeset 0 5d03bc08d59c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicstest/uibench/s60/src/windows/tsmallwindowraster.cpp	Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,98 @@
+// Copyright (c) 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:
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code 
+*/
+
+
+#include "tsmallwindowraster.h"
+
+
+_LIT(KBitmapPattern, "*.mbm");
+
+
+CTSmallWindowRaster::CTSmallWindowRaster(const TPoint& aStartingPoint, const TSize& aWindowSize) :
+        CTWindow(aStartingPoint, aWindowSize)
+	{
+	// empty
+	}
+
+CTSmallWindowRaster::~CTSmallWindowRaster()
+	{
+	if (iGc)
+	    {
+	    iGc->Deactivate();
+	    delete iGc;
+	    }
+	delete iSourceBitmap;
+	delete iScreenDev;
+	}
+
+CTWindow* CTSmallWindowRaster::NewL(RWsSession &aWs, 
+		const RWindowTreeNode &aParent, 
+		const TPoint& aStartingPoint,
+		const TSize& aWindowSize)
+	{
+	CTSmallWindowRaster* self = new (ELeave) CTSmallWindowRaster(aStartingPoint, aWindowSize);
+	CleanupStack::PushL(self);
+	self->ConstructL(aWs, aParent);
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+void CTSmallWindowRaster::ConstructL(RWsSession &aWs, const RWindowTreeNode &aParent)
+	{
+	CTWindow::ConstructL(aWs, aParent);
+	iScreenDev = new (ELeave) CWsScreenDevice(aWs);
+	User::LeaveIfError(iScreenDev->Construct());
+	iGc = new (ELeave)CWindowGc(iScreenDev);
+	User::LeaveIfError(iGc->Construct());
+	iGc->Activate(iWindow);
+	}
+
+void CTSmallWindowRaster::LoadL(CSurfaceUtility* /*aUtility*/, TPtrC aFileName)
+	{
+	iLoaded = ETrue;
+	if (aFileName.Match(KBitmapPattern()) != KErrNotFound) // it's a Bitmap
+        {
+        iSourceBitmap = new(ELeave) CFbsBitmap();
+        User::LeaveIfError(iSourceBitmap->Load(aFileName, 0));
+        }
+	else
+	    {
+	    iSourceBitmap = CreateBitmapFromFileL(aFileName);
+	    }
+	iSourceRect = iSourceBitmap->SizeInPixels();	
+	iDestRect = TRect(Size());
+	}
+
+void CTSmallWindowRaster::DrawBitmap(TRect& aSourceRect)
+    {
+    iWindow.BeginRedraw();
+    iGc->DrawBitmap(iDestRect, iSourceBitmap, aSourceRect);
+    iWindow.EndRedraw();
+    }
+
+void CTSmallWindowRaster::RenderL()
+	{
+	CTWindow::RenderL();
+	if (iLoaded)
+	    {
+	    DrawBitmap(iSourceRect);
+	    }
+	}