cmmanager/cmmgr/Framework/Inc/cmconnsettingsuiimpl.h
changeset 20 9c97ad6591ae
parent 18 fcbbe021d614
child 21 b8e8e15e80f2
child 23 7ec726f93df1
child 28 860702281757
--- 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