--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/locsrv_plat/location_settings_launch_api/inc/locsettingsuiclient.h Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,316 @@
+/*
+* 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: Client Side handle for using the Location System UI services
+*
+*/
+
+
+#ifndef C_LOCSETTINGSUICLIENT_H
+#define C_LOCSETTINGSUICLIENT_H
+
+// System Includes
+#include <e32base.h>
+
+// Forward Declarations
+class RLocSettingsUiService;
+class CLocLaunchUiAO;
+class CEikonEnv;
+
+// Global Constants
+
+// UIDs for Launching the Location Based Settings UIs through the Launch
+// API. The UIDs of all the Settings UI plug-ins that plug into this framework
+// need to be consolidated here.
+
+/**
+ * UID for launching Position Method Settings
+ */
+const TInt KLocPsySettingsUID = 0x10275062;
+
+/**
+ * UID for launching SUPL Settings UI
+ */
+const TInt KLocSUPLSettingsUID = 0x10275091;
+
+/**
+ * UID for launching Location Notation Prefences Settings UI
+ */
+const TInt KLocNotPrefSettingsUID = 0x1020690F;
+
+// Parameters for Individual Location Based Settings UIs. All parameter
+// enumerations of all Settings UI plug-ins that plug into this framwork
+// need to be consolidated here
+
+/**
+ * Default Value for all paramter enumerations. This should be the first
+ * enumeration value for all the parameter enumerations that we define
+ */
+const TInt KDefaultParamValue = 0x00000000;
+
+/**
+ * SUPL Settings UI parameter enumerations
+ */
+enum TLocSUPLSettingsParams
+ {
+ ELocSUPLDefault = KDefaultParamValue, // Default Settings View
+ ELocSUPLIAPSelection = 0x00000001, // IAP Selection dialog
+ ELocSUPLStateSelection = 0x00000002, // State enable dialog
+ ELocSuplSettingsPage = 0x00000010 // SUPL settings page
+ };
+
+
+/**
+ * Client side resource class to launch Location settings UI.
+ *
+ * Client side interface class used by all clients to
+ * launch Location settings UIs. For UI applications the settings UIs
+ * can be launched as embedded application. Frameworks can launch the
+ * settings UIs in a separate UI server.
+ *
+ * The client application / framework can also cancel the launched
+ * settings UI by calling the Cancel method.
+ *
+ * @lib locsettingsuiclient.lib
+ * @since S60 v3.1
+ */
+class CLocSettingsUiClient : public CBase
+ {
+
+public:
+ /**
+ * Two Phase constructor
+ *
+ * @since S60 v3.1
+ * @return The reference of the newly allocated CLocSettingsUiClient
+ * object
+ */
+ IMPORT_C static CLocSettingsUiClient* NewL();
+
+ /**
+ * Two Phase constructor. Leaves the allocated object on the Clean-up
+ * stack
+ *
+ * @since S60 v3.1
+ * @return The reference of the newly allocated CLocSettingsUiClient
+ * object
+ */
+ IMPORT_C static CLocSettingsUiClient* NewLC();
+
+ /**
+ * C++ Destructor
+ *
+ * @since S60 v3.1
+ */
+ virtual ~CLocSettingsUiClient();
+
+public: // Exported functions related to the handling of Location sub-setting UI.
+ /**
+ * Launch a Settings UI in an ui app server.
+ * The API is used to launch a settings UI. It is expected to be used
+ * by Framework executables that do not have a UI environment.
+ * There can be only one outstanding Launch request at any instant of
+ * time. This is an asynchronous function. If a session is already
+ * running then the function leaves with KErrInUse.
+ *
+ * @since S60 v3.1
+ * @param aImplementationUid The ECOM Implementation UID of the
+ * settings UI ECOM plug-in that has to be
+ * launched.
+ * @param aParams Opaque parameters that is handed over to
+ * the Settings UI. Flags that define
+ * specific configuration of the Settings UI,
+ * that the user of the API wants to launch.
+ * The interpretation of these flag values is a
+ * part of the understanding between the API
+ * user and the Settings UI
+ * @param aStatus Request status. On completion contains:
+ * KErrNone, if successful, otherwise one of
+ * the other system-wide error codes.
+ *
+ */
+ IMPORT_C void LaunchSettingsUiL( TUid aImplementationUid,
+ TInt aParams,
+ TRequestStatus& aStatus );
+
+ /**
+ * Launch a Settings UI as an embedded application.
+ * The API is used to launch a settings UI as an embeded. This is
+ * expected to be used by UI applications. There can be only
+ * one outstanding Launch request at any instant of time. This is
+ * an asynchronous function.
+ *
+ * @since S60 v3.1
+ * @param aImplementationUid The ECOM Implementation UID of the
+ * settings UI ECOM plug-in that has to be
+ * launched.
+ * @param aParams Opaque parameters that is handed over to
+ * the Settings UI. Flags that define
+ * specific configuration of the Settings UI,
+ * that the user of the API wants to launch.
+ * The interpretation of these flag values is a
+ * part of the understanding between the API
+ * user and the Settings UI
+ * @param aStatus Request status. On completion contains:
+ * KErrNone, if successful, otherwise one of
+ * the other system-wide error codes.
+ *
+ */
+ IMPORT_C void LaunchSettingsUiAsEmbeddedAppL(
+ TUid aImplementationUid,
+ TInt aParams,
+ TRequestStatus& aStatus );
+ /**
+ * Launch a Settings UI in an ui app server.
+ * The API is used to launch a settings UI. It is expected to be used
+ * by Framework executables that do not have a UI environment.
+ * There can be only one outstanding Launch request at any instant of
+ * time. This is an asynchronous function. If a session is already
+ * running then the function leaves with KErrInUse.
+ *
+ * @since S60 v9.2
+ * @param aImplementationUid The ECOM Implementation UID of the
+ * settings UI ECOM plug-in that has to be
+ * launched.
+ * @param aParamsString Opaque parameters that is handed over to
+ * the Settings UI. This allows the API user
+ * to pass buffer to the Settings UI.
+ * The interpretation of this buffer is the
+ * part of the understanding between the API
+ * user and the Settings UI
+ * @param aStatus Request status. On completion contains:
+ * KErrNone, if successful, otherwise one of
+ * the other system-wide error codes.
+ *
+ */
+ IMPORT_C void LaunchSettingsUiL( TUid aImplementationUid,
+ const TDesC& aParamsString,
+ TRequestStatus& aStatus );
+
+ /**
+ * Launch a Settings UI as an embedded application.
+ * The API is used to launch a settings UI as an embeded. This is
+ * expected to be used by UI applications. There can be only
+ * one outstanding Launch request at any instant of time. This is
+ * an asynchronous function.
+ *
+ * @since S60 v9.2
+ * @param aImplementationUid The ECOM Implementation UID of the
+ * settings UI ECOM plug-in that has to be
+ * launched.
+ * @param aParamsString Opaque parameters that is handed over to
+ * the Settings UI. This allows the API user
+ * to pass buffer to the Settings UI.
+ * The interpretation of this buffer is the
+ * part of the understanding between the API
+ * user and the Settings UI
+ * @param aStatus Request status. On completion contains:
+ * KErrNone, if successful, otherwise one of
+ * the other system-wide error codes.
+ *
+ */
+ IMPORT_C void LaunchSettingsUiAsEmbeddedAppL(
+ TUid aImplementationUid,
+ const TDesC& aParamsString,
+ TRequestStatus& aStatus );
+
+ /**
+ * Cancels an already launched settings UI.
+ *
+ * @since S60 v3.1
+ * @return a Symbian OS Error Code in case a settings UI was not launched.
+ * Returns KErrNone if successful.
+ */
+ IMPORT_C TInt CancelLaunchedSettingsUi();
+
+public: // Exported functions pertaining to the handling of Postioning Settings
+
+ /**
+ * Launch Positioning Settings UI.
+ * The API is used to launch Positioning Settings UI. It is expected to
+ * be used by Framework executables that do not have a UI environment.
+ * There can be only one outstanding Launch request at any instant of
+ * time. This is an asynchronous function. If a session is already
+ * running then the function leaves with KErrInUse.
+ *
+ * @since S60 v3.2
+ * @param aStatus Request status. On completion contains:
+ * KErrNone, if successful, otherwise one of
+ * the other system-wide error codes.
+ *
+ */
+ IMPORT_C void LaunchPosSettingsL( TRequestStatus& aStatus );
+
+ /**
+ * Launch Positioning Settings UI as an embedded application.
+ * The API is used to launch Positioning Settings UI. his is
+ * expected to be used by UI applications. There can be only
+ * one outstanding Launch request at any instant of time. This is
+ * an asynchronous function. If a session is already
+ * running then the function leaves with KErrInUse.
+ *
+ * @since S60 v3.2
+ * @param aStatus Request status. On completion contains:
+ * KErrNone, if successful, otherwise one of
+ * the other system-wide error codes.
+ *
+ */
+ IMPORT_C void LaunchPosSettingsAsEmbeddedAppL( TRequestStatus& aStatus );
+
+ /**
+ * Closes an already launched Positioning Settings UI.
+ *
+ * @since S60 v3.2
+ * @return Symbian OS Error Code in case Positioning settings UI
+ * was not launched.
+ * Returns KErrNone if successful.
+ */
+ IMPORT_C TInt ClosePosSettings();
+
+private:
+ /**
+ * C++ Default Constructor
+ */
+ CLocSettingsUiClient();
+
+ /**
+ * Second phase of Two phase construction
+ */
+ void ConstructL();
+
+private:
+
+ /**
+ * Handle to the Client side resource to the Settings UI Server
+ * Owns
+ */
+ RLocSettingsUiService* iLocService;
+
+ /**
+ * Active Object to initiate asynchronous requests
+ * Owns
+ */
+ CLocLaunchUiAO* iLaunchUiAO;
+
+ /**
+ * Reference to the UI environment from where this client is launched.
+ * It will be NULL if the Client Application is launched from frameworks
+ */
+ CEikonEnv* iCEikonEnv;
+
+ /** Unused variable for future expansion. */
+ TAny* iReserved;
+
+ };
+
+#endif // C_LOCSETTINGSUICLIENT_H