--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wlansecuritysettings/wpasecuritysettingsui/inc/WPASecuritySettingsDlg.h Thu Dec 17 08:47:43 2009 +0200
@@ -0,0 +1,304 @@
+/*
+* Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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.
+*
+*/
+
+
+#ifndef WPA_SECURITY_SETTINGS_DLG_H
+#define WPA_SECURITY_SETTINGS_DLG_H
+
+
+// ENUMERATIONS
+
+// Members to be showed in the setting pages
+enum TWpaMember
+ {
+ EWpaMode, // WPA mode
+ EWpaEapConfig, // EAP Plugin configuration
+ EWpaWpa2Only, // Wpa2 only mode
+ EWpaPreSharedKey // Pre-shared key
+ };
+
+
+// INCLUDES
+#include <AknDialog.h>
+#include <eiklbo.h>
+#include <aknlists.h>
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <commsdat.h>
+#else
+#include <commsdat.h>
+#include <commsdat_partner.h>
+#endif
+#include "WPASecuritySettingsImpl.h"
+
+// FORWARD DECLARATIONS
+class CAknTitlePane;
+class CWPASecuritySettingsImpl;
+class CEAPPluginConfigurationIf;
+
+
+// CLASS DECLARATION
+/**
+* CWPASecuritySettingsDlg dialog class
+*/
+NONSHARABLE_CLASS( CWPASecuritySettingsDlg ) : public CAknDialog,
+ public MEikListBoxObserver
+ {
+
+ public: // Constructors and destructor
+
+ /**
+ * Create and launch dialog.
+ * @param aSecuritySettings Security settings
+ * @param aTitle Title of the dialog
+ * @return The ID of the button that closed the dialog
+ */
+ TInt ConstructAndRunLD( CWPASecuritySettingsImpl* aSecuritySettings,
+ const TDesC& aTitle );
+
+
+ /**
+ * Two-phase construction.
+ * @param aEventStore A reference to hold the events happened
+ * @param aIapId Id of the IAP.
+ * @param aPlugin The EAP Configuration plugin.
+ * @return The constructed CWPASecuritySettingsDlg object.
+ */
+ static CWPASecuritySettingsDlg* NewL( TInt& aEventStore,
+ const TUint32 aIapId,
+ CEAPPluginConfigurationIf* aPlugin );
+
+ /**
+ * Destructor.
+ */
+ ~CWPASecuritySettingsDlg();
+
+
+ protected:
+ /**
+ * Constructor.
+ * @param aEventStore A reference to hold the events happened
+ * @param aIapId Id of the IAP.
+ * @param aPlugin The EAP Configuration plugin.
+ */
+ CWPASecuritySettingsDlg( TInt& aEventStore, const TUint32 aIapId,
+ CEAPPluginConfigurationIf* aPlugin );
+
+
+ public: // Functions from base classes
+ /**
+ * Handle key events.
+ * @param aKeyEvent: key event
+ * @param aType: type of event
+ * @return The key response, if it was consumed or not.
+ */
+ TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
+ TEventCode aType );
+
+ private: // Functions from base classes
+
+ /**
+ * This function is called by the dialog framework before the dialog is
+ * sized and laid out.
+ */
+ virtual void PreLayoutDynInitL();
+
+
+ /**
+ * Handles a dialog button press for the specified button
+ * @param aButtonId The ID of the button that was activated.
+ * @return ETrue to validate and exit the dialog,
+ * EFalse to keep the dialog active
+ */
+ TBool OkToExitL( TInt aButtonId );
+
+
+ /**
+ * Processes user commands.
+ * @param aCommandId ID of the command to respond to.
+ */
+ virtual void ProcessCommandL( TInt aCommandId );
+
+
+ /**
+ * Handles list box events.
+ * @param aListBox The originating list box.
+ * @param aEventType A code for the event.
+ */
+ void HandleListBoxEventL( CEikListBox* aListBox,
+ TListBoxEvent aEventType );
+
+ /**
+ * Get help context.
+ * @param aContext Help context is returned here.
+ */
+ void GetHelpContext( TCoeHelpContext& aContext ) const;
+
+ /**
+ * Initialize menu pane.
+ * @param aResourceId Menu pane resource id.
+ * @param CEikMenuPane Menu pane.
+ */
+ void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
+
+
+ protected: // New functions
+
+ /**
+ * Handles listbox data change
+ */
+ void HandleListboxDataChangeL();
+
+
+ /**
+ * Fills up the listbox with data
+ * @param aItemArray Array where to add the elements
+ * @param arr Array to be used as list elements
+ * @param aRes Array of resource IDs to be used for the
+ * elements of arr
+ */
+ void FillListWithDataL( CDesCArrayFlat& aItemArray,
+ const TWpaMember& arr, const TInt* aRes );
+
+
+ /**
+ * Updates one 'textual' listbox item for the given member
+ * @param aMember Value specifying which member has 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
+ */
+ void UpdateTextualListBoxItemL( TWpaMember aMember, TInt aRes,
+ TInt aPos );
+
+
+ /**
+ * Creates one 'textual' listbox item for the given member
+ * @param aMember Value specifying which member has to be added to
+ * the list
+ * @param aRes Resource ID for the 'title text' for this member
+ * @return The created listbox item text.
+ */
+ HBufC* CreateTextualListBoxItemL( TWpaMember aMember, TInt aRes );
+
+
+ /**
+ * Changes one setting. The setting, which is
+ * highlighted as current in the listbox is changed.
+ * @param aQuick ETrue if the setting is "two-choices", and can be
+ * automatically changed, without showing the list of
+ * elements
+ */
+ void ChangeSettingsL( TBool aQuick );
+
+
+ /**
+ * Shows a popup setting page (radio buttons) for the given member
+ * @param aDataMember The member which needs to be changed
+ * @return A boolean indicating whether the current setting
+ * has been changed or not.
+ */
+ TBool ShowPopupSettingPageL( TWpaMember aDataMember );
+
+
+ /**
+ * Shows a popup text setting page for the given member
+ * @return A boolean indicating whether the current setting
+ * has been changed or not.
+ */
+ TBool ShowPopupTextSettingPageL();
+
+
+ /**
+ * 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 new setting is needed
+ * @param aCurrvalue The current value of the setting
+ * @return An array of choices for the given member, pushed to the
+ * CleanupStack.
+ */
+ CDesCArrayFlat* FillPopupSettingPageLC( TWpaMember 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
+ * @return A boolean indicating if the value is actually changed
+ */
+ TBool UpdateFromPopupSettingPage( TWpaMember aData, TBool aCurrvalue );
+
+
+ /**
+ * Cleanup for the iEapConfigActive semaphore flag
+ * @since S60 5.0
+ * @param aPtr Pointer to this class
+ */
+ static void ResetEapConfigFlag( TAny* aPtr );
+
+ /**
+ * @see CEikDialog
+ */
+ void HandleDialogPageEventL( TInt aEventID );
+
+ private: //data
+
+ // Stores the name of the connection, to be showed as the title.
+ TBuf<CommsDat::KMaxTextLength> iConnectionName;
+
+ // Title pane. Not owned.
+ CAknTitlePane* iTitlePane;
+
+ // Pointer to the old title. Owned.
+ HBufC* iOldTitleText;
+
+ // Owned through resources, destroyed automatically by the dialog.
+ CAknSettingStyleListBox* iList;
+
+ // Array of the items. Not owned.
+ CDesCArrayFlat* iItemArray;
+
+ // Fields of the main view. Not owned.
+ TWpaMember* iFieldsMain;
+
+ // Titles of the main view. Not owned.
+ TInt* iTitlesMain;
+
+ // Pointer to the WPA Security Settings. Not owned.
+ CWPASecuritySettingsImpl* iSecuritySettings;
+
+ // To hold the events. Not owned.
+ TInt* iEventStore;
+
+ // The Id of the AP.
+ TUint32 iIapId;
+
+ // The EAP Configuration plugin. Not owned.
+ CEAPPluginConfigurationIf* iPlugin;
+
+ // Indicates whether the EAP plugin configuration is active
+ TBool iEapConfigActive;
+
+ TBuf8<KWLANEAPLISTLENGTH> iEnabledPluginList;
+ TBuf8<KWLANEAPLISTLENGTH> iDisabledPluginList;
+ };
+
+
+#endif // WPA_SECURITY_SETTINGS_DLG_H
+
+// End of File