diff -r 000000000000 -r f72a12da539e menufw/hierarchynavigator/hnmetadatamodel/inc/hnrepositoryobserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/menufw/hierarchynavigator/hnmetadatamodel/inc/hnrepositoryobserver.h Thu Dec 17 08:40:49 2009 +0200 @@ -0,0 +1,419 @@ +/* +* Copyright (c) 2002-2004 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: factory settings for active space +* +*/ + + +#ifndef HNREPOSITORYOBSERVER_H_ +#define HNREPOSITORYOBSERVER_H_ + +#include +#include +#include +#include +#include "hnmdmodel.h" +#include "hnservicehandler.h" +#include "hnsuiteobserver.h" + +/** + * Repository Observer base class. + * + * It is used to be derived by repository observers. + * + * @lib hnmetadatamodel + * @since S60 5.0 + * @ingroup group_hnmetadatamodel + */ +NONSHARABLE_CLASS( CHnRepositoryObserver ): + public CBase, + public MCenRepNotifyHandlerCallback + { +public: + + /** + * Default C++ Destructor. + * + * @since S60 v5.0 + */ + virtual ~CHnRepositoryObserver(); + + +protected: + + /** + * Defautlt C++ Constructor. + * + * @param aCmnPtrs Common pointers. + * @since S60 v5.0 + */ + CHnRepositoryObserver( THnMdCommonPointers* aCmnPtrs ); + + + /** + * Defautlt C++ Constructor. + * + * @param aCmnPtrs Common pointers. + * @since S60 v5.0 + */ + CHnRepositoryObserver( THnMdCommonPointers* aCmnPtrs, TUint32 iId ); + + /** + * Second stage constructor. + * + * @since S60 v5.0 + */ + void ConstructL( const TUid aRepositoryUid ); + +protected: + + /** + * Own - Central Repository access class. + */ + CRepository *iRepository; + + /** + * Id of the CR entry to be watched. + */ + TUint32 iId; + + /** + * Common pointers. + */ + THnMdCommonPointers* iCmnPtrs; + + /** + * Own - Central repository notification handler. + */ + CCenRepNotifyHandler* iNotifyHandler; + + }; + +/** + * Widget Type Repository Observer. + * + * It is used to inform hierarchy navigator of changes in the suites repository. + * + * @lib hnmetadatamodel + * @since S60 5.0 + * @ingroup group_hnmetadatamodel + */ +NONSHARABLE_CLASS( CHnRepositoryWidgetTypeObserver ): public CHnRepositoryObserver + { +public: + + /** + * Default C++ Destructor. + * + * @since S60 v5.0 + */ + virtual ~CHnRepositoryWidgetTypeObserver(); + + /** + * Factory function. + * + * @param aCmnPtrs Common pointers. + * @return Repository Observer. + * @since S60 v5.0 + */ + static CHnRepositoryWidgetTypeObserver* NewL( THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid ); + + /** + * Factory function. + * + * @param aCmnPtrs Common pointers. + * @return Repository Observer. + * @since S60 v5.0 + */ + static CHnRepositoryWidgetTypeObserver* NewLC( THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid ); + + /** + * Change handler method. + * It is invoked whenever notifier detects a change in the CR. + * + * @param aId Id of the entry in CR. + * @since S60 v5.0 + */ + void HandleNotifyGeneric(TUint32 aId); + + /** + * Change handler method. + * It is invoked whenever notifier detects a change in the CR. + * + * @param aId Id of the entry in CR. + * @since S60 v5.0 + */ + void HandleNotifyGenericL(TUint32 aId); + +private: + + /** + * Defautlt C++ Constructor. + * + * @param aCmnPtrs Common pointers. + * @since S60 v5.0 + */ + CHnRepositoryWidgetTypeObserver( THnMdCommonPointers* aCmnPtrs ); + +private: + + /** + * Second stage constructor. + * + * @since S60 v5.0 + */ + void ConstructL( const TUid aRepositoryUid ); + +private: + + /** + * Array holding ids of widgets being switched. + * It is used to eliminate double refresh for such suites. + */ + RArray iWidgetSwitches; + + }; + + + +NONSHARABLE_CLASS( CHnRepositoryShowFolderObserver ): public CHnRepositoryObserver, + public MLiwNotifyCallback, + public MHnSuiteObserver + { +public: + + /** + * Default C++ Destructor. + * + * @since S60 v5.0 + */ + virtual ~CHnRepositoryShowFolderObserver(); + + /** + * Factory function. + * + * @param aCmnPtrs Common pointers. + * @return Repository Observer. + * @since S60 v5.0 + */ + static CHnRepositoryShowFolderObserver* NewL( + THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid, + const TUint32 aId); + + /** + * Factory function. + * + * @param aCmnPtrs Common pointers. + * @return Repository Observer. + * @since S60 v5.0 + */ + static CHnRepositoryShowFolderObserver* NewLC( + THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid, + const TUint32 aId); + + /** + * Change handler method. + * It is invoked whenever notifier detects a change in the CR. + * + * @param aId Id of the entry in CR. + * @since S60 v5.0 + */ + void HandleNotifyString(TUint32 aId, const TDesC16& aNewValue ); + + /** + * Change handler method. + * It is invoked whenever notifier detects a change in the CR. + * + * @param aId Id of the entry in CR. + * @since S60 v5.0 + */ + void HandleNotifyStringL(TUint32 aId, const TDesC16& aNewValue ); + + + /** + * From MLiwNotifyCallback + */ + TInt HandleNotifyL( + TInt aCmdId, + TInt aEventId, + CLiwGenericParamList& aEventParamList, + const CLiwGenericParamList& aInParamList); + + /** + * From MHnSuiteObserver + */ + virtual void HandleSuiteEventL ( THnCustomSuiteEvent aCustomSuiteEvent, + CHnSuiteModel *aModel ); + + + +private: + + /** + * Defautlt C++ Constructor. + * + * @param aCmnPtrs Common pointers. + * @since S60 v5.0 + */ + CHnRepositoryShowFolderObserver( THnMdCommonPointers* aCmnPtrs, TUint32 iId ); + + /** + * Extracts the folder name from the CR key. + * + * @param aNewValue The CR key. + * @since S60 v5.0 + */ + void ExtractCRKeyShowFolderName( const TDesC& aNewValue ); + + /** + * Request get list for parent folder of an application. + * + * @param aFolderId A parent folder id + * @since S60 v5.0 + */ + void GetShowFolderL( TUint32 aFolderId ); + + /** + * Request get list for a folder with given application group name + * contained in iCRKeyFolderName. + * + * @since S60 v5.0 + */ + void GetShowFolderGroupNameL(); + +private: + /** + * Type of a flag describing the type of notification. + * APP_ID - MCS id is given + * APP_UID - Application UID is given + * SECOND_NOTIFY - handled notify caused by the second get list + */ + enum TNotifyType { EAPP_ID=1, EAPP_UID=2, ESECOND_NOTIFY=4 }; + +private: + + /** + * Second stage constructor. + * + * @since S60 v5.0 + */ + void ConstructL( const TUid aRepositoryUid ); + +private: + + /** + * Folder application group name. + */ + TBuf8 iCRKeyFolderName; + + /** + * Mcs id for an application item in a folder with a given app group name. + */ + TBuf8 iCRKeyFolderItemUid; + + /** + * Own. + * Intance of the service handler. + */ + CHnServiceHandler* iServiceHandler; + + /** + * Flag describing the type of notification. + */ + TInt iNotifyType; + }; + + +NONSHARABLE_CLASS( CHnRepositoryZoomObserver ): public CHnRepositoryObserver + { +public: + + /** + * Default C++ Destructor. + * + * @since S60 v5.0 + */ + virtual ~CHnRepositoryZoomObserver(); + + /** + * Factory function. + * + * @param aCmnPtrs Common pointers. + * @return Repository Observer. + * @since S60 v5.0 + */ + static CHnRepositoryZoomObserver* NewL( + THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid, + const TUint32 aId); + + /** + * Factory function. + * + * @param aCmnPtrs Common pointers. + * @return Repository Observer. + * @since S60 v5.0 + */ + static CHnRepositoryZoomObserver* NewLC( + THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid, + const TUint32 aId); + + /** + * Change handler method. + * It is invoked whenever notifier detects a change in the CR. + * + * @param aId Id of the entry in CR. + * @since S60 v5.0 + */ + void HandleNotifyInt(TUint32 aId, TInt aNewValue ); + + /** + * Change handler method. + * It is invoked whenever notifier detects a change in the CR. + * + * @param aId Id of the entry in CR. + * @since S60 v5.0 + */ + void HandleNotifyIntL(TUint32 aId, TInt aNewValue ); + +private: + + /** + * Defautlt C++ Constructor. + * + * @param aCmnPtrs Common pointers. + * @since S60 v5.0 + */ + CHnRepositoryZoomObserver( THnMdCommonPointers* aCmnPtrs, TUint32 iId ); + +private: + + /** + * Second stage constructor. + * + * @since S60 v5.0 + */ + void ConstructL( const TUid aRepositoryUid ); + + /** + * Setup initial value of zoom at startup; + * + * @since S60 v5.0 + */ + void InitializeL(); + }; + +#endif /*HNREPOSITORYOBSERVER_H_*/ + +//End of file +