--- a/widgetmodel/alfwidgetmodel/src/alfwidgetenvextension.cpp Mon Jun 21 16:15:51 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,222 +0,0 @@
-/*
-* Copyright (c) 2007 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: Extensions can be added to AlfEnv through this class.
- Currently resourcepool,widgetfactory can be added as extensions to AlfEnv.
-*
-*/
-
-
-#include <alf/alfenv.h>
-#include <alf/alfenvobject.h>
-#include <alf/alfresourcepool.h>
-
-#include <osn/osnnew.h>
-#include <alf/alfwidgetexception.h>
-#include <alf/alfwidgetenvextension.h>
-
-#include <alf/alfwidgetfactoryloader.h>
-#include <alf/ialfwidgetfactory.h>
-namespace Alf
- {
- const int KAlfExtensionResourcePoolUid( 89 ); // Bogus id for resource
- // pool extension
-
- const int KAlfExtensionWidgetFactoryUid( 106 ); // Bogus id for widget
- // factory extension
-
- // Env extension for the resource pool
- class AlfExtensionResourcePoolContainer : public MAlfEnvObject
- {
- public:
-
- AlfExtensionResourcePoolContainer( ResourcePool* aResourcePool) :
- mResourcePool(aResourcePool )
- {
- }
-
- virtual void Release()
- {
- delete this;
- }
-
- ~AlfExtensionResourcePoolContainer()
- {
- delete mResourcePool;
- }
- // Owned
- ResourcePool* mResourcePool;
- };
-
-
- // Env extension for the widget factory
- class AlfExtensionWidgetFactory : public MAlfEnvObject
- {
- public:
-
- AlfExtensionWidgetFactory(
- AlfWidgetFactoryLoader* amWidgetFactoryLoader,
- IAlfWidgetFactory* aWidgetFactory) :
- mWidgetFactoryLoader( amWidgetFactoryLoader ),
- mWidgetFactory( aWidgetFactory )
- {
- }
-
- virtual void Release()
- {
- delete this;
- }
-
- ~AlfExtensionWidgetFactory()
- {
- delete mWidgetFactoryLoader;
- }
- // Owned
- AlfWidgetFactoryLoader* mWidgetFactoryLoader;
- // Not owned
- IAlfWidgetFactory* mWidgetFactory;
- };
-
-// ---------------------------------------------------------------------------
-// Initializes environment with resource pool and factory extensions
-// ---------------------------------------------------------------------------
-//
-OSN_EXPORT void AlfWidgetEnvExtension::initializeEnvironment(CAlfEnv& aEnv)
- {
- AlfExtensionResourcePoolContainer* poolContainer =
- static_cast<AlfExtensionResourcePoolContainer*>(
- aEnv.Extension( KAlfExtensionResourcePoolUid));
- if ( poolContainer == NULL)
- {
- // Initialize the env with resource pool extension
- initializeEnvironmentForResourcePool(aEnv);
- }
- AlfExtensionWidgetFactory* widgetFactoryExtension =
- static_cast<AlfExtensionWidgetFactory*>(
- aEnv.Extension( KAlfExtensionWidgetFactoryUid));
- if ( widgetFactoryExtension == NULL)
- {
- // Initialize the env with widget factory extension
- initializeEnvironmentForFactory(aEnv);
- }
- }
-// ---------------------------------------------------------------------------
-// Initializes environment with Theme Manager extension
-// ---------------------------------------------------------------------------
-//
-void AlfWidgetEnvExtension::initializeEnvironmentForTheme(CAlfEnv& /*aEnv*/ )
- {
- }
-
-// ---------------------------------------------------------------------------
-// Initializes environment with resource pool extension
-// ---------------------------------------------------------------------------
-//
-void AlfWidgetEnvExtension::initializeEnvironmentForResourcePool(CAlfEnv& aEnv)
- {
- auto_ptr<ResourcePool> pool(new(EMM) ResourcePool(
- aEnv.TextureManager(), NULL));
- auto_ptr<AlfExtensionResourcePoolContainer> poolContainer(
- new(EMM) AlfExtensionResourcePoolContainer( pool.release()));
- int err = aEnv.AddExtension( KAlfExtensionResourcePoolUid,
- (MAlfEnvObject*)(poolContainer.get()));
- if ( err != KErrNone)
- {
- ALF_THROW(AlfWidgetException, ECommonError, "Failed to add AlfEnv extension");
- }
- else
- {
- poolContainer.release();
- }
- }
-// ---------------------------------------------------------------------------
-// Returns the reference for Resource Pool extension object.
-// ---------------------------------------------------------------------------
-//
-OSN_EXPORT ResourcePool& AlfWidgetEnvExtension::resourcePool( CAlfEnv& aEnv)
- {
- Alf::AlfExtensionResourcePoolContainer* poolContainer =
- static_cast<Alf::AlfExtensionResourcePoolContainer*>(aEnv.Extension( KAlfExtensionResourcePoolUid));
- if ( poolContainer == NULL)
- {
- initializeEnvironment(aEnv);
- }
- //re-fetch the pool
- poolContainer =
- static_cast<Alf::AlfExtensionResourcePoolContainer*>(aEnv.Extension( KAlfExtensionResourcePoolUid));
- return *(poolContainer->mResourcePool);
-}
-
-// ---------------------------------------------------------------------------
-// Initializes environment with factory extension
-// ---------------------------------------------------------------------------
-//
-void AlfWidgetEnvExtension::initializeEnvironmentForFactory(CAlfEnv& aEnv)
- {
- auto_ptr<AlfWidgetFactoryLoader> widgetFactoryLoader(
- new (EMM) AlfWidgetFactoryLoader() );
-
- IAlfWidgetFactory* widgetFactory = NULL;
- widgetFactory = widgetFactoryLoader->loadWidgetFactory(aEnv);
- if(!widgetFactory)
- {
- ALF_THROW(AlfWidgetException, ECommonError, "Failed to create widget factory");
- }
- auto_ptr<AlfExtensionWidgetFactory> widgetFactoryExtension(
- new(EMM) AlfExtensionWidgetFactory( widgetFactoryLoader.release(),
- widgetFactory));
- int err = aEnv.AddExtension( KAlfExtensionWidgetFactoryUid,
- (MAlfEnvObject*)(widgetFactoryExtension.get()));
- if ( err != 0)
- {
- ALF_THROW(AlfWidgetException, ECommonError, "Failed to add AlfEnv extension");
- }
- else
- {
- widgetFactoryExtension.release();
- }
- }
-
-// ---------------------------------------------------------------------------
-// Returns the reference for Theme Manager extension object.
-// ---------------------------------------------------------------------------
-//
-OSN_EXPORT AlfThemeManagerUtil& AlfWidgetEnvExtension::themeManagerUtil( CAlfEnv& /*aEnv*/)
- {
- // Depricated
- ALF_THROW(AlfWidgetException, EInvalidArgument, "Depricated Module");
- }
-
-
-// ---------------------------------------------------------------------------
-//Access to the widget factory
-// ---------------------------------------------------------------------------
-//
-OSN_EXPORT IAlfWidgetFactory& AlfWidgetEnvExtension::widgetFactory(
- CAlfEnv& aEnv)
- {
- AlfExtensionWidgetFactory* widgetFactoryExtension =
- static_cast<AlfExtensionWidgetFactory*>(
- aEnv.Extension( KAlfExtensionWidgetFactoryUid));
- if ( widgetFactoryExtension == NULL)
- {
- initializeEnvironmentForFactory(aEnv);
- }
- //re-fetch the widget factory extension
- widgetFactoryExtension =
- static_cast<AlfExtensionWidgetFactory*>(
- aEnv.Extension( KAlfExtensionWidgetFactoryUid));
- return *(widgetFactoryExtension->mWidgetFactory);
- }
-
- } // Alf