menufw/hierarchynavigator/hnengine/inc/hnengine.h
branchv5backport
changeset 14 1abc632eb502
parent 13 6205fd287e8a
child 20 636d517f67e6
--- a/menufw/hierarchynavigator/hnengine/inc/hnengine.h	Thu Mar 18 14:45:17 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,473 +0,0 @@
-/*
-* Copyright (c) 2007-2008 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:   
-*
-*/
-
-
-
-#ifndef C_HNENGINE_H
-#define C_HNENGINE_H
-
-#include <e32base.h>
-#include <eikenv.h>
-#include <hwrmlight.h>
-
-#include "hnglobals.h"
-#include "hninterface.h"
-#include "hnmdmodel.h"
-#include "hninstallnotifier.h"
-
-class CHnMdModel;
-class CHnSuiteModelContainer;
-class MHnControllerInterface;
-class MHnSuiteObserver;
-
-/**
- * @ingroup group_hnengine
- *  Hierarchy Navigator engine - used by Multimedia Menu
- *  to fetch data models. The most commonly used exported method is TriggerHnEventL, 
- *  which offers event execution for the framework. This functionality is implemented
- *  through the MHnEventGenerator interface. The class owns the meta data model ( CHnMdModel ) 
- *  and suite container ( CHnSuiteModelContainer ) to manage them. The engine manages 
- *  the model by processing model events ( HandleModelEventL ) or reseting the models
- *  ( ResetModelsL ).
- *
- * @lib hnengine
- * @since S60 v3.2
- */
-NONSHARABLE_CLASS( CHnEngine ) : public CHnInterface,
-                  public MHnMdModelEventObserver,
-                  public MHnInstallNotifierCallback,
-                  public MHWRMLightObserver
-    {
-public:
-    /**
-     * Standard factory method.
-     *
-     * @since S60 v5.0
-     * @param aController Controller handler.
-     * @return Fully constructed object.
-     */
-    IMPORT_C static CHnEngine* NewL( MHnControllerInterface& aController );
-
-    /**
-     * Standard factory method.
-     *
-     * @since S60 v5.0
-     * @param aController Controller handler.
-     * @return Fully constructed object.
-     */    
-    IMPORT_C static CHnEngine* NewLC( MHnControllerInterface& aController );
-
-    /**
-     * Standard C++ destructor.
-     * 
-     * @since S60 v5.0
-     */    
-    ~CHnEngine();
-
-    // from CHnInterface
-    
-    /**
-     * Fetches and constructs data structres, needed by Multimedia
-     * Menu to display suites.
-     *
-     * @since S60 v5.0
-     * @return Filled suite model object from the stack.
-     */
-    CHnSuiteModel* GetLastSuiteModelL();
-    
-    /**
-     * Fetches and constructs data structres, needed by Multimedia
-     * Menu to display suites.
-     *
-     * @since S60 v5.0
-     * @return Filled suite model object from the stack.
-     */
-    CHnSuiteModel* GetParentSuiteModelL();
-   
-    /**
-     * Get count of suite models on the stack.
-     * 
-     * @since S60 v5.0
-     * @return Count of suite models on the stack.
-     */
-    virtual TInt GetSuiteModelsCountL();
-    
-    /**
-     * Checks if suite model is loaded.
-     * 
-     * @since S60 v5.0
-     * @return ETrue if suite model is loaded, otherwise EFalse.
-     */
-    TBool SuiteModelLoadedL( TInt aId );
-    
-    /**
-     * Loads suite hierarchy specified in URI.
-     *
-     * @since S60 v5.0
-     * @param aUri The URI contained suite(s) to load.
-     */
-    IMPORT_C void LoadSuitesFromUriL( const TDesC8& aUri );
-
-public:
-    // from MHnMdModelEventObserver
-    
-     /**
-     * Handle model event.
-     *
-     * @since S60 v5.0
-     * @param aEventName Event's name to perform.
-     * @param aParams Event specific parameters used to perform action.
-     */
-     TInt HandleModelEventL( const TDesC& aEventName, CLiwGenericParamList& aParams );
-     
-    // from CHnInterface
-     
-    /**
-     * Handle back event.
-     *
-     * @since S60 v5.0
-     * @param aGenre Suite given by the name genre.
-     * @param aIterations Number of iterations.
-     * @return Status code.
-     */
-     TInt HandleBackEventL( const TDesC& aGenre,
-             TInt aIterations = KModelCountForRoot );
-
-    // from MHNMulModelInstallNotifierCallback
-
-     /**
-      * InstallChangeL is called when the subscribed key has been changed.
-      * 
-      * @since S60 v5.0
-      * @param aStatus Status of the installation event.
-      */
-    virtual void InstallChangeL( TInt aStatus );
-    
-    
-    /**
-     * Loads default root suite
-     * 
-     * @since S60 v5.0
-     * @param aSuiteParams Suite parameters.
-     * @return Status error code.
-     */
-    IMPORT_C TInt InitializeL( CLiwGenericParamList& aSuiteParams );
-    
-    // from MHnEventGenerator
-    
-    /**
-     * Triggers an event inside hierarchy navigator.
-     * 
-     * Used by UI to notify hierarchy navigator of its events,
-     * as well as for hierarchy navigator components to notify
-     * the module of certain events (such as OnSuiteLoaded etc).
-     *
-     * @since S60 v5.0
-     * @param aHnEventId Internal id of an event (Event names are 
-     *                    mapped to ids).
-     * @param aRecipientId The id of the recipient item.
-     * @param aEventParameters Event specific parameter.
-     * @return Status code.
-     */
-     IMPORT_C TInt TriggerHnEventL( const TInt aHnEventId,
-             const TInt aRecipientId, CLiwGenericParamList* aEventParameters = NULL );
-     
-     /**
-      * Splits the source descriptor by a separatos
-      * 
-      * @since S60 v5.0
-      * @param aSource Source descriptor intended to split.
-      * @param aSeparator Separator used to split.
-      * @return Array of descriptors. 
-      */
-     RPointerArray< HBufC8 > SplitL( const TDesC8& aSource,
-             const TDesC8& aSeparator );
-     
-     /**
-      * Generate param list according to query param.
-      * 
-      * @param aUriQuery Descriptor consist of param(s) to split
-      * @param aUriFragment Descriptor containing an uri fragment.
-      * @param aSuiteName The suite's name.  
-      * @return Filled generic param list.
-      */
-     CLiwGenericParamList* UriQueryToLiwListLC( const TDesC8& aUriQuery,
-             const TDesC8& aUriFragment, const TDesC8& aSuiteName );
-     
-     /**
-      * Resets MD Model and Suite Container.
-      *
-      * @since S60 v5.0
-      */
-     IMPORT_C void ResetModelsL();
-     
-     // from MHnEditModeInterface 
-     
-     /**
-      * Sets edit mode.
-      * 
-      * @since S60 v5.0
-      * @param aEditMode Set edit mode member to false/true.
-      */
-     void SetEditModeL( TBool aEditMode );
-
-    /**
-     * Enables to issue a request to Hn engine.
-     * 
-     * @since S60 v5.0
-     * @param aParam Input Parameters.
-     * @param aOutput Target list for output.  
-     */
-     IMPORT_C void HandleRequestL( const CLiwGenericParamList& aParam, 
-                         CLiwGenericParamList* aOutput = NULL);
-
-    //    from MHWRMLightObserver
-    /**
-     * Called when the device light status changes.
-     * Note that if the light status for certain target changes
-     * very rapidly, some state transitions might be missed.
-     * It is however guaranteed that latest state is always obtained.
-     *
-     * @param aTarget Indicates target(s) the new status applies to.
-     * @param aStatus Indicates light request status.
-     */
-    virtual void LightStatusChanged(TInt aTarget,
-            CHWRMLight::TLightStatus aStatus);
-
-private:
-    /**
-     * Default constructor.
-     * 
-     * @since S60 v5.0
-     * @param aController Controller handler.
-     */
-    CHnEngine( MHnControllerInterface& aController );
-    
-    /**
-     * Standard 2nd phase constructor.
-     * 
-     * @since S60 v5.0
-     */
-    void ConstructL();
-         
-    /**
-     * Handle new suite loaded event.
-     *
-     * @since S60 v5.0
-     * @param aParams Event specific parameters.
-     * @return Status code.
-     */
-    TInt HandleNewSuiteLoadedEventL( CLiwGenericParamList& aParams );
-
-    /**
-     * Handle open suit event.
-     *
-     * @since S60 v5.0
-     * @param aParams Event specific parameters that hold liw packed filter.
-     * @return Status code.
-     */
-    TInt HandleReevaluateEventL( CLiwGenericParamList& aParams );
-
-    /**
-     * Handles widget change.
-     *
-     * @since S60 v5.0
-     * @param aParams Event specific parameters consist of target widget type.
-     * @return Status code.
-      */
-    TInt HandleWidgetChangeL( CLiwGenericParamList& aParams );
-
-    /**
-     * Handles SetFocus event.
-     *
-     * @since S60 v5.0
-     * @param aParams Event specific parameters consist of target widget type.
-     * @return Status code.
-     */
-    TInt HandleSetFocusEventL( const CLiwGenericParamList& aParams );
-    
-    /**
-     * Handles MoveFocusBeforeDelete event.
-     *
-     * @since S60 v5.0
-     * @param aParams Event specific parameters consist of target widget type.
-     * @return Status code.
-     */
-    TInt HandleMoveFocusBeforeDeleteEventL(
-            const CLiwGenericParamList& aParams );
-    
-    /**
-     * Handles RefreshIcons event.
-     *
-     * @since S60 v5.0
-     * @param aParams Event specific parameters (ignored)
-     * @return Status code.
-     */
-    TInt HandleRefreshIconsEventL( const CLiwGenericParamList& aParams );
-
-    /**
-     * Handles DisableActionsForItem event.
-     * 
-     * @since S60 v5.0
-     * @param aParams Event specific parameters - contains custom item id
-     * @return Status code.
-     */
-    TInt HandleDisableActionsForItemL( const CLiwGenericParamList& aParams );
-
-     /**
-      *  Store widget type to repository.
-      *
-      * @since S60 v5.0
-      * @param aSuiteName Suite name to that set widget type. 
-      * @param aType Widget type to store in repository.
-      * @return Status code.
-      */    
-    TInt HandleWidgetChangeL( const TDesC& aSuiteName,
-            THnSuiteWidgetType aType );
-     
-         
-     /**
-      * Parse URI path component containing Suites to be loaded.
-      *
-      * @since S60 v5.0
-      * @param aUriPath Descriptor URI path which consist of suites' names.
-      * @param aOutput Array on output containes parsed suite names.
-      */
-     void ParseSuiteUriPathL( const TDesC8& aUriPath, 
-         CDesC8ArrayFlat& aOutput );
-   
-     
-     /**
-      * Checks if only root configuration is loaded.
-      * Used to decide if reloading models is needed.
-      *
-      * @since S60 v5.0
-      * @return Return ETrue if only root configuration is loaded
-      *         otherwise EFalse.
-      */
-     TBool IsOnlyRootConfLoaded();
-     
-     /**
-      * Resets loaded resources.
-      *
-      * @since S60 5.0
-      */
-     void ResetLocalization();
-     
-     /**
-      * Loads suite with given suite name with parameters
-      * from uri query. 
-      *
-      * @since S60 5.0
-      * @param aSuiteName Name of the suite to load. 
-      * @param aUriQuery Descriptor containig parsed part of the uri.
-      * @param aUriFragment Descriptor containig parsed part (fragment) of the uri.
-      * @return Error code when loading suite.
-      */
-     TInt LoadSuiteFromUriL( const TDesC8& aSuiteName, 
-         const TDesC8& aUriQuery, const TDesC8& aUriFragment );
-     
-     /**
-      * Reads highlight position from uri fragment 
-      * and sets it on the suite model.
-      *
-      * @since S60 5.0
-      * @param aUriFragment Descriptor containig parsed part of the uri.
-      */
-     void HighlightPlacementFromUriL( const TDesC8& aUriFragment );
-    
-     
-     /**
-      * Loads folder and sets focus through CR.
-      * 
-      * @since S60 v5.0
-      */
-     void LoadFromCrL( const TDesC8& aUri );
-     
-     /**
-      * Handles loading suite from uri if suites names' are the same.
-      * 
-      * @param aNextExists ETrue if the next suite's name exists in uri.
-      * @param aUri The URI's parameters passed to the suite. 
-      */
-     void HandleTheSameSuitesL( TBool aNextExists, const TDesC8& aParams );
-     
-     /**
-      * Checks if suites have the same names.
-      * 
-      * @param aLastSuiteName The last suite's name on the stack.
-      * @param aFirstSuiteName The first suite's name in uri.
-      * @return ETrue if names are equal
-      */
-     TBool SuitesAreTheSameL( const TDesC& aLastSuiteName, const TDesC8& aFirstSuiteName );
-
-     /**
-      * Decides whether to hide menu depending on current state and uri parameters
-      * 
-      * @param aUri The Uri to parse for exit procedure.
-      * @return ETrue If exit was consumed.
-      */
-     TBool HandleActionL( const TDesC8& aUri );
-     
-     /**
-      * Loads suites from uri.
-      * 
-      * @param aUri The uri to parse
-      */
-     void LoadSuitesL( const TDesC8& aUri );
-     
-private: // data
-        
-    /**
-     * Own - Meta data model.
-     */
-    CHnMdModel* iMetaDataModel;
-    
-    /**
-     * Own - Suite container.
-     */
-    CHnSuiteModelContainer* iSuiteContainer;
-       
-    /**
-     * Not own.
-     * EikonEnv for displaying popup messages. 
-     */
-    CEikonEnv* iEEnv;
-    
-    /**
-     * Not own - Suite observer.
-     */
-    MHnControllerInterface& iControllerInterface;
-    
-    /**
-     * Installation observer.
-     * Own.
-     */
-    CHnInstallNotifier* iInstObserver;
-    
-    /**
-     * Edit mode
-     */
-    TBool iEditMode;
-    
-    /**
-     * Light status observer
-     */
-    CHWRMLight* iLight;
-    };
-
-#endif //C_HNENGINE_H