locationsystemui/locationsysui/locsysuiview/inc/locsettingsui.h
changeset 0 667063e416a2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/locsysuiview/inc/locsettingsui.h	Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,172 @@
+/*
+* Copyright (c) 2005-2009 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:  E-Comm Plugin interface. Defines a settings UI component. The 
+*				 Settings UI component should contain one or more Window owning 
+*				 control that provides the Setting funtionality.
+*
+*/
+
+
+#ifndef C_LOCSETTINGSUI_H_
+#define C_LOCSETTINGSUI_H_
+
+// System Include
+#include <e32base.h>
+
+// Forward Declarations
+class CLocSettingsUiParams;
+class MLocSettingsUiObserver;
+class CAknViewAppUi;
+
+// Global Constants
+/**
+ * The Interface UID for the ECom interface. The implementations of this ECom
+ * plug-in have to the use this value as their Interface UID if they intend 
+ * to link to the Location System UI Engine
+ */
+const TUid	KSettingsUiInterfaceUID			=  { 0x10275061 };
+
+// Class Definition
+/**
+ * Settings UI ECom plug-in interface
+ *
+ * Interface class that provides the Settings UI funtionality. Any Settings UI
+ * component should derive from this class and implement the abstract funtions
+ * Includes support for launching a UI, premature closing of a running UI and 
+ * re-launching a suspended UI application. The plug-in does not mandate the 
+ * nature of the Settings Ui. Unless the Settings UI transfers the ownership
+ * of its component objects ( For eg. It might decide to implement a view and 
+ * transfer its ownership to the AppUi class ), it is responsible for completely
+ * handling them
+ *
+ * @lib locsysuiview.lib
+ * @since S60 v3.1
+ */
+class CLocSettingsUi : public CBase
+	{		
+	public:
+        /**
+         * Creates and initializes the Settings UI component. The component 
+         * creation is handled through the E-Comm server
+         *
+         * @param aImplementationUid  Implementation UID of the Settings Ui that
+         *							  has to be launched
+         * @param aInitParams		  Initialization Parameters
+         */
+		inline static CLocSettingsUi* NewL( const TUid				aImplementationUid,
+										    CLocSettingsUiParams&	aInitParams );
+        /**
+         * Destructor. Handles the destruction of the object through the 
+         * EComm Session
+         */
+		inline virtual ~CLocSettingsUi();
+
+        /**
+         * Returns the Settings UI Id. A unique identifer that identifies the 
+         * Settings UI. Could be the E-Comm destructor Id
+         *
+         * @since S60 v3.1
+         * @return Settings UI Identifier
+         */
+        inline TUid GetSettingsUiID();
+
+        /**
+         * Launches the Settings UI
+         *
+         * @since S60 v3.1
+         * @param aUiLaunchParams	Flags that define specific configuration of
+         *                          if the Settings UI, that the user of the API
+         *                          wants to launch. If more than one functionality
+         *                          is requested then the various combinations
+         *                          are to be ORed. The interpretation of these
+         *                          flag values is a part of the understanding
+         *                          between the API user and the Settings UI
+         */
+        virtual void LaunchL( TInt		aUiLaunchParams )			   		= 0;
+
+        /**
+         * Launches the Settings UI
+         *
+         * @since S60 v9.2
+         * @param aUiInputParams String passed as a parameter to the
+         *                       Location UI, that the user of the API wants to
+         *                       launch. The interpretation of this string is
+         *                       a part of the understanding between the API user
+         *                       and the corresponding Location UI.
+         */
+        virtual void LaunchL( const TDesC&		aUiLaunchParams );
+
+        /**
+         * Closes the running Settings UI prematurely. The UI can be closed 
+         * permanently or could be temporarily suspended and relaunched. Incase of 
+         * temporary suspension it is left to the implementation to decide to
+         * either store its current state or discard the same. The Settings UI
+         * is expected to release all the resources that it owns on the Close
+         * call.
+         *
+         * @since S60 v3.1
+         */
+        virtual void Close()							   = 0;
+
+        /**
+         * Method for getting caption of this plugin. This should be the 
+         * localized name of the settings view to be shown in parent view.
+         *
+         * @since S60 v3.1
+         * @param aCaption Pointer to Caption variable. The memory for the 
+         *                 variable has to be allocated by the calling 
+         *                 function. If it is found that there is insufficient
+         *                 memory then the function can leave accordingly
+         */
+        virtual void GetCaptionL( TDes& aCaption ) const					   = 0;
+
+        /**
+         * Returns the priority of the UI module. The priority value is defined 
+         * by the position in which the UI would be present when displayed to 
+         * the user. 
+         * 
+         * @since S60 v3.1
+         * @return Priority of the Settings UI
+         */
+        virtual TInt GetPriority()											   = 0;
+        
+	protected:
+        /**
+         * Default Constructor
+         */
+        inline CLocSettingsUi( MLocSettingsUiObserver&		aSettingsUiObserver,
+        		 		       CAknViewAppUi&				aAppUi );
+        		 		       
+	protected:
+        /**
+         * Observer for the Settings UI Class
+         */	    
+		MLocSettingsUiObserver&		iSettingsUiObserver;
+		
+		/**
+         * Reference to the Application Ui to which the Settings UI would belong to
+         */
+		CAknViewAppUi&				iAppUi;
+			
+	private:
+        /**
+         * ECOM plugin instance UID.
+         */
+		TUid						iDtor_ID_Key;
+	};
+
+#include "locsettingsui.inl"
+
+#endif // C_LOCSETTINGSUI_H_
+