diff -r 000000000000 -r 2f259fa3e83a commonuisupport/grid/tef/TIMG0.CPP --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commonuisupport/grid/tef/TIMG0.CPP Tue Feb 02 01:00:49 2010 +0200 @@ -0,0 +1,156 @@ +// Copyright (c) 2005-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: +// Implements the CSheetLableImg class which is used as a Grid Label +// for Grid0Step.\n +// Provides handlers to draw a row label,column label,to draw the text in the cell +// as well as calculate the side label width.\n +// +// + +/** + @file + @internalComponent - Internal Symbian test code +*/ + +#include +#include +#include +#include "TIMG0.H" +#include + + +#define KRgbGridLabelShadows TRgb(85,85,85) +/** + Constructor for CSheetLabelImg.\n + Used as a Grid Label for GRID0Step.\n +* +*/ +CSheetLabelImg::CSheetLabelImg(const TFontSpec& aFontSpec,MGraphicsDeviceMap* aGraphicsDeviceMap) + : CGridLabelImg(aFontSpec,aGraphicsDeviceMap) + { + } +/** + Auxiliary Function for T-Grid0Step-RunTestStepL.\n + Function which draws the Label for each row of the grid table.\n +*/ +void CSheetLabelImg::DrawRowLabelL(CGraphicsContext* aGc,TInt aRow,const TRect &aRect) const + { + TBuf<32> buf; + buf.Num(aRow+1); + DrawText(aGc,buf,aRect); + } +/** + Auxiliary Function for T-Grid0Step-RunTestStepL.\n + Function which draws the Label for each column of the grid table.\n +*/ +void CSheetLabelImg::DrawColLabelL(CGraphicsContext* aGc,TInt aCol,const TRect &aRect) const + { + TBuf<32> buf; + if (aCol>25) + buf.Append(aCol/26+'A'-1); + buf.Append(aCol%26+'A'); + DrawText(aGc,buf,aRect); + } +/** + Auxiliary Function for T-Grid0Step-RunTestStepL.\n + Function to draw the text.\n + Invokes the DrawText of CGraphicsContext to Draw the specified + text at a given position using the parameters supplied.\n + The Pen and brush settings are configured before drawing the text.\n +*/ +void CSheetLabelImg::DrawText(CGraphicsContext* aGc,const TDesC& aDes,const TRect& aRect) const + { +// aGc->SetPenColor(KRgbGridBackground); + aGc->SetPenColor(iGridColors.iBackground); + aGc->DrawLine(aRect.iTl,TPoint(aRect.iBr.iX,aRect.iTl.iY)); + aGc->DrawLine(aRect.iTl,TPoint(aRect.iTl.iX,aRect.iBr.iY)); + TRect rect=aRect; + rect.iTl+=TPoint(1,1); + TInt offset = rect.Height()-iFont->DescentInPixels(); +// aGc->SetPenColor(KRgbGridForeground); + aGc->SetPenColor(iGridColors.iForeground); + aGc->SetBrushStyle(CGraphicsContext::ESolidBrush); + aGc->SetBrushColor(KRgbGridLabels); + aGc->UseFont(iFont); + aGc->DrawText(aDes,rect,offset,CGraphicsContext::ECenter); + aGc->SetBrushStyle(CGraphicsContext::ENullBrush); + } +/** + Auxiliary Function for T-Grid0Step-RunTestStepL.\n + Function that draws the top left label of the grid table.\n + Sets the Pen colour using SetPenColor API of CGraphicsContext class.\n + Set the x and y co-ordinates and Invokes the DrawLine of CGraphicsContext to + draw a straight line between the points.\n + Calls the static implementation of FillRect in TGridUtils to + fill the rectangle with the specified colour(KRgbGridLabels).\n +*/ +void CSheetLabelImg::DrawTopLeftLabelL(CGraphicsContext* aGc,const TRect& aRect) const + { + TRect rect=aRect; + for (TInt ii=0;ii<2;ii++) + { +// aGc->SetPenColor(KRgbGridBackground); + aGc->SetPenColor(iGridColors.iBackground); + TPoint finish(rect.iBr.iX,rect.iTl.iY); + aGc->DrawLine(rect.iTl,finish); + finish.SetXY(rect.iTl.iX,rect.iBr.iY); + aGc->DrawLine(rect.iTl,finish); + aGc->SetPenColor(KRgbGridLabelShadows); + TPoint start(rect.iTl.iX+1,rect.iBr.iY-1); + finish.SetXY(rect.iBr.iX,rect.iBr.iY-1); + aGc->DrawLine(start,finish); + start.SetXY(rect.iBr.iX-1,rect.iBr.iY-2); + finish.SetXY(rect.iBr.iX-1,rect.iTl.iY); + aGc->DrawLine(start,finish); + rect.Shrink(1,1); + } + TGridUtils::FillRect(aGc,KRgbGridLabels,rect); + } +/** + Auxiliary Function for T-Grid0Step-RunTestStepL.\n + Draw function for the row cursor of the gridcell.\n +*/ +void CSheetLabelImg::DrawRowCursorL(CGraphicsContext* aGc,const TRect& aRect) const + { + aGc->DrawText(_L(">"),aRect,(aRect.Height()+iFont->AscentInPixels())/2,CGraphicsContext::ERight); + } +/** + Auxiliary Function for T-Grid0Step-RunTestStepL.\n + Gets the width of the side label.\n + @return The width of the side label in pixels.\n +*/ +TInt CSheetLabelImg::SideLabelWidthInPixels(TInt aStartRow,TInt aEndRow) const + { + TInt maxLen=Max(Abs(aStartRow),Abs(aEndRow)); + if (maxLen<9) + maxLen=9; //Single digit labels must be same width as double digit labels + TBuf<32> buf; + buf.Num(maxLen+1); + return (iFont->TextWidthInPixels(buf) + + iGraphicsDeviceMap->HorizontalTwipsToPixels(ESideLabelMarginWidthInTwips)); + } +/** + Constructor for the SheetCellImg class.\n +*/ +CSheetCellImg::CSheetCellImg() + { + } +/** + Auxiliary Function for T-Grid0Step-RunTestStepL.\n + Draw function for a particular cell in the Grid table.\n + The function does nothing currently.\n +*/ +void CSheetCellImg::DrawL(CGraphicsContext* /*aGc*/,const TCellRef& /*aCell*/,const TRect& /*aRect*/, + const TRect& /*aClipRect*/) const + {}