idlehomescreen/xmluirendering/uiengine/src/xnappuiadapterimpl.cpp
changeset 0 f72a12da539e
child 9 f966699dea19
--- /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 <hsccproviderclient.h>
+#include <hscontentcontroller.h>
+#include <hscontentcontrolui.h>
+#include <bautils.h>
+#include <data_caging_path_literals.hrh>
+
+// 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