--- a/cmmanager/cmmgr/Framework/Inc/cmconnsettingsuiimpl.h Fri Apr 16 15:21:37 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,566 +0,0 @@
-/*
-* Copyright (c) 2006 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: Declaration of application selection dialog
-*
-*/
-
-#ifndef C_CMCONNSETTINGSUIIMPL_H
-#define C_CMCONNSETTINGSUIIMPL_H
-
-#include <e32def.h>
-#include <e32base.h>
-#include <ConeResLoader.h>
-#include <badesca.h> // CDesCArrayFlat
-#include <cmdefconnvalues.h>
-#include <hlplch.h>
-
-#include "cmmanager.hrh"
-#include "cmapplicationsettingsui.h"
-
-class TCmDCSettingSelection;
-class CCmManagerImpl;
-class CCmDestinationImpl;
-class CCmPluginBase;
-
-//CONSTS
-const TInt KCmDefConnIndex = 0;
-const TInt KCmUserDefinedIndex = 1;
-
-namespace CMManager
- {
- enum TCmDCSettingSelectionMode
- {
- EDCAlwaysAsk, /**<
- * The user selected Always Ask
- */
- EDCAskOnce, /**<
- * The user selected Ask Once
- */
- EDCDestination, /**<
- * The user selected a destination
- */
- EDCConnectionMethod, /**<
- * The user selected a connection method
- */
- EDCDefaultConnection /**<
- * The user selected a connection method
- */
- };
- } //namespace CmManager
-
-/**
- * Stores the details of a setting selection
- *
- * @since S60 3.2
- */
-NONSHARABLE_STRUCT( TCmDCSettingSelection ) //extended with Ask Once
- {
- /**
- * Selection that the user made
- */
- CMManager::TCmDCSettingSelectionMode iResult;
-
- /**
- * Id of the selected destination or connection method
- */
- TUint iId;
- // -----------------------------------------------------------------------------
- // TCmDCSettingSelection::operator==
- // -----------------------------------------------------------------------------
- //
- inline TBool TCmDCSettingSelection::operator==( TCmDCSettingSelection& aDCSettingSelection ) const
- {
- return ( (iResult == aDCSettingSelection.iResult) && ( iId == aDCSettingSelection.iId ) );
- };
-
- // -----------------------------------------------------------------------------
- // TCmDCSettingSelection::operator!=
- // -----------------------------------------------------------------------------
- //
- inline TBool TCmDCSettingSelection::operator!=( TCmDCSettingSelection& aDCSettingSelection ) const
- {
- return (!( (iResult == aDCSettingSelection.iResult) && ( iId == aDCSettingSelection.iId ) ));
- };
- // -----------------------------------------------------------------------------
- // TCmDCSettingSelection::ConvertToDefConn
- // -----------------------------------------------------------------------------
- //
- inline TCmDefConnValue TCmDCSettingSelection::ConvertToDefConn( ) const
- {
- TCmDefConnValue defConnValue;
- defConnValue.iType = ECmDefConnAlwaysAsk;
- defConnValue.iId = 0;
- switch ( iResult )
- {
- case CMManager::EDCAlwaysAsk :
- {
- defConnValue.iType = ECmDefConnAlwaysAsk;
- break;
- }
- case CMManager::EDCAskOnce :
- {
- defConnValue.iType = ECmDefConnAskOnce;
- break;
- }
- case CMManager::EDCDestination :
- {
- defConnValue.iType = ECmDefConnDestination;
- defConnValue.iId = iId;
- break;
- }
- case CMManager::EDCConnectionMethod :
- {
- defConnValue.iType = ECmDefConnConnectionMethod;
- defConnValue.iId = iId;
- break;
- }
- case CMManager::EDCDefaultConnection :
- {
- defConnValue.iType = ECmDefConnAlwaysAsk; //default value
- break;
- }
- default:
- {
- defConnValue.iType = ECmDefConnAlwaysAsk; //default value
- break;
- }
- };
- return defConnValue;
- };
- };
-
-
-
-/**
- * Implementation of application setting UI.
- *
- * @lib cmmanage.lib
- * @since S60 v3.2
- */
-NONSHARABLE_CLASS(CCmConnSettingsUiImpl) : public CBase
- {
-
- public:
-
- IMPORT_C static CCmConnSettingsUiImpl* NewL( CCmManagerImpl* aCCmManagerImpl = NULL );
- static CCmConnSettingsUiImpl* NewWithoutTablesL();
-
- virtual ~CCmConnSettingsUiImpl();
-
- //=========================================================================
- // UI API
- //
- public:
-
- /**
- * Launches the 'easy to use' Settings UI provided for applications
- * for handling Destinations and Connection Methods
- *
- * @since 3.2
- * @param aSelection If initialised to a valid value, sets the higlight to the
- * corresponding list item at startup. If a list of Destinations is displayed, and
- * the initial highlight is set to a Connection Method, the parent Destination
- * gets highlighted. On return, holds user selection.
- * @param aListItems A bit field which indicates which items shoud be
- * shown in the selection dialog. The bitmasks are
- * defined in the TCmSelectionDialogItems enum.
- *
- * The function leaves with KErrNotSupported if all the items which
- * were set to be shown are not supported/enabled.
- * E.g. Default Connection availability/support is controlled by the
- * Feature Manager so if only EShowDefaultConnection is set and the
- * Default Connection feature is not enabled than the function leaves
- * with KErrNotSupported.
- *
- * In other cases (when an item or items are not supported/enabled but
- * not all) the selected but not supported/enabled items are not added
- * to the list. The request to show such an item is silently ignored.
- *
- *
- * Special note about the EShowDestinations and EShowConnectionMethods
- * bitmasks:
- * The following enumerations controls how how destinations and
- * Connection Methods are presented in the selection UI.
- * General rule about the EShowDestinations:
- * Destinations which does not contain any Connection Methods are
- * not shown in the selection dialog. The same rule is applied if
- * the Destination containes Connection Methods but all of them
- * are filtered out by the filtering criteria.
- * EShowDestinations is set and EShowConnectionMethods is set:
- * Destination list is added to the selection UI and a Connection
- * Method can be selected inside a Destination.
- * EShowDestinations is set and EShowConnectionMethods is not set:
- * Destination list is added to the selection UI and no Connection
- * Method can be selected inside a Destination.
- * EShowDestinations is not set and EShowConnectionMethods is set:
- * Connection Method list is added to the selection UI. Connection
- * Methods are ordered according to the global bearer type
- * priorities. Destination cannot be selected.
- * EShowDestinations is not set and EShowConnectionMethods is not set:
- * The selection UI will not contain any Destination or Connection
- * Method. E.g. If EShowAlwaysAsk and EShowDefaultConnection was
- * set then the selection UI will contain two entries (AlwaysAsk
- * and DefaultConnection).
- *
- * @param aFilterArray Only Connection Methods with bearer types from
- * the aFilterArray will be showed.
- * All Connection Methods will be listed if the
- * array has no element.
- * @return TBool seleceted or not.
- *
- * @leave KErrArgument If the selection dialog would have zero
- * elements based on the aListItems bitmask
- * (aListItems is equal to zero).
- *
- * @leave KErrNotSupported
- * If the selection dialog would have zero
- * elements based on the aListItems bitmask
- * (all the selected elements in aListItems
- * are not supported/disabled).
- * E.g. aListItems = EShowDefaultConnection but
- * Default Connection feature is not enabled.
- *
- * @leave KErrNotFound If the selection dialog would have zero
- * elements caused by filtering out all the
- * Connection Methods with the aFilterArray
- * and not requesting other list elements by
- * the aListItems bitfield than an error note
- * is shown and the function call leaves with
- * KErrNotFound error code.
- * E.g.
- * - aListItems = EShowConnectionMethods
- * but all Connection Methods are filtered
- * out by the aFilterArray.
- */
- IMPORT_C TBool RunApplicationSettingsL(
- TCmSettingSelection& aSelection,
- TUint aListItems,
- TBearerFilterArray& aFilterArray);
-
- /**
- * Launches the Default Connection Radio Button Page
- * for use in Destinations View
- * @since 3.1U
- * @params aSelection User selection.
- * @returns ETrue if a selection was made
- */
- TBool RunDefaultConnecitonRBPageL ( TCmDCSettingSelection& aSelection );
-
- /**
- * Creates and returns a string which contains the default connection name
- * for use in Destinations View
- * @since 3.1U
- * @params aSelection User selection.
- * @returns the default connection name
- */
- HBufC* CreateDefaultConnectionNameL( TCmDefConnValue aSelection );
-
- /**
- * Enables/Disables AlwaysAsk
- *
- * @param ETrue enables
- * @since S60 3.2
- */
- inline void EnableAlwaysAsk( TBool aEnable )
- { iShowAlwaysAsk = aEnable; }
-
- /**
- * Enables/Disables EasyWlan
- *
- * @param ETrue enables
- * @since S60 3.2
- */
- inline void EnableEasyWlan( TBool aEnable )
- { iShowEasyWlan = aEnable; }
-
- /**
- * Enables/Disables VirtualCMs
- *
- * @param ETrue enables
- * @since S60 3.2
- */
- inline void EnableVirtualCMs( TBool aEnable )
- { iShowVirtualCMs = aEnable; }
-
- /**
- * Enables/Disables EmptyDestinations
- *
- * @param ETrue enables
- * @since S60 3.2
- */
- inline void EnableEmptyDestinations( TBool aEnable )
- { iShowEmptyDestinations = aEnable; }
-
- /**
- * Sets a destination id which should be omitted from the list
- * typically this will be the parent destination of a virtual CM
- *
- * @param aDestinationId
- * @since S60 3.2
- */
- inline void SetDestinationToOmit( TUint32 aDestinationId )
- { iDestinationToOmit = aDestinationId; }
-
- /**
- * Enables/Disables Ask Once
- *
- * @param ETrue enables
- * @since S60 3.2
- */
- inline void EnableAskOnce( TBool aEnable )
- { iShowAskOnce = aEnable; }
-
- /**
- * Enables/Disables Uncategorised item
- *
- * @param ETrue enables
- * @since S60 3.2
- */
- inline void EnableUncat( TBool aEnable )
- { iShowUncat = aEnable; }
-
- /**
- * Enables/Disables Default Connection item
- *
- * @param ETrue enables
- * @since S60 3.2
- */
- inline void EnableDefConn( TBool aEnable )
- { iShowDefConn = aEnable; }
-
-
-
- /**
- * Sets the array of destinations to be used.
- * Typically this routine will be used by plugins having
- * restrictions on possible destinations.
- *
- * @param aDestinationArray
- * @since S60 3.2
- */
- IMPORT_C void SetDestinationArrayToUseL( RArray<TUint32> aDestinationArray );
-
- /**
- * Clear previously passed destinations and return to normal use.
- *
- * @since S60 3.2
- */
- IMPORT_C void ClearDestinationArrayToUse();
-
- private:
-
- CCmConnSettingsUiImpl();
-
- void ConstructL( CCmManagerImpl* aCCmManagerImpl = NULL );
-
- TInt LoadResourceL ();
-
- /**
- * Displays a set of destinations for selecting a network connection
- *
- * @param aSelection If initialised to a valid value, sets the higlight to the
- * corresponding list item at startup. If a list of Destinations is displayed, and
- * the initial highlight is set to a Connection Method, the parent Destination
- * gets highlighted. On return, holds user selection.
- * @return soft key selection
- */
- TBool ShowConnSelectRadioPageL( TCmDCSettingSelection& aSelection,
- const TInt aTitleStringResource,
- TBearerFilterArray& aFilterArray );
-
- /**
- * Displays a the Default Connection/User Defined radio button page
- *
- * @param aSelection If initialised to a valid value, sets the higlight to the
- * corresponding list item at startup. If a list of Destinations is displayed, and
- * the initial highlight is set to a Connection Method, the parent Destination
- * gets highlighted. On return, holds user selection.
- * @return soft key selection
- */
- // TBool ShowDefConnRadioPageL( TInt& aSelection );
-
-
- /**
- * Return array of destination of which have at least connection method
- * @param aItems array of destination names
- */
- void BuildDestinationArrayL( CDesCArrayFlat* aItems,
- TBearerFilterArray& aFilterArray );
-
- /**
- * Return array of CMs of which have at least connection method
- * @param aItems array of destination names
- */
- void BuildCMArrayL( CDesCArrayFlat* aItems,
- TBearerFilterArray& aFilterArray );
-
- /**
- * Put the array of CMs into iConnMethods
- */
- void GetCMArrayL( );
-
- /**
- * Build uncategorized connection method array and append
- * 'Uncategorized' item if there's any.
- * @param aUncatArray array of uncategorized connection method ids.
- * @param aItems array of destination names
- */
- void BuildUncatArrayL( RPointerArray<CCmPluginBase>& aUncatArray,
- CDesCArrayFlat* aItems,
- TBearerFilterArray& aFilterArray );
- /**
- * Show destination selection dialog.
- * @param aDestSelected index of selected destination
- * @param aItems array of destination names
- * @param aSelection If initialised to a valid value, sets the higlight to the
- * corresponding list item at startup. If a list of Destinations is displayed, and
- * the initial highlight is set to a Connection Method, the parent Destination
- * gets highlighted. On return, holds user selection.
- * @return ETrue if a selection was made
- */
- TBool UserSelectionDlgL( TInt& aDestSelected,
- CDesCArrayFlat* aItems,
- TCmDCSettingSelection& aSelection,
- const TInt aTitleStringResource,
- TBool aOpenDestination );
-
- /**
- * Show uncategorized connection method selection dialog
- * @param aUncatArray list of uncategorized connection methods.
- * @param aSelection If initialised to a valid value, sets the higlight to the
- * corresponding list item at startup. On return, holds user selection.
- * @return softkey selection.
- */
- TBool UserSelectedUncatItemL( RPointerArray<CCmPluginBase>& aUncatArray,
- TCmDCSettingSelection& aSelection,
- const TInt aTitleStringResource );
-
- /**
- * A radio button page of all the connection methods belonging to
- * a the specified destination
- *
- * @param aDestinationId the destination from which a connection
- * method will be selected
- * @param aSelection If initialised to a valid value, sets the higlight to the
- * corresponding list item at startup. On return, holds user selection.
- * @return soft key selection
- */
- TBool ShowConnectionMethodsL( RPointerArray<CCmPluginBase>& aCmArray,
- TCmDCSettingSelection& aSelection,
- const TInt aTitleStringResource,
- TBearerFilterArray& aFilterArray );
-
- /**
- * Checks if a Connection method is virtual
- *
- * @since S60 3.2
- * @param aCmIapId the iap id of the CM
- * @return ETrue if virtual
- */
- TBool IsCmVirtualL( TUint32 aCmIapId );
-
- private: // data
-
- /**
- * pointer to the CmManager - OWNED
- */
- CCmManagerImpl* iCmManagerImpl;
-
- /**
- * resource loader
- */
- RConeResourceLoader iResourceReader;
-
- /**
- * List of destination or CM IDs to show
- */
- RArray<TUint32> iItems;
- /**
- * Indicates whether iItems holds destinatos or CMs
- */
- TBool iAreDestinations;
-
- /**
- * Indicates whether Always Ask should be shown in the page
- */
- TBool iShowAlwaysAsk;
-
- /**
- * Indicates whether EasyWlan should be shown in the page
- */
- TBool iShowEasyWlan;
-
- /**
- * Indicates whether virtual iaps should be shown in the page
- */
- TBool iShowVirtualCMs;
-
- /**
- * Indicates whether Empty destinations should be shown in the page
- */
- TBool iShowEmptyDestinations;
-
- /**
- * Indicates the id of destination to specifically omit (usually a parent destination)
- * if zero, it can be ignored
- */
- TUint iDestinationToOmit;
-
- /**
- * Indicates whether Ask Once item should be shown in the page
- */
- TBool iShowAskOnce;
-
- /**
- * Indicates whether Uncategorized item should be shown in the page
- */
- TBool iShowUncat;
-
- /**
- * Indicates whether Default Connection item should be shown in the page
- */
- TBool iShowDefConn;
-
- /**
- * Indicates whether we have an own CmManager that we have to create and destroy
- */
- TBool iOwnCmManager;
-
- /**
- * Indicates whether the selected destinaton should be opened
- */
- TBool iOpenDestination;
-
- /**
- * Indicates whether to use a passed list of destinations
- * or use our own algorithm to get the list of possible destinations.
- */
- TBool iUsePassedDestinationArray;
-
- /**
- * An Array to hold the passed destinations.
- */
- RArray<TUint32> iPassedDestinations;
-
- /**
- * help context
- */
- TCoeContextName iHelpContext;
-
- /**
- * Indicates whether the tables should be created
- */
- TBool iCreateTables;
- };
-#endif // C_CMCONNSETTINGSUIIMPL_H