idlefw/inc/framework/aifw.h
author jake
Tue, 13 Apr 2010 15:07:27 +0300
branchv5backport
changeset 56 7b5c31fac191
parent 0 79c6a41cd166
child 9 d0529222e3f0
permissions -rw-r--r--
Many of the components were not compilingm,because bld.inf had undefined flag #ifdef RD_CUSTOMIZABLE_AI. All the flags removed now. Components do not compile right away. E.g. many icons are missing and need to be copied from Symbian3. See example from MCSPlugin. Shortcut plugin does not need to be compiled as MCSPlugin replaces it.

/*
* 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:  AI2 main class
*
*/


#ifndef C_AIFW_H
#define C_AIFW_H

#include <e32base.h>
#include <aicontentpublisher.h>
#include <centralrepository.h>
#include <cenrepnotifyhandler.h>

#include "aifwdefs.h"
#include "aicontentmodel.h"
#include "aifweventhandler.h"

class CAiUiControllerManager;
class CAiContentPluginManager;
class CAiWsPluginManager;
class CAiPluginStateManager;
class RConeResourceLoader;
class CAiContentPublisher;
class MAiPSPropertyObserver;
class CAiNetworkListener;

/**
 * @ingroup group_aifw
 * 
 * Active Idle Framework main class.
 */
NONSHARABLE_CLASS( CAiFw ) : 
        public CBase,
        public MAiFwEventHandler,
        public MCenRepNotifyHandlerCallback        
    {
public: // Constructors and destructors    

    /**
     * Creates and returns a new Active Idle Framework object.
     *
     * @return  new Active Idle Framework object. The object is also left
     *          on the cleanup stack.
     * @exception Any of the system-wide error codes if framework creation
     *            fails due to an unrecoverable error.
     */
    IMPORT_C static CAiFw* NewLC();
  
    ~CAiFw();
  
public: // New functions
      
    /**
     * Runs the Active Idle Framework. This function returns when the
     * framework is shut down.
     *
     * @exception Any of the system-wide error codes if the framework 
     *            encounters a fatal initialization or run-time error.
     */
    IMPORT_C void RunL();
        
private: // Constructors      
    CAiFw();
    void ConstructL();
  
private: // From MAiFwEventHandler    
        
    /**
     * @see MAiFwEventHandler
     */
    void AppEnvReadyL();

    /**
     * @see MAiFwEventHandler
     */    
    void HandleUiReadyEventL( CAiUiController& aUiController );

    /**
     * @see MAiFwEventHandler
     */    
    void HandleActivateUI();
    
    /**
     * @see MAiFwEventHandler
     */    
    void HandleUiShutdown( CAiUiController& aUiController );
    
    /**
     * @see MAiFwEventHandler
     */        
    void HandleLoadPluginL( const TAiPublisherInfo& aPublisherInfo );
    
    /**
     * @see MAiFwEventHandler
     */        
    void HandleDestroyPluginL( const TAiPublisherInfo& aPublisherInfo );            
    
    /**
     * @see MAiFwEventHandler
     */        
    void HandlePluginEvent( const TDesC& aParam );
    
    /**
     * @see MAiFwEventHandler
     */        
    void HandlePluginEventL( const TAiPublisherInfo& aPublisherInfo, const TDesC& aParam );

    /**
     * @see MAiFwEventHandler
     */    
    TBool HasMenuItemL( const TAiPublisherInfo& aPublisherInfo, const TDesC& aMenuItem );        

    /**
     * @see MAiFwEventHandler
     */        
    TBool RefreshContent( const TDesC& aContentCid );
    
    /**
     * @see MAiFwEventHandler
     */        
    TBool QueryIsMenuOpen();

    /**
     * @see MAiFwEventHandler
     */            
    void ProcessStateChange( TAifwStates aState );    
        
private: // From MCenRepNotifyHandlerCallback

    /**
     * @see MCenRepNotifyHandlerCallback
     */
    void HandleNotifyInt( TUint32 aId, TInt aNewValue );
    
private: // New functions        
                 
    static TInt HandleFocusChangeEvent( TAny* aSelf );
    static TInt HandleRestartEvent( TAny* aSelf );
    void SwapUiControllerL( TBool aToExtHS );

private: // Data     
    
    /**
     * UI Controller manager, Owned.     
     */
    CAiUiControllerManager* iUiControllerManager;

    /**
     * Content plugin manager, Owned.     
     */
    CAiContentPluginManager* iPluginManager;

    /**
     * Window server plug-in manager, Owned.
     */
    CAiWsPluginManager* iWsPluginManager;

    /**
     * Notify handler for cenrep, Owned.     
     */
    CCenRepNotifyHandler* iNotifyHandler;
    
    /**
     * Notify handler for cenrep, Owned.     
     */    
    CCenRepNotifyHandler* iNotifyHandlerESS;

    /**
     * Idle repository, Owned.
     */
    CRepository* iAIRepository;
    
    /**
     * Idle restart PS observer, Owned.
     */
    MAiPSPropertyObserver* iIdleRestartObserver;
    
    TBool iLibrariesLoaded;
    
    RLibrary iLibrary1;
    RLibrary iLibrary2;
    RLibrary iLibrary3;       
    };

#endif // C_AIFW_H