diff -r 000000000000 -r f72a12da539e idlehomescreen/xmluirendering/uiengine/src/xnappuiadapterimpl.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/xmluirendering/uiengine/src/xnappuiadapterimpl.cpp Thu Dec 17 08:40:49 2009 +0200 @@ -0,0 +1,244 @@ +/* +* Copyright (c) 2002-2004 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: Implementation for Avkon adapter +* +*/ + +// System includes +#include +#include +#include +#include +#include + +// User includes +#include "xnappuiadapter.h" +#include "xnuiengine.h" +#include "xnviewmanager.h" +#include "xnviewadapter.h" +#include "xnuistatelistener.h" +#include "hscontentcontrolfactory.h" +#include "xneditor.h" +#include "xnwallpaperview.h" +#include "xneffectmanager.h" + +#include "xnappuiadapterimpl.h" + +// Constants +_LIT( KResourceDrive, "z:" ); +_LIT( KResourceFile, "xnuiengine.rsc" ); + +// ============================= LOCAL FUNCTIONS =============================== + +// ============================ MEMBER FUNCTIONS =============================== +// ----------------------------------------------------------------------------- +// CXnAppUiAdapterImpl::NewL() +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +CXnAppUiAdapterImpl* CXnAppUiAdapterImpl::NewL( TUid aApplicationUid, + CXnAppUiAdapter& aAdapter ) + { + return new ( ELeave ) CXnAppUiAdapterImpl( aApplicationUid, aAdapter ); + } + +// ----------------------------------------------------------------------------- +// CXnAppUiAdapterImpl::CXnAppUiAdapterImpl +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +CXnAppUiAdapterImpl::CXnAppUiAdapterImpl( TUid aApplicationUid, + CXnAppUiAdapter& aAdapter ) + : iAdapter( aAdapter ), iApplicationUid( aApplicationUid ) + { + } + +// ----------------------------------------------------------------------------- +// CXnAppUiAdapterImpl::ConstructL +// Second-phase constructor +// ----------------------------------------------------------------------------- +// +void CXnAppUiAdapterImpl::ConstructL() + { +#ifdef _XN_PERFORMANCE_TEST_ + RDebug::Print( _L( "CXnAppUiAdapterImpl::ConstructL() - start" ) ); +#endif //_XN_PERFORMANCE_TEST_ + + TFileName resFile; + resFile.Append( KResourceDrive ); + resFile.Append( KDC_APP_RESOURCE_DIR ); + resFile.Append( KResourceFile ); + BaflUtils::NearestLanguageFile( CCoeEnv::Static()->FsSession(), + resFile ); + + iResourceOffset = CCoeEnv::Static()->AddResourceFileL( resFile ); + + iContentControlFactory = CHsContentControlFactory::NewL(); + + iUiStateListener = CXnUiStateListener::NewL( iAdapter ); + + iViewManager = CXnViewManager::NewL( iAdapter ); + + iUiEngine = CXnUiEngine::NewL( iAdapter ); + + iViewManager->SetUiEngine( *iUiEngine ); + + // iViewAdapter is owned by CAknViewAppUi + iViewAdapter = CXnViewAdapter::NewL( iAdapter ); + + iViewManager->LoadUiL(); + + iCcProviderClient = CHsCcProviderClient::NewL( iViewManager->Editor() ); + + CXnWallpaperView* wallpaper = CXnWallpaperView::NewL( *iUiEngine ); + iAdapter.AddViewL( wallpaper ); + + iEffectManager = CXnEffectManager::NewL(); + +#ifdef _XN_PERFORMANCE_TEST_ + RDebug::Print( _L( "CXnAppUiAdapterImpl::ConstructL() - end" ) ); +#endif //_XN_PERFORMANCE_TEST_ + } + +// ----------------------------------------------------------------------------- +// CXnAppUiAdapterImpl::ReloadUiL +// Reloads UI when application root configuration is changed +// ----------------------------------------------------------------------------- +// +void CXnAppUiAdapterImpl::ReloadUiL() + { +#ifdef _XN_PERFORMANCE_TEST_ + RDebug::Print( _L( "CXnAppUiAdapterImpl::ReloadUiL() - start" ) ); +#endif //_XN_PERFORMANCE_TEST_ + + iViewAdapter->ReloadUiL(); + + iViewManager->ReloadUiL(); + +#ifdef _XN_PERFORMANCE_TEST_ + RDebug::Print( _L( "CXnAppUiAdapterImpl::ReloadUiL() - end" ) ); +#endif //_XN_PERFORMANCE_TEST_ + } + +// ----------------------------------------------------------------------------- +// Destructor +// +// ----------------------------------------------------------------------------- +// +CXnAppUiAdapterImpl::~CXnAppUiAdapterImpl() + { + if ( iViewAdapter ) + { + iViewAdapter->PrepareDestroy(); + } + + delete iContentControlFactory; + + delete iUiEngine; + + delete iUiStateListener; + + delete iViewManager; + + delete iCcProviderClient; + + delete iEffectManager; + + CCoeEnv::Static()->DeleteResourceFile( iResourceOffset ) ; + } + +// ----------------------------------------------------------------------------- +// CXnAppUiAdapterImpl::UiEngine +// Gets UI engine +// ----------------------------------------------------------------------------- +// +CXnUiEngine& CXnAppUiAdapterImpl::UiEngine() const + { + return *iUiEngine; + } + +// ----------------------------------------------------------------------------- +// CXnAppUiAdapterImpl::ViewAdapter +// Gets view adapter +// ----------------------------------------------------------------------------- +// +CXnViewAdapter& CXnAppUiAdapterImpl::ViewAdapter() const + { + return *iViewAdapter; + } + +// ----------------------------------------------------------------------------- +// CXnAppUiAdapterImpl::ViewManager +// Gets view manager +// ----------------------------------------------------------------------------- +// +CXnViewManager& CXnAppUiAdapterImpl::ViewManager() const + { + return *iViewManager; + } + +// ----------------------------------------------------------------------------- +// CXnAppUiAdapterImpl::UiStateListener +// Gets UI state listener +// ----------------------------------------------------------------------------- +// +CXnUiStateListener& CXnAppUiAdapterImpl::UiStateListener() const + { + return *iUiStateListener; + } + + +// ----------------------------------------------------------------------------- +// CXnAppUiAdapterImpl::HsContentController +// Gets Content control UI interface +// ----------------------------------------------------------------------------- +// +MHsContentControlUi* CXnAppUiAdapterImpl::HsContentController( + const TDesC8& aType ) const + { + return iContentControlFactory->GetHsContentController( aType ); + } + +// ----------------------------------------------------------------------------- +// CXnAppUiAdapterImpl::EffectManager +// Get effect manager. +// ----------------------------------------------------------------------------- +// +CXnEffectManager* CXnAppUiAdapterImpl::EffectManager() const + { + return iEffectManager; + } + +// ----------------------------------------------------------------------------- +// CXnAppUiAdapterImpl::HsContentControlSrv +// Gets Content control server interface +// ----------------------------------------------------------------------------- +// +MHsContentControl* CXnAppUiAdapterImpl::HsContentControlSrv() const + { + return iCcProviderClient; + } + +// ----------------------------------------------------------------------------- +// CXnAppUiAdapterImpl::HandleResourceChangeL +// Handles resource changes +// ----------------------------------------------------------------------------- +// +void CXnAppUiAdapterImpl::HandleResourceChangeL( TInt aType ) + { + iUiStateListener->HandleResourceChangeL( aType ); + } + +// End of file