diff -r 000000000000 -r 79c6a41cd166 idlefw/inc/framework/aiuicontrollermanager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlefw/inc/framework/aiuicontrollermanager.h Thu Dec 17 08:54:17 2009 +0200 @@ -0,0 +1,156 @@ +/* +* Copyright (c) 2005-2006 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: UI controller manager +* +*/ + + +#ifndef C_AIUICONTROLLERMANAGER_H +#define C_AIUICONTROLLERMANAGER_H + + +#include +#include "aiuiframeworkobserver.h" +#include "aicontentmodel.h" +#include "aifwdefs.h" + +class CAiUiController; +class CAiContentPublisher; +class MAiMainUiController; +class MAiFwEventHandler; +class CRepository; +class CCoeEnv; + +/** + * @ingroup group_aifw + * + * Active Idle UI Controller manager. + * + * @since S60 3.2 + */ +NONSHARABLE_CLASS( CAiUiControllerManager ) : public CBase, + public MAiUiFrameworkObserver + { + public: // Constructors and destructor + + static CAiUiControllerManager* NewL(); + ~CAiUiControllerManager(); + + public: // New functions + + /** + * Returns all UI controllers in an array. + */ + RPointerArray< CAiUiController >& UiControllers() const; + + /** + * Calls ActivateUI() for all UI controllers. + */ + void ActivateUI(); + + /** + * Returns the main ui controller object. + */ + MAiMainUiController& MainUiController() const; + + /** + * Returns true if aUiController is the main UI controller. + */ + TBool IsMainUiController(CAiUiController& aUiController) const; + + /** + * Sets framework event handler for all UI controllers. + */ + void SetEventHandler(MAiFwEventHandler& aEventHandler); + + /** + * Calls RunApplicationL for the main UI controller. + */ + void RunApplicationL(); + + /** + * Calls LoadUIDefinitionL for all UI controllers. + */ + void LoadUIDefinition(); + + /** + * Returns the main UI Controller's CONE environment object. + */ + CCoeEnv& CoeEnv() const; + + /** + * Destroys all UI controllers except the main controller. + */ + void DestroySecondaryUiControllers(); + + /** + * Adds an UI Framework observer. No duplicates are allowed. + */ + void AddObserverL( MAiUiFrameworkObserver& aUiFwObserver ); + + /** + * Removes an UI Framework observer. + */ + void RemoveObserver( MAiUiFrameworkObserver& aUiFwObserver ); + + /** + * Removes plugin from UI. + */ + void RemovePluginFromUI( CAiContentPublisher& aPlugin ); + + /** + * Exits main UI controller + */ + void ExitMainController(); + + private: // From MAiUiFrameworkObserver + + void HandleResourceChange( TInt aType ); + void HandleForegroundEvent( TBool aForeground ); + + private: // Constructors + + CAiUiControllerManager(); + void ConstructL(); + + private: // new functions + + void LoadMainControllerL(CRepository& aCenRepConfig); + void LoadSecondaryControllersL(CRepository& aCenRepConfig); + + private: // data + /** + * UI controller array. + * Own. + */ + mutable RPointerArray iUiControllerArray; + + /** + * Main UI controller for app session. Owned in above array. + */ + MAiMainUiController* iMainUiController; + + /** + * List of UI framework observers to delegate events + */ + RPointerArray iUiFrameworkObservers; + + /** + * List to check for duplicated creations. + */ + RArray iCreatedUICList; + }; + +#endif // C_AIUICONTROLLERMANAGER_H +