homescreensrv_plat/menu_content_service_api/inc/mcsmenunotifier.h
changeset 0 79c6a41cd166
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/homescreensrv_plat/menu_content_service_api/inc/mcsmenunotifier.h	Thu Dec 17 08:54:17 2009 +0200
@@ -0,0 +1,108 @@
+/*
+* Copyright (c) 2007 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:  Definition of menu change notifier
+*
+*/
+
+
+#ifndef __MCSMENUNOTIFIER_H__
+#define __MCSMENUNOTIFIER_H__
+
+#include <e32base.h>
+
+class RMenu;
+
+/**
+ *  Menu change notifier.
+ *  @lib mcsmenu.lib
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS( RMenuNotifier ): public RSubSessionBase
+    {
+
+public:
+
+    enum TEvent ///< Menu events.
+        {
+		EItemsNone = 0,///< Nothing changed.
+        EItemsAddedRemoved = 0x1, ///< Items added and/or removed in folder.
+        EItemsReordered = 0x2, ///< Items reordered in folder.
+        EItemAttributeChanged = 0x4, ///< Item attribute and/or flag changed.
+        };
+
+public:
+	
+	    /**
+    * Constructor.
+    * @since S60 v5.0
+    * @capability None.
+    * @throws None.
+    * @panic None.
+    */
+	RMenuNotifier(){ iData = NULL; };
+
+    /**
+    * Close the notifier. Safe to call if not open.
+    * Outstanding request, if any, is cancelled.
+    * @since S60 v5.0
+    * @capability ECapabilityReadDeviceData.
+    * @throws None.
+    * @panic None.
+    */
+    IMPORT_C void Close();
+
+    /**
+    * Open the notifier.
+    * @since S60 v5.0
+    * @param aMenu Menu.
+    * @return Error code.
+    * @capability ECapabilityReadDeviceData.
+    * @throws System-wide error codes if an error occurs.
+    * @panic None.
+    */
+    IMPORT_C TInt Open( RMenu& aMenu );
+
+    /**
+    * Request notification of menu events occurring in specified folder.
+    * @since S60 v5.0
+    * @param aFolder Folder to observe. Pass 0 to observe all folders
+    * (the whole menu).
+    * @param aEvents Events to be notified about. A combination of TEvent bits.
+    * @param aStatus Completes when menu events occur in the specified folder,
+    * or on error. Completion value is error code (if negative), or a combination
+    * of events specified in aEvents (if positive). Note, more than one event
+    * bit can be set.
+    * @capability ECapabilityReadDeviceData.
+    * @throws None.
+    * @panic None.
+    */
+    IMPORT_C void Notify( TInt aFolder, TInt aEvents, TRequestStatus &aStatus );
+
+    /**
+    * Cancel notification request.
+    * @since S60 v5.0
+    * @capability ECapabilityReadDeviceData.
+    * @throws None.
+    * @panic None.
+    */
+    IMPORT_C void Cancel();
+
+private:    // data
+    
+    class TData;
+    TData* iData; ///< Private data. Own.
+
+    };
+
+#endif // __MCSMENUNOTIFIER_H__