diff -r 000000000000 -r 2e3d3ce01487 appfw/viewserver/test/tviews/tvw/tvwappui.CPP --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/appfw/viewserver/test/tviews/tvw/tvwappui.CPP Tue Feb 02 10:12:00 2010 +0200 @@ -0,0 +1,144 @@ +// Copyright (c) 2008-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 +#include +#include +#include + +#include "tvwappui.H" + +// +// Constants. +// + +const TInt KAppViewArrayGranularity=5; + + +// +// CTestVwAppUi. +// + +CTestVwAppUi::CTestVwAppUi() + :iAppViewArray(KAppViewArrayGranularity) + { + } + +CTestVwAppUi::~CTestVwAppUi() + { + const TInt numViews=iAppViewArray.Count(); + for (TInt ii=numViews-1;ii>=0;--ii) + { + CTestVwAppView* thisView=iAppViewArray[ii]; + DeregisterViewAndRemoveStack(*thisView); + iAppViewArray.Delete(ii); + delete thisView; + } + } + +void CTestVwAppUi::ConstructL() + { + CEikAppUi::ConstructL(); + } + +void CTestVwAppUi::ActivateViewL(const TVwsViewId& aViewId,TUid aCustomMessageId,const TDesC16& aCustomMessage) + { + HBufC8* narrowMessage=HBufC8::NewLC(aCustomMessage.Size()); + TPtr8 ptr=narrowMessage->Des(); + ptr.Copy((TUint8*)aCustomMessage.Ptr(),aCustomMessage.Size()); + + CCoeAppUi::ActivateViewL(aViewId,aCustomMessageId,*narrowMessage); + CleanupStack::PopAndDestroy(); // narrowMessage. + } + +void CTestVwAppUi::AddViewL(CTestVwAppView* aView) + { + ASSERT(aView); + iAppViewArray.AppendL(aView); + TRAPD(err,RegisterViewAndAddStackL(*aView)); + if (err) + { + iAppViewArray.Delete(AppViewIndex(aView)); + User::Leave(err); + } + } + +void CTestVwAppUi::DeleteView(const TVwsViewId& aViewId) + { + const TInt viewIndex=AppViewIndex(aViewId); + ASSERT(viewIndex!=KErrNotFound); + CTestVwAppView* view=iAppViewArray[viewIndex]; + DeregisterViewAndRemoveStack(*view); + delete view; + iAppViewArray.Delete(viewIndex); + } + +CTestVwAppView* CTestVwAppUi::View(const TVwsViewId& aViewId) const + { + ASSERT(AppViewIndex(aViewId)!=KErrNotFound); + return iAppViewArray[AppViewIndex(aViewId)]; + } + +CTestVwAppView* CTestVwAppUi::ActiveView() const + { + TVwsViewId activeViewId; + if (GetActiveViewId(activeViewId)==KErrNone) + { + return iAppViewArray[AppViewIndex(activeViewId)]; + } + + return NULL; + } + +void CTestVwAppUi::HandleModelChangeL() + { + CTestVwAppView* activeView=ActiveView(); + if (activeView) + { + activeView->HandleModelChangeL(); + } + } + +TInt CTestVwAppUi::AppViewIndex(const TVwsViewId& aViewId) const + { + const TInt numAppViews=iAppViewArray.Count(); + + for (TInt ii=0;iiViewId()==aViewId) + return ii; + } + + return KErrNotFound; + } + +TInt CTestVwAppUi::AppViewIndex(CTestVwAppView* aView) const + { + TInt pos; + TKeyArrayFix key(0,ECmpTInt); + + if (iAppViewArray.Find(aView,key,pos)==KErrNone) + { + return pos; + } + + return KErrNotFound; + } +