--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lafagnosticuifoundation/uigraphicsutils/tef/TBORDERStep.CPP Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,248 @@
+// 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:
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+
+#include <e32keys.h>
+#include <basched.h>
+#include <coemain.h>
+#include <coeaui.h>
+#include <gulutil.h>
+
+#include "TBorderstep.h"
+
+//
+// class CSimpleControl
+//
+
+
+void CSimpleControl::ConstructL()
+ {
+ CreateWindowL();
+ Window().SetShadowDisabled(ETrue);
+ iAlign=CGraphicsContext::ECenter;
+ SetExtentToWholeScreen();
+ ActivateL();
+ iBuf1 = _L("This &line has 0 margin...");
+ iBuf2 = _L("and this one has a &margin of 20!");
+ iRect = TRect(TPoint(40,40),TSize(560,160));
+ }
+
+TKeyResponse CSimpleControl::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)
+ {
+ if (aType!=EEventKey)
+ return(EKeyWasNotConsumed);
+ TInt code=aKeyEvent.iCode;
+ if (code==CTRL('e'))
+ CBaActiveScheduler::Exit();
+ if (code==CTRL('l'))
+ iAlign=CGraphicsContext::ELeft;
+ else if (code==CTRL('r'))
+ iAlign=CGraphicsContext::ERight;
+ else if (code==CTRL('c'))
+ iAlign=CGraphicsContext::ECenter;
+ else
+ return(EKeyWasConsumed);
+ ActivateGc();
+ DrawText();
+ DeactivateGc();
+ return(EKeyWasConsumed);
+ }
+
+void CSimpleControl::DrawBorder(CWindowGc& aGC, TRgb aColor, TGulBorder::TBorderType aBorderType, TInt aYPos, TInt aYTextPos, const TDesC &aBorderName) const
+ {
+ TGulBorder border(aBorderType);
+ aGC.SetClippingRect(TRect(TPoint(30,aYPos),TSize(100,20)));
+ border.Draw(aGC,TRect(TPoint(30,aYPos),TSize(100,20)));
+ aGC.CancelClippingRect();
+ border.Draw(aGC,TRect(TPoint(140,aYPos),TSize(100,20)));
+ aGC.SetPenColor(aColor);
+ aGC.DrawText(aBorderName,TPoint(250,aYTextPos));
+ }
+
+void CSimpleControl::Draw(const TRect& /*aRect*/) const
+ {
+ CWindowGc& gc = SystemGc();
+ gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
+ gc.DrawRect(Rect());
+ gc.UseFont(iCoeEnv->NormalFont());
+
+ TInt yPos = 30;
+ TInt yTextPos = 42;
+ const TInt yInc = 25;
+
+ DrawBorder(gc,KRgbBlack,TGulBorder::ENone, yPos, yTextPos,_L("ENone"));
+ yTextPos+=yInc;
+ yPos+=yInc;
+
+ DrawBorder(gc,KRgbBlack,TGulBorder::ESingleBlack, yPos, yTextPos,_L("ESingleBlack"));
+ yTextPos+=yInc;
+ yPos+=yInc;
+
+ DrawBorder(gc,KRgbBlack,TGulBorder::EShallowRaised, yPos, yTextPos,_L("EShallowRaised"));
+ yTextPos+=yInc;
+ yPos+=yInc;
+
+ DrawBorder(gc,KRgbBlack,TGulBorder::EDeepRaised, yPos, yTextPos,_L("EDeepRaised"));
+ yTextPos+=yInc;
+ yPos+=yInc;
+
+ DrawBorder(gc,KRgbBlack,TGulBorder::EShallowSunken, yPos, yTextPos,_L("EShallowSunken"));
+ yTextPos+=yInc;
+ yPos+=yInc;
+
+ DrawBorder(gc,KRgbBlack,TGulBorder::EDeepSunken, yPos, yTextPos,_L("EDeepSunken"));
+ yTextPos+=yInc;
+ yPos+=yInc;
+
+ DrawBorder(gc,KRgbBlack,TGulBorder::EThickDeepRaisedWithOutline, yPos, yTextPos,_L("EThickDeepRaisedWithOutline"));
+ yTextPos+=yInc;
+ yPos+=yInc;
+ }
+
+void CSimpleControl::DrawText() const
+ { // assumes brush style is NULL on entry to routine; trashed at exit
+ CWindowGc& gc = SystemGc();
+ TRect rect = iRect;
+ rect.Shrink(TSize(80,60));
+ rect.Move(0,-30);
+ const CFont* font = iCoeEnv->NormalFont();
+ gc.UseFont(font);
+ TRect tmp=rect;
+ gc.DrawRect(tmp);
+ gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
+ tmp.Shrink(1,1);
+ DrawUtils::DrawText(gc,iBuf1,tmp,font->AscentInPixels()*2,iAlign,0,font);
+ rect.Move(0,60);
+ gc.SetBrushStyle(CGraphicsContext::ENullBrush);
+ gc.DrawRect(rect);
+ rect.Shrink(1,1);
+ gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
+ DrawUtils::DrawText(gc,iBuf2,rect,font->AscentInPixels()*2,iAlign,20,font);
+ }
+
+
+CTestBorderUi::CTestBorderUi(CTmsTestStep* aStep) :
+ CTestCoeAppUi(aStep)
+ {}
+
+CTestBorderUi::~CTestBorderUi()
+ {
+ if(iControl)
+ {
+// RemoveFromStack(iControl);
+// delete iControl;
+ }
+ }
+
+void CTestBorderUi::ConstructL()
+ {
+ CTestCoeAppUi::ConstructL();
+ iControl=new(ELeave) CSimpleControl;
+ AddToStackL(iControl,ECoeStackPriorityDefault,ECoeStackFlagOwnershipTransfered);
+ iControl->ConstructL();
+
+ AutoTestManager().StartAutoTest();
+ }
+
+
+void CTestBorderUi::RunTestStepL(TInt aStep)
+ {
+ TKeyEvent theKeyEvent;
+
+
+ User::After(TTimeIntervalMicroSeconds32(1000000));
+
+ switch(aStep)
+ {
+ case 1:
+ theKeyEvent.iCode = CTRL('l');
+ INFO_PRINTF1(_L("Left alignment"));
+ iCoeEnv->SimulateKeyEventL(theKeyEvent, EEventKey);
+ break;
+ case 2:
+ theKeyEvent.iCode = CTRL('r');
+ INFO_PRINTF1(_L("Right alignment"));
+ iCoeEnv->SimulateKeyEventL(theKeyEvent, EEventKey);
+ break;
+ case 3:
+ theKeyEvent.iCode = CTRL('c');
+ INFO_PRINTF1(_L("Center alignment"));
+ iCoeEnv->SimulateKeyEventL(theKeyEvent, EEventKey);
+ break;
+ case 4:
+ AutoTestManager().FinishAllTestCases(CAutoTestManager::EPass);
+ break;
+ }
+
+ }
+
+//
+// Main
+//
+
+void CTBorderStep::ConstructAppL(CCoeEnv* aCoeEnv)
+ { // runs inside a TRAP harness
+ aCoeEnv->ConstructL();
+ CTestBorderUi* appUi=new(ELeave) CTestBorderUi(this);
+ appUi->ConstructL();
+ aCoeEnv->SetAppUi(appUi);
+ }
+
+
+CTBorderStep::~CTBorderStep()
+/**
+ Destructor
+ */
+ {
+ }
+
+CTBorderStep::CTBorderStep()
+/**
+ Constructor
+ */
+ {
+ // Call base class method to set up the human readable name for logging
+ SetTestStepName(KTBorderStep);
+ }
+
+
+TVerdict CTBorderStep::doTestStepL()
+ {
+ INFO_PRINTF1(_L("Test Started"));
+
+ PreallocateHALBuffer();
+
+ __UHEAP_MARK;
+
+ CCoeEnv* coe=new(ELeave) CCoeEnv;
+ TRAPD(err,ConstructAppL(coe));
+ if (!err)
+ coe->ExecuteD();
+ else
+ {
+ SetTestStepResult(EFail);
+ delete coe;
+ }
+
+ INFO_PRINTF1(_L("Test Finished"));
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }