--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lafagnosticuifoundation/cone/tef/TConeZoomFont.cpp Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,446 @@
+// 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 <coeaui.h>
+#include <coemain.h>
+#include <coecntrl.h>
+#include <coefont.h>
+#include <coedef.h>
+#include <coesndpy.h>
+#include <coefontprovider.h>
+#include <basched.h>
+#include <bassnd.h>
+#include <ecom/ecom.h>
+#include "TConeZoomFont.h"
+
+_LIT(KConeZoomFontText, "Zoom text!");
+
+
+class CConeZoomFontControl : public CCoeControl
+ {
+public:
+ static CConeZoomFontControl* NewL(const TRect& aRect);
+ CConeZoomFontControl();
+ ~CConeZoomFontControl();
+ void ConstructL(const TRect& aRect);
+ TZoomFactor AccZoom();
+private:
+ // Inherited from CCoeControl
+ void Draw(const TRect& /*aRect*/) const;
+
+private:
+ HBufC* iConeZoomFontText;
+ TCoeFont iFont;
+ };
+
+class CConeZoomFontView : public CCoeControl
+ {
+public:
+ static CConeZoomFontView* NewL();
+ CConeZoomFontView();
+ ~CConeZoomFontView();
+ void ConstructL();
+
+ void Test1L();
+ void Test2L();
+ void Test3L();
+
+ TInt CountComponentControls() const;
+ CCoeControl* ComponentControl(TInt aIndex) const;
+
+private:
+ // Inherited from CCoeControl
+ void Draw(const TRect& /*aRect*/) const;
+ void SizeChanged();
+
+private:
+ CConeZoomFontControl* iControl;
+ };
+
+
+//
+//
+// CConeZoomFontControl
+//
+//
+CConeZoomFontControl::CConeZoomFontControl():
+iFont(TCoeFont::NormalFont())
+ {
+ }
+
+CConeZoomFontControl* CConeZoomFontControl::NewL(const TRect& aRect)
+ {
+ CConeZoomFontControl* self = new(ELeave) CConeZoomFontControl();
+ CleanupStack::PushL(self);
+ self->ConstructL(aRect);
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+CConeZoomFontControl::~CConeZoomFontControl()
+ {
+ delete iConeZoomFontText;
+ }
+
+void CConeZoomFontControl::ConstructL(const TRect& /*aRect*/)
+ {
+ iConeZoomFontText = KConeZoomFontText().AllocL();
+ }
+
+void CConeZoomFontControl::Draw(const TRect& /*aRect*/) const
+ {
+ CWindowGc& gc = SystemGc();
+ TRect drawRect = Rect();
+ gc.Clear();
+ drawRect.Shrink(10,10);
+ gc.DrawRect(drawRect);
+
+ // Testing bit - get the correct font based on the current zoom factor.
+ // NB, the Font() function takes a non-const reference to a TZoomFactor as
+ // its second argument, so we can't pass the direct return from AccumulatedZoom()
+ // as might seem to be the natural thing to do.
+ TZoomFactor junk = AccumulatedZoom();
+ const CFont& fontUsed = FindFontProvider().Font(TCoeFont::TitleFont(), junk);
+ gc.UseFont(&fontUsed);
+ TInt baselineOffset=(drawRect.Height() + fontUsed.HeightInPixels())/2;
+ gc.DrawText(*iConeZoomFontText,drawRect,baselineOffset,CGraphicsContext::ECenter, 0);
+ gc.DiscardFont();
+ }
+
+TZoomFactor CConeZoomFontControl::AccZoom()
+ {
+ return AccumulatedZoom();
+ }
+
+//
+//
+// CConeZoomFontView
+//
+//
+CConeZoomFontView::CConeZoomFontView()
+ {
+ }
+
+CConeZoomFontView* CConeZoomFontView::NewL()
+ {
+ CConeZoomFontView* self = new(ELeave) CConeZoomFontView();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+CConeZoomFontView::~CConeZoomFontView()
+ {
+ delete iControl;
+ }
+
+TInt CConeZoomFontView::CountComponentControls() const
+ {
+ return 1;
+ }
+
+/**
+ @SYMTestCaseID UIF-TConeZoomFont-Test1L
+
+ @SYMPREQ 857
+
+ @SYMTestCaseDesc
+ The parent is set to have relative zoom factor of 1000, and the child a relative zoom
+ of 500 using the CCoeControl:: SetZoomFactorL. This should give a cumulative zoom
+ factor of 500. The child will draw text in its rectangle based this cumulative zoom factor.
+
+ @SYMTestPriority High
+
+ @SYMTestStatus Implemented
+
+ @SYMTestActions
+ Set the zoom factors of the parent and child objects
+ Chect the accumulated zoom is calculated correctly
+ finally call draw now to display zoomed text
+
+ @SYMTestExpectedResults
+ Will leave if accumulated zoom factor is incorrect, zoomed text is displayed.
+
+ */
+void CConeZoomFontView::Test1L()
+ {
+ TInt viewZoom = 1000;
+ TInt controlZoom = 500;
+
+ SetZoomFactorL(viewZoom, ERelativeZoom);
+ iControl->SetZoomFactorL(controlZoom, ERelativeZoom);
+ TZoomFactor viewZoomFactor = AccumulatedZoom();
+ TZoomFactor controlZoomFactor = iControl->AccZoom();
+
+ //Check to see if the AccumulatedZoom returns the correct values
+ if ((viewZoomFactor.ZoomFactor() != viewZoom) ||
+ (controlZoomFactor.ZoomFactor() != ((viewZoom * controlZoom) /1000)))
+ {
+ User::Leave(-1);
+ }
+
+ DrawNow();
+ }
+
+/**
+ @SYMTestCaseID UIF-TConeZoomFont-Test2L
+
+ @SYMPREQ 857
+
+ @SYMTestCaseDesc
+ The parent is set to have relative zoom factor of 500, and the child a absolute
+ zoom of 1000. This should give a cumulative zoom factor of 1000 (because the
+ child's zoom is absolute). The child will draw text in its rectangle based this
+ cumulative zoom factor.
+
+ @SYMTestPriority High
+
+ @SYMTestStatus Implemented
+
+ @SYMTestActions
+ Set the zoom factors of the parent and child objects
+ Chect the accumulated zoom is calculated correctly
+ finally call draw now to display zoomed text
+
+ @SYMTestExpectedResults
+ Will leave if accumulated zoom factor is incorrect, zoomed text is displayed.
+
+ */
+void CConeZoomFontView::Test2L()
+ {
+ TInt viewZoom = 500;
+ TInt controlZoom = 1000;
+
+ SetZoomFactorL(viewZoom, ERelativeZoom);
+ iControl->SetZoomFactorL(controlZoom, EAbsoluteZoom);
+ TZoomFactor viewZoomFactor = AccumulatedZoom();
+ TZoomFactor controlZoomFactor = iControl->AccZoom();
+
+ //Check to see if the AccumulatedZoom returns the correct values
+ if ((viewZoomFactor.ZoomFactor() != viewZoom) ||
+ (controlZoomFactor.ZoomFactor() != (controlZoom)))
+ {
+ User::Leave(-1);
+ }
+
+ DrawNow();
+ }
+
+/**
+ @SYMTestCaseID UIF-TConeZoomFont-Test3L
+
+ @SYMPREQ 857
+
+ @SYMTestCaseDesc
+ The parent is set to have absolute zoom factor of 1500, and the child
+ a relative zoom of 1500. This should give a cumulative zoom factor of
+ 2250. The child will draw text in its rectangle based this cumulative
+ zoom factor.
+
+ @SYMTestPriority High
+
+ @SYMTestStatus Implemented
+
+ @SYMTestActions
+ Set the zoom factors of the parent and child objects
+ Chect the accumulated zoom is calculated correctly
+ finally call draw now to display zoomed text
+
+ @SYMTestExpectedResults
+ Will leave if accumulated zoom factor is incorrect, zoomed text is displayed.
+
+ */
+void CConeZoomFontView::Test3L()
+ {
+
+ TInt viewZoom = 1500;
+ TInt controlZoom = 1500;
+
+ SetZoomFactorL(viewZoom, EAbsoluteZoom);
+ iControl->SetZoomFactorL(controlZoom, ERelativeZoom);
+ TZoomFactor viewZoomFactor = AccumulatedZoom();
+ TZoomFactor controlZoomFactor = iControl->AccZoom();
+
+ //Check to see if the AccumulatedZoom returns the correct values
+ if ((viewZoomFactor.ZoomFactor() != viewZoom) ||
+ (controlZoomFactor.ZoomFactor() != ((viewZoom * controlZoom) /1000)))
+ {
+ User::Leave(-1);
+ }
+
+ DrawNow();
+ }
+
+CCoeControl* CConeZoomFontView::ComponentControl(TInt /*aIndex*/) const
+ {
+ return iControl;
+ }
+
+void CConeZoomFontView::ConstructL()
+ {
+ CreateWindowL();
+
+ iControl = CConeZoomFontControl::NewL(Rect());
+ iControl->SetContainerWindowL(*this);
+ iControl->SetParent(this);
+
+ SetExtent( TPoint(20,20),TSize(600,200) );
+
+ SetZoomFactorL(1000);
+ iControl->SetZoomFactorL(1000, EAbsoluteZoom);
+
+ ActivateL();
+ }
+
+void CConeZoomFontView::Draw(const TRect& /*aRect*/) const
+ {
+
+ CWindowGc& gc = SystemGc();
+ TRect drawRect = Rect();
+ gc.Clear();
+ drawRect.Shrink(10,10);
+ gc.DrawRect(drawRect);
+
+ }
+
+void CConeZoomFontView::SizeChanged()
+ {
+ ComponentControl(1)->SetRect( TRect(TPoint(20,20),TSize(560,160))) ;
+ }
+
+//
+//
+// CConeZoomFontAppUi
+//
+//
+CConeZoomFontAppUi::CConeZoomFontAppUi(CTmsTestStep* aStep) :
+CTestCoeAppUi(aStep)
+{}
+
+CConeZoomFontAppUi::~CConeZoomFontAppUi()
+ {
+ delete iView;
+ }
+
+
+void CConeZoomFontAppUi::ConstructL()
+ {
+ CTestCoeAppUi::ConstructL();
+
+ iView = CConeZoomFontView::NewL();
+
+ AutoTestManager().StartAutoTest();
+ }
+
+void CConeZoomFontAppUi::RunTestStepL(TInt aStepNum)
+ {
+
+ User::After(TTimeIntervalMicroSeconds32(1000000));
+
+ TInt err;
+
+ switch(aStepNum)
+ {
+ case 1:
+ SetTestStepID(_L("UIF-TConeZoomFont-Test1L"));
+ _LIT(KTest1, "Zoom Relative 0.5");
+ INFO_PRINTF1(KTest1);
+ TRAP(err, iView->Test1L());
+ RecordTestResultL();
+ break;
+ case 2:
+ SetTestStepID(_L("UIF-TConeZoomFont-Test2L"));
+ _LIT(KTest2, "Zoom Absolute 2.0");
+ INFO_PRINTF1(KTest2);
+ TRAP(err, iView->Test2L());
+ RecordTestResultL();
+ break;
+ case 3:
+ SetTestStepID(_L("UIF-TConeZoomFont-Test3L"));
+ _LIT(KTest3, "Zoom Relative 1.5*1.5");
+ INFO_PRINTF1(KTest3);
+ TRAP(err, iView->Test3L());
+ RecordTestResultL();
+ CloseTMSGraphicsStep();
+ break;
+ case 4:
+ AutoTestManager().FinishAllTestCases(CAutoTestManager::EPass);
+ break;
+
+ }
+ }
+
+//
+//
+// CConeZoomFontStep
+//
+//
+void CTConeZoomFontStep::ConstructAppL(CCoeEnv* aCoe)
+ { // runs inside a TRAP harness
+ aCoe->ConstructL();
+ CConeZoomFontAppUi* appUi= new (ELeave) CConeZoomFontAppUi(this);
+ aCoe->SetAppUi(appUi);
+ appUi->ConstructL();
+ }
+
+CTConeZoomFontStep::CTConeZoomFontStep()
+ {
+ SetTestStepName(KTConeZoomFontStep);
+ }
+
+CTConeZoomFontStep::~CTConeZoomFontStep()
+{}
+
+
+TVerdict CTConeZoomFontStep::doTestStepL() // main function called by E32
+ {
+ _LIT(KTestStart, "Test Started");
+ INFO_PRINTF1(KTestStart);
+
+ PreallocateHALBuffer();
+
+ __UHEAP_MARK;
+
+ CCoeEnv* coe=new(ELeave) CCoeEnv;
+ TRAPD(err,ConstructAppL(coe));
+
+ if (!err)
+ coe->ExecuteD();
+ else
+ {
+ SetTestStepResult(EFail);
+ delete coe;
+ }
+
+ REComSession::FinalClose();
+
+ __UHEAP_MARKEND;
+
+ _LIT(KTestFinished, "Test Finished");
+ INFO_PRINTF1(KTestFinished);
+ return TestStepResult();
+ }
+
+
+
+
+
+