diff -r 000000000000 -r bde4ae8d615e os/graphics/windowing/windowserverplugins/openwfc/src/debugbardrawer.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/graphics/windowing/windowserverplugins/openwfc/src/debugbardrawer.cpp Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,71 @@ +// Copyright (c) 2008-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: +// + +#include "debugbardrawer.h" + +CDebugBarDrawer::~CDebugBarDrawer() + { + if(iFontStore && iFont) + iFontStore->ReleaseFont(iFont); + delete iFontStore; + iGc=NULL; + } + +CDebugBarDrawer::CDebugBarDrawer(CWsRenderStage* aRenderStage, TInt aScreenWidth): + iRenderStage(aRenderStage), iScreenWidth(aScreenWidth) + {} + +void CDebugBarDrawer::ConstructL() + { + iGc = iRenderStage->ObjectInterface(); + TFontSpec fspec(_L("DejaVu Sans Condensed"), KFontHeightInPixel); + iFontStore = CFbsTypefaceStore::NewL(NULL); + User::LeaveIfError(iFontStore->GetNearestFontToDesignHeightInPixels(iFont, fspec)); + iBaseline = (iFont->BaselineOffsetInPixels() + iFont->AscentInPixels()); + } + +CDebugBarDrawer* CDebugBarDrawer::NewL(CWsRenderStage* aRenderStage, TInt aScreenWidth) + { + CDebugBarDrawer* self = new(ELeave) CDebugBarDrawer(aRenderStage, aScreenWidth); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +void CDebugBarDrawer::DrawDebugBar(const TArray& aDebugText) + { + if (iDebugBarRect.IsEmpty()) + { + iDebugBarRect=TRect(TSize(iScreenWidth, KFontHeightInPixel*aDebugText.Count())); + } + TRegionFix<1> iBarRegion=TRegionFix<1>(iDebugBarRect); + iRenderStage->Begin(&iBarRegion); + iGc->Reset(); + iGc->SetDrawMode(MWsGraphicsContext::EDrawModePEN); + iGc->SetPenColor(KRgbWhite); + iGc->SetPenStyle(MWsGraphicsContext::ESolidPen); + iGc->SetBrushStyle(MWsGraphicsContext::ESolidBrush); + iGc->SetBrushColor(KRgbBlack); + iGc->DrawRect(iDebugBarRect); + iGc->SetFont(iFont); + for (TInt k = 0; k < aDebugText.Count(); k++) + { + iGc->DrawText(aDebugText[k], NULL, TPoint(0, iBaseline*(k+1)+2)); + } + iRenderStage->End(NULL); + } + +