--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/liwserviceifmenu.h Thu Mar 25 09:33:14 2010 +0100
@@ -0,0 +1,137 @@
+/*
+* Copyright (c) 2003-2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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: Declares service API for providers offering menu services for
+* consumers.
+*
+*/
+
+
+
+
+
+
+#ifndef LIW_SERVICE_IF_MENU_H
+#define LIW_SERVICE_IF_MENU_H
+
+// INCLUDES
+#include <liwserviceifbase.h>
+
+// CONSTANTS
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class CLiwMenuPane;
+
+// CLASS DECLARATION
+
+/**
+* This is the menu service interface to access providers that offer menu services.
+*
+* Menu service providers should inherit this class. Providers offering
+* only base services should inherit CLiwServiceIfBase instead.
+*
+* @lib ServiceHandler.lib
+* @since Series 60 2.6
+* @see CLiwServiceIfBase
+**/
+class CLiwServiceIfMenu: public CLiwServiceIfBase
+ {
+ public:
+ /**
+ * Destructor.
+ */
+ IMPORT_C virtual ~CLiwServiceIfMenu();
+
+ /**
+ * Provider should implement this method to initialise a menu pane by adding
+ * provider specific menu items. The LIW framework gives the parameters to be
+ * used in the addition process.
+ *
+ * @param aMenuPane Menu pane handle.
+ * @param aIndex The position of the item where to add menu items.
+ * @param aCascadeId ID of cascade menu item.
+ * @param aInParamList Input parameter list for provider's parameter checking.
+ */
+ virtual void InitializeMenuPaneL(
+ CLiwMenuPane& aMenuPane,
+ TInt aIndex,
+ TInt aCascadeId,
+ const CLiwGenericParamList& aInParamList) = 0;
+
+ /**
+ * Provider should implement this method to handle a menu command. Called by the
+ * Service Handler when a consumer calls ExecuteMenuCmdL().
+ *
+ * @param aMenuCmdId Original provider specific ommand ID for the menu command.
+ * Defined in the provider's menu item resource.
+ * @param aInParamList Input parameters, can be an empty list.
+ * @param aOutParamList Output parameters, can be an empty list.
+ * @param aCmdOptions Options for the command, see KLiwCmdOpt* in LiwCommon.hrh.
+ * @param aCallback Callback if asynchronous command handling is wanted by consumer.
+ * The provider may or may not support this. A provider should
+ * leave with KErrNotSupported, if not.
+ * @leave KErrNotSupported Callback is not supported.
+ */
+ virtual void HandleMenuCmdL(
+ TInt aMenuCmdId,
+ const CLiwGenericParamList& aInParamList,
+ CLiwGenericParamList& aOutParamList,
+ TUint aCmdOptions = 0,
+ const MLiwNotifyCallback* aCallback = NULL) = 0;
+
+ /**
+ * Returns current LIW menu pane for this menu service provider.
+ *
+ * @return Pointer to the current LIW menu pane object.
+ */
+ IMPORT_C const CLiwMenuPane* MenuPane() const;
+
+ protected:
+ IMPORT_C virtual void* ExtensionInterface(TUid aInterface);
+
+ private:
+ // Rest of the class is for LIW's internal use and doesn't consern
+ // service providers.
+ friend class CLiwServiceHandlerImpl;
+
+ void InitializeMenuPaneHookL(
+ CLiwMenuPane* aMenuPane,
+ TInt aIndex,
+ TInt aCascadeId,
+ const CLiwGenericParamList& aInParamList);
+
+ void HandleMenuCmdHookL(
+ CLiwMenuPane* aMenuPane,
+ TInt aMenuCmdId,
+ const CLiwGenericParamList& aInParamList,
+ CLiwGenericParamList& aOutParamList,
+ TUint aCmdOptions = 0,
+ const MLiwNotifyCallback* aCallback = NULL);
+
+ private:
+ CLiwMenuPane* iMenuPane; // Not owned.
+
+ // Reserved member
+ TAny* iSpare;
+ };
+
+
+#endif // LIW_SERVICE_IF_MENU_H
+
+// End of file