diff -r 2717213c588a -r 171fae344dd4 windowing/windowserver/tman/TTEXT.CPP --- a/windowing/windowserver/tman/TTEXT.CPP Tue Jun 22 15:21:29 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,265 +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: -// Print some text, to be checked by eye -// -// - -#include -#include -#include "W32STD.H" -#include "../tlib/testbase.h" -#include "TMAN.H" - -class TTextTest; - -enum {EDrawModeFonts,EDrawModeCharJust,EDrawModeWordJust}; - -_LIT(KTestFontTypefaceName,"DejaVu Sans Condensed"); - -class CTextWindow : public CTWin - { -public: - CTextWindow(TTextTest *aTest); - void SetUpLD(TPoint pos,TSize size,CTWinBase *parent, CWindowGc &aGc); - void Draw(); - void WinKeyL(const TKeyEvent &aKey,const TTime &aTime); - void ResetPrintLine(); - void Print(const CFont *aFont, const TDesC &aText); - void PrintLine(const CFont *aFont, const TDesC &aText); - void PrintDivider(); - void PrintStylesL(const TDesC &aText, TFontSpec &aFontSpec, const TFontStyle &aFontStyle); - void DrawCharJustified(const TDesC &aText); - void DrawWordJustified(const TDesC &aText); - TBool NextPage(); - void SetDrawMode(TInt aMode); -private: - TInt iDrawMode; - TTextTest *iTest; - CFbsFont *iTmpFont; - TInt iNumTypeFaces; - TInt iTypeFaceIndex; - TInt iXStartPos; - TInt iYpos; - TInt iXpos; - }; - -class TTextTest : public CTestBase - { -public: - TTextTest(); - ~TTextTest(); - TestState DoTestL(); - void ConstructL(); -private: - CTextWindow *iWin; - TSize iWinSize; - TInt iState; - }; - -GLDEF_C CTestBase *CreateTextTest() - { - return(new(ELeave) TTextTest()); - } - -CTextWindow::CTextWindow(TTextTest *aTest) : CTWin(), iDrawMode(EDrawModeWordJust), iTest(aTest) - {} - -void CTextWindow::SetUpLD(TPoint pos,TSize size,CTWinBase *parent, CWindowGc &aGc) - { - ConstructExtLD(*parent,pos,size); - Activate(); - AssignGC(aGc); - iNumTypeFaces=Client()->iScreen->NumTypefaces(); - } - -void CTextWindow::ResetPrintLine() - { - iXpos=iXStartPos=5; - iYpos=2; - } - -void CTextWindow::PrintDivider() - { - iGc->DrawLine(TPoint(0,iYpos+5),TPoint(Size().iWidth,iYpos+5)); - iYpos+=10; - } - -void CTextWindow::Print(const CFont *aFont, const TDesC &aText) - { - iGc->DrawText(aText, TPoint(iXpos, iYpos+aFont->AscentInPixels())); - iXpos+=aFont->TextWidthInPixels(aText); - } - -void CTextWindow::PrintLine(const CFont *aFont, const TDesC &aText) - { - iGc->DrawText(aText, TPoint(iXpos, iYpos+aFont->AscentInPixels())); - iXpos=iXStartPos; - iYpos+=aFont->HeightInPixels()+2; - } - -TBool CTextWindow::NextPage() - { - if (iTypeFaceIndex==(iNumTypeFaces-1)) - return(ETrue); - ++iTypeFaceIndex; - return(EFalse); - } - -void CTextWindow::PrintStylesL(const TDesC &aText, TFontSpec &aFontSpec, const TFontStyle &aFontStyle) - { - aFontSpec.iFontStyle=aFontStyle; - User::LeaveIfError(Client()->iScreen->GetNearestFontToDesignHeightInTwips((CFont *&)iTmpFont, aFontSpec)); - iGc->UseFont(iTmpFont); - Print(iTmpFont,aText); - iGc->SetUnderlineStyle(EUnderlineOn); - Print(iTmpFont,_L("Underline, ")); - iGc->SetStrikethroughStyle(EStrikethroughOn); - Print(iTmpFont,_L("Strikethrough/underline, ")); - iGc->SetUnderlineStyle(EUnderlineOff); - PrintLine(iTmpFont,_L("Strikethrough")); - iGc->SetStrikethroughStyle(EStrikethroughOff); - Client()->iScreen->ReleaseFont(iTmpFont); - iTmpFont=NULL; - } - -void CTextWindow::DrawCharJustified(const TDesC &aText) - { - iGc->SetCharJustification(Size().iWidth-10-iTmpFont->TextWidthInPixels(aText),aText.Length()-1); - PrintLine(iTmpFont, aText); - } - -void CTextWindow::DrawWordJustified(const TDesC &aText) - { - TInt count=0; - for(TInt index=0;indexSetWordJustification(Size().iWidth-10-iTmpFont->TextWidthInPixels(aText),count); - PrintLine(iTmpFont, aText); - } - -void CTextWindow::Draw() -//This function is virtual and so cannot have an 'L' at the end of it's name - { - iGc->Clear(); - ResetPrintLine(); - switch(iDrawMode) - { - case EDrawModeWordJust: - User::LeaveIfError(Client()->iScreen->GetNearestFontToDesignHeightInTwips((CFont *&)iTmpFont, TFontSpec(KTestFontTypefaceName,200))); - iGc->UseFont(iTmpFont); - DrawWordJustified(_L("Hello World")); - DrawWordJustified(_L("One Two Three Four Five Six Seven")); - DrawWordJustified(_L("AA B CC D")); - DrawWordJustified(_L("ONEWORD")); - iGc->DiscardFont(); - Client()->iScreen->ReleaseFont(iTmpFont); - iTmpFont=NULL; - break; - case EDrawModeCharJust: - User::LeaveIfError(Client()->iScreen->GetNearestFontToDesignHeightInTwips((CFont *&)iTmpFont, TFontSpec(KTestFontTypefaceName,200))); - iGc->UseFont(iTmpFont); - DrawCharJustified(_L("Hello World")); - DrawCharJustified(_L("One Two Three Four Five Six Seven")); - DrawCharJustified(_L("AA B CC D")); - DrawCharJustified(_L("ONEWORD")); - iGc->DiscardFont(); - Client()->iScreen->ReleaseFont(iTmpFont); - iTmpFont=NULL; - break; - case EDrawModeFonts: - { - TTypefaceSupport typefaceSupport; - Client()->iScreen->TypefaceSupport(typefaceSupport,iTypeFaceIndex); - TBuf<0x40> title; - TBuf16 tmpBuf; - tmpBuf.Copy(typefaceSupport.iTypeface.iName); - title.Append(tmpBuf); - title.AppendFormat(TRefByValue(_L(", Heights (Min=%d, Max=%d, Num=%d)")),typefaceSupport.iMinHeightInTwips,typefaceSupport.iMaxHeightInTwips,typefaceSupport.iNumHeights); - PrintLine(iFont,title); - PrintDivider(); - for (TInt tfHeight=0;tfHeightiScreen->FontHeightInTwips(iTypeFaceIndex,tfHeight)); - PrintStylesL(_L("Normal, "), fspec, TFontStyle()); - PrintStylesL(_L("Bold, "), fspec, TFontStyle(EPostureUpright,EStrokeWeightBold,EPrintPosNormal)); - PrintStylesL(_L("Italic, "), fspec, TFontStyle(EPostureItalic,EStrokeWeightNormal,EPrintPosNormal)); - PrintStylesL(_L("Bold/italic, "), fspec, TFontStyle(EPostureItalic,EStrokeWeightBold,EPrintPosNormal)); - if (iYpos>Size().iHeight) - break; - } - } - break; - } - } - -void CTextWindow::WinKeyL(const TKeyEvent &aKey,const TTime &) - { - if (iDrawMode!=EDrawModeFonts || (aKey.iCode==EKeyEscape || NextPage())) - CActiveScheduler::Stop(); - else - iWin.Invalidate(); - } - -void CTextWindow::SetDrawMode(TInt aDrawMode) - { - iDrawMode=aDrawMode; - iWin.Invalidate(); - } - -TTextTest::TTextTest() : CTestBase(_L("Text")) - {} - -TTextTest::~TTextTest() - { - CTWin::Delete(iWin); - } - -void TTextTest::ConstructL() - { - CTextWindow *win=new(ELeave) CTextWindow(this); - win->SetUpLD(TPoint(0,0),Client()->iScreen->SizeInPixels(),Client()->iGroup,*Client()->iGc); - iWin=win; - Client()->iGroup->SetCurrentWindow(iWin); - Client()->iGroup->GroupWin()->SetOrdinalPosition(0); - } - -TestState TTextTest::DoTestL() - { - switch(iState) - { - case 0: - LogSubTest(_L("SetWordJustification"),1); - iWin->SetDrawMode(EDrawModeWordJust); - CActiveScheduler::Start(); - iState++; - break; - case 1: - LogSubTest(_L("SetCharJustification"),2); - iWin->SetDrawMode(EDrawModeCharJust); - CActiveScheduler::Start(); - iState++; - break; - case 2: - LogSubTest(_L("Text 1"),3); - iWin->SetDrawMode(EDrawModeFonts); - CActiveScheduler::Start(); - iState++; - break; - default: - return(EFinished); - } - return(ENext); - } -