/*
* 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 <coecntrl.h>
#include <coeccntx.h>
#include <eiklbo.h>
#include <eikapp.h>
#include <eikdoc.h>
#include <AknDialog.h>
#include <ApSettingsHandlerCommons.h>
#include <ActiveApDb.h>
#include <ApAccessPointItem.h>
#include <ApEngineConsts.h>
// 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<CApAccessPointItem>* 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