diff -r 000000000000 -r 2f259fa3e83a lafagnosticuifoundation/cone/tef/twindowposition/twindowposition.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lafagnosticuifoundation/cone/tef/twindowposition/twindowposition.cpp Tue Feb 02 01:00:49 2010 +0200 @@ -0,0 +1,322 @@ +// Copyright (c) 2007-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 + @test + @internalComponent - Internal Symbian test code +*/ + +#include +#include +#include "twindowposition.h" + +TPoint KWindowPosition(0,0); +TPoint windowPosition; + +// +// CCoeConD +// +void CCoeConD::ConstructL(const CCoeControl& aParent) + { + CreateWindowL(&aParent); + } + +// +// CCoeConC +// +CCoeConC::CCoeConC(CCoeConB& aParent) : iParent(aParent) + { + } + +void CCoeConC::ConstructL() + { + //C is window owning + //ViewPort + iCoeConD = new (ELeave) CCoeConD; + iCoeConD->ConstructL(iParent); + CreateWindowL(iCoeConD); + //ViewPort + SetParent(&iParent); + SetComponentsToInheritVisibility(); + CopyControlContextFrom(&iParent); + } + +CCoeConC::~CCoeConC() + { + if (iCoeConD) + delete iCoeConD; + } + +void CCoeConC::Draw(const TRect& aRect) const + { + CWindowGc& gc = SystemGc(); + gc.SetDrawMode(CGraphicsContext::EDrawModePEN); + gc.SetBrushColor(TRgb(150,250,20)); + gc.SetBrushStyle(CGraphicsContext::ESolidBrush); + gc.DrawRect(aRect); + windowPosition.SetXY(aRect.iTl.iX, aRect.iTl.iY); + } + +void CCoeConC::SetViewPortRect(TRect aRect ) + { + iCoeConD->SetRect(aRect); + } + +TInt CCoeConC::CountComponentControls() const + { + return 1; + } + +CCoeControl* CCoeConC::ComponentControl(TInt aIndex ) const + { + if( aIndex == 0 ) + { + return iCoeConD; + } + else + { + return NULL; + } + } + +// +// +// CCoeConB +// +// +CCoeConB::CCoeConB():CCoeControl() + { + } + +void CCoeConB::ConstructL(CCoeControl* aParent) + { + //B is non-window-owning control + TPoint pos(0,10); + TSize sizeB(480,50); + iCoeConC = new (ELeave) CCoeConC(*this); + iCoeConC->ConstructL(); + SetComponentsToInheritVisibility(); + iCoeConC->SetViewPortRect(Rect()); + iCoeConC->SetSize(sizeB); + SetParent(aParent); + ActivateL(); + } + +CCoeConB::~CCoeConB() + { + if (iCoeConC) + delete iCoeConC; + } + +void CCoeConB::Draw(const TRect& aRect) const + { + CWindowGc& gc = SystemGc(); + gc.SetDrawMode(CGraphicsContext::EDrawModePEN); + gc.SetBrushColor(TRgb(200,200,40)); + gc.SetBrushStyle(CGraphicsContext::ESolidBrush); + gc.DrawRect(aRect); + } + +TInt CCoeConB::CountComponentControls() const + { + return 1; + } + +CCoeControl* CCoeConB::ComponentControl(TInt aIndex ) const + { + if( aIndex == 0 ) + { + return iCoeConC; + } + else + { + return NULL; + } + } + +// +// +// CCoeConTestView - control 'A' +// +// +CCoeConTestView::CCoeConTestView():CCoeControl() + { + } + +void CCoeConTestView::ConstructL(const TRect& /*aRect*/) + { + CreateWindowL(); //A is window owning + TPoint pos(0,10); + TSize sizeB(480,100); + SetPosition(pos); + iCoeControlB = new (ELeave) CCoeConB(); + //Swap order here need to set container window first + iCoeControlB->SetContainerWindowL(Window()); + iCoeControlB->SetExtent(pos,sizeB); + iCoeControlB->ConstructL(this); + ActivateL(); + } + +CCoeConTestView::~CCoeConTestView() + { + if (iCoeControlB) + delete iCoeControlB; + } + +void CCoeConTestView::Draw(const TRect& aRect) const + { + // Draw main application window + CWindowGc& gc = SystemGc(); + gc.SetDrawMode(CGraphicsContext::EDrawModePEN); + gc.SetBrushColor(TRgb(200,200,200)); + gc.SetBrushStyle(CGraphicsContext::ESolidBrush); + gc.DrawRect(aRect); + } + +void CCoeConTestView::DrawCoeConB() const + { + // Draw the window owning and non-window owning controls + iCoeControlB->DrawNow(); + TInt exitReason; + if (windowPosition == KWindowPosition) + { + exitReason = KErrNone; + } + else + { + exitReason = KErrWindowPosDoesNotMatch; + } + RProcess().Terminate(exitReason); + } + +TInt CCoeConTestView::CountComponentControls() const + { + return 1; + } + +CCoeControl* CCoeConTestView::ComponentControl(TInt aIndex) const + { + if (aIndex == 0) + { + return iCoeControlB; + } + else + { + return NULL; + } + + } +/* +void CCoeConTestView::ClearScr() + { + CWindowGc& gc = SystemGc(); + gc.SetDrawMode(CGraphicsContext::EDrawModePEN); + gc.SetBrushColor(TRgb(200,200,200)); + gc.SetBrushStyle(CGraphicsContext::ESolidBrush); + gc.Clear(); + } +*/ +// +// +// CCoeConTestAppUi +// +// +CCoeConTestAppUi::CCoeConTestAppUi() : CTestAppUi(NULL, KNullDesC) + { + } + +void CCoeConTestAppUi::ConstructL() + { + CTestAppUi::ConstructL(); + iAppView = new(ELeave) CCoeConTestView; + iAppView->ConstructL(ClientRect()); + AutoTestManager().StartAutoTest(); + } + +CCoeConTestAppUi::~CCoeConTestAppUi() + { + if (iAppView) + { + delete iAppView; + } + } + +void CCoeConTestAppUi::TestWindowPosition() + { + iAppView->DrawCoeConB(); + } + +void CCoeConTestAppUi::RunTestStepL(TInt aNumStep) + { + switch(aNumStep) + { + case 1: + { + TRAPD(err, TestWindowPosition()); + if (err == KErrNone) + { + AutoTestManager().FinishAllTestCases(CAutoTestManager::EPass); + } + else + { + AutoTestManager().FinishAllTestCases(CAutoTestManager::EFailed); + } + break; + } + default: + break; + } + } + +// +// +// CCoeConTestDocument +// +// +CCoeConTestDocument::CCoeConTestDocument(CEikApplication& aApp) + : CEikDocument(aApp) + { + } + +CEikAppUi* CCoeConTestDocument::CreateAppUiL() + { + return new(ELeave) CCoeConTestAppUi; + } + +// +// +// CCoeConTestApp +// +// +TUid CCoeConTestApp::AppDllUid() const + { + return KUidCoeControlTestApp; + } + +CApaDocument* CCoeConTestApp::CreateDocumentL() + { + return new(ELeave) CCoeConTestDocument(*this); + } + +LOCAL_C CApaApplication* NewApplication() + { + return new CCoeConTestApp; + } + +GLDEF_C TInt E32Main() + { + return EikStart::RunApplication(NewApplication); + }