diff -r 000000000000 -r f72a12da539e menufw/hierarchynavigator/hnpresentationmodel/inc/hneventhandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/menufw/hierarchynavigator/hnpresentationmodel/inc/hneventhandler.h Thu Dec 17 08:40:49 2009 +0200 @@ -0,0 +1,190 @@ +/* +* 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: event handler class +* +*/ + + +#ifndef C_HNEVENTHANDLER_H +#define C_HNEVENTHANDLER_H + +#include + +class CHnMetaDataModel; +class CHnMdAction; +class MLiwInterface; +class CLiwServiceHandler; +class CLiwGenericParamList; +class CHnMdBaseKey; +class TLiwVariant; +class CHnMdItem; +class CHnActionModel; +class MHnMdModelEventObserver; +class CHnServiceHandler; +class MHnControllerInterface; + +/** + * Event handler class. + * + * Event Handler is designed to handle events. + * It reveives an event id from the UI, + * mapps this event into an appropriate action, + * and runs this action. + * + * @lib hnpresentationmodel + * @since S60 5.0 + * @ingroup group_hnpresentationmodel + */ +NONSHARABLE_CLASS(CHnEventHandler) : public CBase, public MLiwNotifyCallback +{ +public: // Constructors and destructor + + /** + * Two-phased constructor. + * + * @since S60 5.0 + * @param aModelObserver Model event observer. + * @param aController Interface enabling to issues request to Hn engine. + * @return Fully constructed object. + */ + static CHnEventHandler* NewL( MHnMdModelEventObserver& aModelObserver, + MHnControllerInterface& aController ); + + /** + * Two-phased constructor. + * + * @since S60 5.0 + * @param aModelObserver Model event observer. + * @param aController Interface enabling to issues request to Hn engine. + * @return Fully constructed object. + */ + static CHnEventHandler* NewLC( MHnMdModelEventObserver& aModelObserver, + MHnControllerInterface& aController); + + /** + * Destructor. + * + * @since S60 5.0 + */ + ~CHnEventHandler(); + + /** + * Executes the action that was found in the Model. + * + * @since S60 v3.2 + * @see CHnActionModel + * @param aActionModel A pointer to the object of the CHnActionModel class. + * @return Error code. KErrNone in case of a correct execution (even if + given action was not found). KErrNotFound in case of incorrect + action parameters. + */ + IMPORT_C TInt ExecuteActionL( CHnActionModel* aActionModel ); + +private: + + /** + * Constructor for performing 1st stage construction + * + * @since S60 5.0 + * @param aModelObserver A model event observer reference. + * @param aController A HH controller reference. + */ + CHnEventHandler( MHnMdModelEventObserver& aModelObserver, + MHnControllerInterface& aController ); + + /** + * EPOC default constructor for performing 2nd stage construction + * + * @since S60 5.0 + */ + void ConstructL(); + + /** + * Notifies UI about actions that can be passed back to the UI, + * i.e. openning nested suites, widget change. + * + * @since S60 5.0 + * @param aActionModel Model of the action. + * @return Error code + */ + TInt ExecuteInternalActionL( CHnActionModel* aActionModel ); + + /** + * Executes action from Extension Manager. + * + * @since S60 v5.0 + * @param aActionModel Model of the action. + * @return Error code + */ + TInt ExecuteExtensionManagerActionL( CHnActionModel* aActionModel ); + + /** + * Uses default mechanism to execute an action. + * + * @since S60 v5.0 + * @param aActionModel Model of the action. + * @return Error code + */ + TInt ExecuteStandardActionL( CHnActionModel* aActionModel ); + + /** + * Extracts extension uid from the action. + * + * @since S60 v5.0 + * @param aInterface Interface to invoke action on. + * @param aUid The resulting UID. + * @return Error code + */ + TInt ExtractUidFromActionL( const TDesC8& aInterface, TUid& aUid ); + + +// from MLiwNotifyCallback +public : + + /** + * Handles notification. + * + * @param aCmdId The Id of the command triggered. + * @param aEventId The Id of the event. + * @param aEventParamList Parameters to event. + * @param aInParamList Input parameter list. + * + * @return Error code. + */ + TInt HandleNotifyL( TInt aCmdId, TInt aEventId, + CLiwGenericParamList& aEventParamList, + const CLiwGenericParamList& aInParamList ); + +private: // data + + /** + * Not own. + * Reference to HnEngine - Event observer. + */ + MHnMdModelEventObserver& iEventObserver; + + /** + * Own. + */ + CHnServiceHandler* iServiceHandler; + + /** + * Not own. + * Reference to App UI - Event observer. + */ + MHnControllerInterface& iControllerInterface; + +}; + +#endif // C_HNEVENTHANDLER_H