diff -r 8b0c979bbe8c -r ac5daea24fb0 apengine/apsettingshandlerui/inc/ApSettingsDlg.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/apengine/apsettingshandlerui/inc/ApSettingsDlg.h Wed Oct 27 17:43:56 2010 +0300 @@ -0,0 +1,1020 @@ +/* +* Copyright (c) 2002 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: +* Declares dialog for access point view/edit. +* +*/ + + +#ifndef APSETTINGS_DLG_H +#define APSETTINGS_DLG_H + + + +// INCLUDES +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include + + +// CONSTANTS +const TInt KBearers = 4; + + +// FORWARD DECLARATIONS +class CTextOverrides; +class CEikStatusPane; +class CAknTitlePane; +class CAknNavigationControlContainer; +class CAknNavigationDecorator; +class CApSettingsModel; +class CApSettingsHandlerImpl; +class CFeatureManagerWrapper; + + +// CLASS DECLARATION +/** +* CApSettingsDlg dialog class +* +*/ + +const TInt KEndOfArray = -1; + +const TInt KCsdAnalogue[] = { KSpeedAutobaud, KSpeed9600, KSpeed14400, + KEndOfArray }; + +const TInt KCsdAnalogueWcdma[] = { KSpeedAutobaud, KSpeed9600, KSpeed14400, + KSpeed28800, KEndOfArray }; + +const TInt KCsdIsdn110[] = { KSpeed9600, KSpeed14400, KEndOfArray }; + +const TInt KCsdIsdn110Wcdma[] = { KSpeed9600, KSpeed14400, KSpeed28800, + KSpeed38400, KEndOfArray }; + +const TInt KCsdIsdn120[] = { KSpeed9600, KSpeed14400, KEndOfArray }; + +const TInt KCsdIsdn120Wcdma[] = { KSpeed9600, KSpeed14400, KSpeed28800, + KSpeed56000, KEndOfArray }; + +const TInt KHcsdAnalogue[] = { KSpeedAutobaud, KSpeed9600, KSpeed14400, + KSpeed19200, KSpeed28800, KEndOfArray }; + +const TInt KHcsdIsdn110[] = { KSpeed9600, KSpeed14400, KSpeed19200, + KSpeed28800, KSpeed38400, KEndOfArray }; + +const TInt KHcsdIsdn120[] = { KSpeed9600, KSpeed14400, KSpeed19200, + KSpeed28800, KSpeed43200, KEndOfArray }; + +//Resources +const TInt KResCsdAnalogue[] = { R_APUI_VIEW_SPEED_AUTODETECT, + R_APUI_VIEW_SPEED_9600, + R_APUI_VIEW_SPEED_14400, KEndOfArray }; + +const TInt KResCsdAnalogueWcdma[] = { R_APUI_VIEW_SPEED_AUTODETECT, + R_APUI_VIEW_SPEED_9600, + R_APUI_VIEW_SPEED_14400, + R_APUI_VIEW_SPEED_28800, KEndOfArray }; + +const TInt KResCsdIsdn110[] = { R_APUI_VIEW_SPEED_9600, + R_APUI_VIEW_SPEED_14400, KEndOfArray }; + +const TInt KResCsdIsdn110Wcdma[] = { R_APUI_VIEW_SPEED_9600, + R_APUI_VIEW_SPEED_14400, + R_APUI_VIEW_SPEED_28800, + R_APUI_VIEW_SPEED_38400, KEndOfArray }; + +const TInt KResCsdIsdn120[] = { R_APUI_VIEW_SPEED_9600, + R_APUI_VIEW_SPEED_14400, KEndOfArray }; + +const TInt KResCsdIsdn120Wcdma[] = { R_APUI_VIEW_SPEED_9600, + R_APUI_VIEW_SPEED_14400, + R_APUI_VIEW_SPEED_28800, + R_APUI_VIEW_SPEED_56000, KEndOfArray }; + +const TInt KResHcsdAnalogue[] = { R_APUI_VIEW_SPEED_AUTODETECT, + R_APUI_VIEW_SPEED_9600, + R_APUI_VIEW_SPEED_14400, + R_APUI_VIEW_SPEED_19200, + R_APUI_VIEW_SPEED_28800, KEndOfArray }; + +const TInt KResHcsdIsdn110[] = { R_APUI_VIEW_SPEED_9600, + R_APUI_VIEW_SPEED_14400, + R_APUI_VIEW_SPEED_19200, + R_APUI_VIEW_SPEED_28800, + R_APUI_VIEW_SPEED_38400, KEndOfArray }; + +const TInt KResHcsdIsdn120[] = { R_APUI_VIEW_SPEED_9600, + R_APUI_VIEW_SPEED_14400, + R_APUI_VIEW_SPEED_19200, + R_APUI_VIEW_SPEED_28800, + R_APUI_VIEW_SPEED_43200, KEndOfArray }; + +NONSHARABLE_CLASS( CApSettingsDlg ) : public CAknDialog, + public MEikListBoxObserver, + public MActiveApDbObserver + { + + public: // Constructors and destructor + + enum TSaveAction + { + EApCanSave, + EApMustDelete, + EApShallGoBack, + EApNoAction + }; + + /** + * Create and launch dialog. + * @param aModel Model to be used for handling access point data. + * Not owned. Must remain intact while the dialog + * exists. + * @param aHandler The data handling object + * @param aUid The Wap Access Point ID of the access point + * to view/edit. + * @param aItem An optional CApAccessPointItem to edit + * @return The code returned by the dialogs' ExecuteLD + */ + TInt ConstructAndRunLD( CApSettingsModel& aModel, + CApSettingsHandlerImpl& aHandler, + TUint32& aUid, + CApAccessPointItem* aItem = NULL ); + + + + /** + * Two-phase construction. + * @param aIspFilter The Isp filter to be used + * @param aBearerFilter The bearer filter to be used + * @param aSortType The sorting to be used + * @param aEventStore A reference to hold the events happened + * while running this setting dialog. + * @param aNeedIpv6Support Specifies whether the caller would like to + * have IPv6 support or not. If it is ETrue, in case of IPv6 support + * is available as a feature, it will be supported. If IPv6 feature + * is not supported by the phone, it simply defaults to the normal + * IPv4 version. + * If it is False, it uses the default IPv4 version independently + * from IPv6 feature beeing available or not. + */ + static CApSettingsDlg* NewL( TInt aIspFilter, + TInt aBearerFilter, + TInt aSortType, + TUint32& aEventStore, + TInt aNeedIpv6Support = EFalse + ); + + + /** + * Destructor. + */ + ~CApSettingsDlg(); + + + // From CCoeControl + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, + TEventCode aType ) ; + + protected: + /** + * Constructor. + * @param aIspFilter The Isp filter to be used + * @param aBearerFilter The bearer filter to be used + * @param aSortType The sorting to be used + * @param aEventStore A reference to hold the events happened + * while running this setting dialog. + * @param aNeedIpv6Support Specifies whether the caller would like to + * have IPv6 support or not. If it is ETrue, in case of IPv6 support + * is available as a feature, it will be supported. If IPv6 feature + * is not supported by the phone, it simply defaults to the normal + * IPv4 version. + * If it is False, it uses the default IPv4 version independently + * from IPv6 feature beeing available or not. + */ + CApSettingsDlg( TInt aIspFilter, + TInt aBearerFilter, + TInt aSortType, + TUint32& aEventStore, + TBool aNeedIpv6Support + ); + + + + public: // New functions + + /** + * Initialises texts. + */ + void InitTextsL(); + + + /** + * Handles listbox data change + * @param aReRead Boolean indicating whether the data must be re-read + * from the database or only 'value' or 'structural' changes + */ + void HandleListboxDataChangeL( TBool aReRead ); + + + /** + * Sets the text overrides + * @param aOverrides The text overrides object to be used + */ + void SetTextOverrides( CTextOverrides* aOverrides ); + + + /** + * Handles database events, implementation of the + * MActiveApDbObserver protocol + * @param anEvent The event code + */ + virtual void HandleApDbEventL( TEvent anEvent ); + + // From CCoeControl + virtual void GetHelpContext(TCoeHelpContext& aContext) const; + + private: + + // From CEikDialog + virtual void PreLayoutDynInitL(); + + // From CAknDialog + TBool OkToExitL( TInt aButtonId ); + + // From MEikCommandObserver + virtual void ProcessCommandL( TInt aCommandId ) ; + + // From MEikMenuObserver + virtual void DynInitMenuPaneL( TInt aResourceId, + CEikMenuPane* aMenuPane ) ; + + // From MEikListBoxObserver + void HandleListBoxEventL( CEikListBox* aListBox, + TListBoxEvent aEventType ); + + protected: // New functions + + /** + * Fills up the listbox with data + * @param aItemArray The itemarray to fill up + * @param arr A pointer to a TApMember array to be used as + * list elements + * @param aLength The number of elements in the above array + * @param aRes A pointer to an array of resource ID's to use + * for the elements of the TApMember array + * @param aCompulsory A pointer to an array of TInts indicating that + * the elements of the TApMember array are + * compulsory or not + */ + void FillListWithDataL + ( + CDesCArrayFlat& aItemArray, + const TApMember& arr, + TInt aLength, + const TInt* aRes, + const TInt* aCompulsory + ); + + + + /** + * Adds one textual listbox item for the given member + * @param aItemArray The itemarray to add the item + * @param aMember A TApMember value specifying which member of + * the access point had to be added to the list + * @param aRes Resource ID for the 'title text' for this + * member + * @param aCompulsory a TInt indicating whether this member is + * compulsory or not + */ + void AddTextualListBoxItemL + ( + CDesCArrayFlat& aItemArray, + TApMember aMember, + TInt aRes, + TInt aCompulsory + ); + + + /** + * Adds one 'on/off' listbox item for the given member + * @param aItemArray The itemarray to add the item + * @param aMember A TApMember value specifying which member of + * the access point had to be added to the list + * @param aRes Resource ID for the 'title text' for this + * member + * @param aCompulsory TInt showing if the member is compulsory or not + */ + void AddOnOffListBoxItemL + ( + CDesCArrayFlat& aItemArray, + TApMember aMember, TInt aRes, + TInt aCompulsory + ); + + + /** + * Updates one 'on/off' listbox item for the given member + * @param aMember A TApMember value specifying which member of the + * access point had to be added to the list + * @param aRes Resource ID for the 'title text' for this member + * @param aPos The current position of the item in the list + * @param aCompulsory a TInt indicating whether + * this member is compulsory or not + */ + void UpdateOnOffListBoxItemL( TApMember aMember, TInt aRes, + TInt aPos, TInt aCompulsory ); + + + /** + * Updates one 'textual' listbox item for the given member + * @param aMember A TApMember value specifying which member of the + * access point had to be added to the list + * @param aRes Resource ID for the 'title text' for this member + * @param aPos The current position of the item in the list + * @param aCompulsory a TInt indicating whether + * this member is compulsory or not + */ + void UpdateTextualListBoxItemL( TApMember aMember, TInt aRes, + TInt aPos, TInt aCompulsory ); + + + /** + * Creates one 'textual' listbox item for the given member + * @param aMember A TApMember value specifying which member of the + * access point had to be added to the list + * @param aRes Resource ID for the 'title text' for this member + * @param aCompulsory a TInt indicating whether + * this member is compulsory or not + * @return A HBufC* pointing to the created listbox item text. + */ + HBufC* CreateTextualListBoxItemL( TApMember aMember, TInt aRes, + TInt aCompulsory ); + + + /** + * Creates one 'on/off' listbox item for the given member + * @param aMember A TApMember value specifying which member of the + * access point had to be added to the list + * @param aRes Resource ID for the 'title text' for this member + * @param aCompulsory a TInt indicating whether + * this member is compulsory or not + * @return A HBufC* pointing to the created listbox item text. + */ + HBufC* CreateOnOffListBoxItemL( TApMember aMember, TInt aRes, + TInt aCompulsory ); + + + /** + * Changes one setting. The setting, which is + * highlighted as current in the listbox is changed. + * @param aQuick a TBool indicating whether a 'quick' change is needed + * or not. Quick changes are not bring up any setting dialog but simply + * change the current value to the next available one. + * This can be used only for 'on/off' type settings + */ + void ChangeSettingsL( TBool aQuick ); + + + /** + * Sets the internal bearer type, list is re-arranged according to the + * newly set bearer type + * @param aBearer The new bearertype + */ + void SetBearerTypeL( TApBearerType aBearer ); + + + /** + * Inverts one boolean member of the access point + * @param aData the member to invert. + * if the member does not exists, + * or not a boolean memeber, code will _ASSERT_DEBUG + */ + void InvertSettingsL( TApMember aData ); + + + /** + * Shows a popup setting page (radio buttons) for the given member + * @param aDataMember The access point member which need to be changed + * @return A boolean indicating whether the current setting + * had been changed or not. + */ + TBool ShowPopupSettingPageL( TApMember aDataMember ); + + + /** + * Shows a popup text setting page for the given member + * @param aDataMember The access point member which need to be changed + * @return A boolean indicating whether the current setting + * had been changed or not. + */ + TBool ShowPopupTextSettingPageL( TApMember aData ); + + + /** + * Gets the text for the passed (text-type) member. + * @param aDataMember The access point member for which to get the text + * @return a HBufC* to the newly allocated text. + * Text is placed onto the CleanupStack. Ownership passed to caller. + */ + HBufC* GetTextLC( TApMember aData ); + + + /** + * Gets the resource ID for the passed (text-type) member + * along with the setting page flags + * @param aDataMember The access point member for which to get + * the resource ID + * @param aTextSettingPageFlags A reference to hold the setting + * page flags for the given member + */ + void GetTextResId( TApMember aData, TInt& apage, + TInt& aTextSettingPageFlags ); + + + /** + * Gets the resource ID for the passed (NOT text-type) member + * @param aDataMember The access point member for which to get + * the resource ID + * @param aattr A reference to hold the resource ID + * for the given member + */ + void GetResId( TApMember aData, TInt& aattr ); + + + /** + * Fills up a pop-up radio button setting page with the currently + * valid and available choices for the given member. + * @param aData The member whose chances are needed + * @param aCurrvalue The current value of the setting + * @return An array of choices for the given member, + * pushed to the CleanupStack. + */ + CDesCArrayFlat* FillPopupSettingPageLC( TApMember aData, + TInt& aCurrvalue ); + + + /** + * Updates the given member's data with the new + * setting from the setting page. + * @param aData the member to update + * @param aCurrvalue The new value + */ + void UpdateFromPopupSettingPageL( TApMember aData, + TInt aCurrvalue ); + + + /** + * Returns whether the access point in question can be saved or not. + * If a compulsory item is missing, user is prompted whether to delete + * it or to go back for re-editing. + * @param aDataNeeded If the AP can not be saved because a compulsory + * item is missing, this holds the TApMember which is not filled. + * It lists always the first item causing the 'failure'. + * @return a TSaveAction indicating whether it can be saved, + * must re-edit or must be deleted. + */ + TSaveAction CanSaveL( TApMember& aDataNeeded ); + + + /** + * Handles IP address editing of the given field + * Brings up the IP address editor page, fills up with the current + * value, handles editing and after editing, it stores the new value + * in the AP item. + * @param aData The (IP-address) member which needs to be changed + */ + void ShowPopupIpAddrSettingPageL( TApMember aData ); + + + /** + * Handles phone number editing of the given field + * Brings up the phone number editor page, fills up with the current + * value, handles editing and after editing, it stores the new value + * in the AP item. + * In case the entered phone number is invalid, an 'invalid number' + * note is shown and original value is kept. + * @param aData The (phone-number) member which needs to be changed + */ + void ShowPopupPhoneNumSettingPageL( TApMember aData ); + + + /** + * Handles password setting + * Brings up the password editor page, handles editing + * and after editing, it stores the new value in the AP item. + * @param a TApMember specifying the member + */ + void ShowPopupPasswordPageL( TApMember aData ); + + + /* + * Reads up a Boolean type data, ensures that it is in the + * required range (0 or 1) + * @param aData The member to get + * @param aInvert Whether the logic is inverted or not + * @param aCurrvalue The current value + */ + void GetBoolDataValue( TApMember aData, TBool aInvert, + TInt& aCurrvalue ); + private: + + /** + * Does the bearer change according to + * the current value of the selection + * @param a TInt specifying the current value + */ + void DoBearerChangeL( TInt aCurrvalue ); + + + /** + * Handles bearer change. + * Sets AP item bearer type, re-reads AP data, re-arranges listbox + * according to the new bearer type + * @param aBearer A TApBearerType specifying the current bearer. + */ + void HandleBearerChangeL( TApBearerType aBearer ); + + + /* + * This part holds functions available only in the case of + * 'multiple bearer support', that means that + * as long as the user does not saves the AP, multiple instances of + * the same AP are kept with different bearers... + */ + + /** + * Returns the array index for a bearer type + * @param aBearer The bearer type to get the index of + * @return The index + */ + TInt32 BearerToArrayIndexL( TApBearerType aBearer ); + + + /** + * Returns the bearer type for an index + * @param aIndex The index to get the bearer type for + * @return The bearer type + */ + TApBearerType ArrayIndexToBearer( TInt32 aIndex ); + + + /** + * Fills the passed array with the possible bearer speed values. + * Array MUST be empty to get correct result as speed values are + * simply APPENDED to the end of the list. + * Adds only valid and available values according to the current + * bearer type and call type. + * @param aItems The array to hold the bearer speed values + * @param aCurrvalue The index of the current speed value + */ + void FillUpBearerSpeedValuesL( CDesCArrayFlat& aItems, + TInt& aCurrvalue ); + + + /** + * Tries to save current access point data. + * Checks if the data can be saved: each compulsory fields are filled, + * Name is valid and does not exist already. + * If data can not be saved, pops up query about delete? Yes/No + * If user choses delete, AP will be deleted. + * If user chooses NO, the 'faulty' item will be highlighted in the + * list and it will return to the setting list, giving a chance to edit + * the faulty/missing data. + * @return Whether the 'Save' procedure had been successfull or not. + * It also means that if the user had choosen 'Delete', after deleting + * the AP it will return 'ETrue' indicating successfull operation. + */ + TBool SaveDataL( ); + + + /** + * Handles list structure changes. + * Refreshes the list of members needed to represent the current AP and + * the current settings. + */ + void HandleListStructureChangeL(); + + + /** + * This function 'limits' the connection speed after a bearertype or + * calltype change so the current bearer speed will be always valid. + */ + void LimitSpeed(); + + + /** + * Selects one item of the listbox. + * @param aItemIndex The index of the item to be select. + */ + void SelectItem( TInt aItemIndex ); + + + + /* + * Converts EParagraphDelimiter-s to /n-s + * Returned text is owned by the caller! + * @param aInText The original text where replacement is needed + * @return A new HBufC (pushed to the CleanupStack) with + * the modified text + */ + HBufC* ConvertDelimToPerNLC( const TDesC& aInText ); + + + /* + * Converts /n-s to EParagraphDelimiter-s + * Returned text is owned by the caller! + * @param aInText The original text where replacement is needed + * @return A new HBufC (pushed to the CleanupStack) with + * the modified text + */ + HBufC* ConvertPerNToDelimLC( const TDesC& aInText ); + + + /** + * Changes one setting. The setting, which is + * highlighted as current in the listbox is changed. + * @param aQuick a TBool indicating whether a 'quick' change is needed + * or not. Quick changes are not bring up any setting dialog but simply + * change the current value to the next available one. + * This can be used only for 'on/off' type settings + */ + void DoChangeSettingsL( TBool aQuick ); + + + /** + * Converts the selected speed index to the current speed value + * based on the bearer type (CSD/HSCSD) and whether it is analogue, + * ISDN v110 or ISDN v120 + * @param aCurrvalue TInt The current selection index + * @return The TApCallSpeed value + */ + TApCallSpeed GetBearerSpeedForSelection( TInt aCurrvalue ); + + + /** + * Calculates the index for the current speed value + * based on the bearer type (CSD/HSCSD) and whether it is analogue, + * ISDN v110 or ISDN v120 + * @return TInt the index of the current speed in the list + */ + TInt GetCurrIndexFromBearerSpeed( ); + + + /** + * Converts whitespace characters to spaces + * Returned text is owned by the caller! + * @param aInText The original text where replacement is needed + * @return A new HBufC (pushed to the CleanupStack) with + * the modified text + */ + HBufC* ReplaceWhiteSpaceCharactersLC( const TDesC& aInText ); + + + void ChangeNetworkGroupL(); + + + /** + * Gets the shareddata value whether HSCSD is enabled or not + * @return A TInt stating if it is enabled (1) or not (0) + */ + TInt IsHSCSDEnabledL(); + + + /** + * Gets the CSD settings array according to the passed variant + * It sets member pointers to Field, Title & Compulsory values + * @param variant Variant + */ + void GetCSDSettingArrays( TInt variant ); + + + /** + * Gets the GPRS settings array according to the passed variant + * It sets member pointers to Field, Title & Compulsory values + * @param aVariant Variant + */ + void GetGPRSSettingArrays( TInt aVariant ); + + + /** + * Gets the WLAN settings array according to the passed variant + * It sets member pointers to Field, Title & Compulsory values + * @param variant Variant + */ + void GetWLANSettingArraysL( TInt variant ); + + + /** + * Asks a query if wcdma speed had been selected. + * only checks if a speed-related member had been changed. + * @param aMember The member which had been changed + * @param aCurrValue The current value of the setting + * @return Whether the query had been accepted or not. + * Default return value is ETrue + */ + TBool AskQueryIfWcdmaL( TApMember aMember, TInt aCurrvalue ); + + + /** + * Displays the domain name servers data query + * @param AIp6 Determines whether ip4 or ip6 query is to be launched. + * Internally takes care about whether IP6 is supported or not. + * If IP4 is selected, it uses IP address editor. + * If IP6 is selected, it uses standard text editor. + * @return The result of the dialog's ExecuteLD + */ + TInt GetNameServersL( TBool aIp6 ); + + + /** + * Adds one 'Menu' listbox item (which will open another setting list) + * for the given member. + * @param aMember A TApMember value specifying which member of the + * access point had to be added to the list + * @param aRes Resource ID for the 'title text' for this member + * @param aCompulsory a TInt indicating whether + * this member is compulsory or not + */ + void AddMenuListBoxItemL( + CDesCArrayFlat& aItemArray, + TApMember aMember, + TInt aRes, + TInt aCompulsory + ); + + + /** + * Returns the current domain name server type + * It can be 3: Dynamic, Well-known, User defined + * Return values are 0, 1, 2, respectively + */ + TInt GetDomainNameServersTypeL(); + + + /** + * Pops up an IPv4 IP address multiline query + * IP address is entered into IPv4 address editors + * @return Returns the returned value of the multiline query + */ + TInt GetIpv4NameServerL(); + + + /** + * Pops up an IPv6 IP address multiline query + * IP address is entered into TEXT editors + * @return Returns the returned value of the multiline query + */ + TInt GetIpv6NameServerL(); + + + /** + * Returns the current domain name server type for IPv6 type + * It can be 3: Dynamic, Well-known, User defined + * Return values are 0, 1, 2, respectively + */ + TInt GetIPv6DNSTypeL(); + + + /** + * Returns the current domain name server type for IPv4 type + * It can be 3: Dynamic, Well-known, User defined + * Return values are 0, 1, 2, respectively + */ + TInt GetIPv4DNSTypeL(); + + + /** + * Strips non-number chars from the passed text + * @return a HBufC8 holding the new text + */ + HBufC* StripNonNumberLC( const TDesC16& aInText ); + + + /** + * Returns the index for the given bearertype in the list of + * currently available bearer types. + * Leaves with KErrNotSupported if the passed bearer type currently + * is not supported + */ + TInt BearerType2BearerItemPosL( TApBearerType aBearer ); + + + /** + * Returns the bearer type for the given position in the list of + * currently available bearer types. + * @param The position in the list + * @return The bearer type of the item bbeing in aPos position + */ + TApBearerType BearerItemPos2BearerTypeL( TInt aPos ); + + + /** + * Changes WLAN network name. + */ + void ChangeWlanNetworkNameL(); + + + /** + * Changes WLAN security settings. + * @return TInt giving exit or shutdown required if any, otherwise, 0 + */ + TInt ChangeWlanSecuritySettingsL(); + + + /** + * Changes WEP security settings. + * Leaves on errors. + * @return TInt giving exit or shutdown required if any, otherwise, 0 + */ + TInt ChangeWepSecuritySettingsL(); + + + /** + * Changes WPA security settings. + * Leaves on errors. + * @return TInt giving exit or shutdown required if any, otherwise, 0 + */ + TInt ChangeWpaSecuritySettingsL(); + + + /** + * Changes 802.1x security settings. + * Leaves on errors. + * @return TInt giving exit or shutdown required if any, otherwise, 0 + */ + TInt Change8021xSecuritySettingsL(); + + + /** + * Returns whether WLAN is supported or not. + * @return a boolean indicating whether WLAN is supported or not. + */ + TBool IsWlanSupported(); + + + /** + * Get the Wlan network name with a popup query + * @return A boolean indicating whether the current setting + * had been changed or not. + */ + TBool QueryWlanNetworkNameL(); + + + /** + * @return Whether the EApIspIPNetMask and EApIspIPGateway fields + * are visible in the settings or not. + */ + TBool IsNetMaskAndGatewayVisibleL(); + + + /** + * Returns the ad-hoc channel number asked from the user + */ + TUint32 GetAdHocChannelL(); + + + /** + * Returns whether the ad-hoc channel ID is visible or not + */ + TBool IsAdhocChannelVisible(); + + + /** + * Returns whether the security settings are filled correctly in case + * of a WLAN access point or not. + */ + TBool HasSecuritySettingsFilledL(); + + + /** + * Limits the security mode when the network mode has changed. + * In case of infrastructure, it should not be called + * In case of Ad-hoc, it should be called and it will limit the + * current security mode into the curren range, which is EOpen and EWep + * + */ + void LimitSecMode(); + + + /** + * Returns whether the access point in question can be saved or not. + * If a compulsory item is missing, user is prompted whether to quit + * without saving it or to go back for re-editing. + * @param aDataNeeded If the AP can not be saved because a compulsory + * item is missing, this holds the TApMember which is not filled. + * It lists always the first item causing the 'failure'. + * @return a TSaveAction indicating whether it can be saved, + * must re-edit or must be quited(deleted). + */ + TSaveAction CanSaveWlanCompulsoriesL( TApMember& aDataNeeded ); + + /** + * Restores Ipv4 settings to iApItem from iBackupApItem. + */ + void RestoreIpv4SettingsL(); + +protected: // Functions from base classes + + + + private: //data + TUint32* iUid; + + TUint32 iLevel; // current level + // when leaving level 0, the two indexes are stored: top & current + // to enable getting back to the same position & state + TInt iOldIndex; // current index + TInt iOldTopIndex; // top index + + TInt iAdvIndex; + + TApBearerType iBearerType; + TInt iIspFilter; + TInt iBearerFilter; + TInt iSortType; + + CEikStatusPane* iStatusPane; // NOT owned + CAknTitlePane* iTitlePane; // NOT owned + CAknNavigationControlContainer* iNaviPane; // NOT owned + CAknNavigationDecorator* iNaviDecorator; // owned + + HBufC* iOldTitleText; + + CApSettingsModel* iDataModel; // NOT owned + + CAknSettingStyleListBox* iList; // owned through resources, + // destroyed automatically + // by the dialog + + CApAccessPointItem* iApItem; // owned + CApAccessPointItem* iOldApItem; // owned + TUint32* iEventStore; + + CArrayPtrFlat* iBearerItemArray; // owned + + TApMember* iField; + TApMember* iFieldAdvanced; + TApMember* iFieldL2; + TInt iFieldCount; + TInt iAdvancedFieldCount; + TInt iFieldCountL2; + TInt* iTitles; + TInt* iTitlesAdvanced; + TInt* iTitlesL2; + TInt* iCompulsory; + TInt* iCompulsoryAdvanced; + TInt* iCompulsoryL2; + TApUiExitReason iExitReason; + + CDesCArrayFlat* iItemArray; // not owned + + CTextOverrides* iTextOverrides;// does not owns it, + // just passed for usage + CApSettingsHandlerImpl* iHandler; + + TInt iReqIpvType; // Default is IPv4 + TBool iL2Ipv4; // Default is NO + TInt iVariant; /// Local variant value + + /** + * CFeatureManagerWrapper wraps FeatureManager to eliminate maintenance + * of existance of FeatureManager. + * Owned. + */ + CFeatureManagerWrapper* iFeatureManagerWrapper; + + +#ifdef __TEST_OOMDEBUG + TBool iMemTestOn; +#endif // __TEST_OOMDEBUG + TInt iSecSettingsExitReason; + TApBearerType iOriginalBearerType; + + CApAccessPointItem* iBackupApItem; // owned + TBool iHelpSupported; + }; + +#endif + +// End of File