diff -r 6ca72c0fe49a -r a941bc465d9f wvuing/IMPSServiceSettingsUI/Src/CWVSettingsUIServerListDialog.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wvuing/IMPSServiceSettingsUI/Src/CWVSettingsUIServerListDialog.h Wed Sep 01 12:31:13 2010 +0100 @@ -0,0 +1,306 @@ +/* +* Copyright (c) 2003 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: Serverlist dialog +* +*/ + + + +#ifndef CWVSETTINGSUISERVERLISTDIALOG_H +#define CWVSETTINGSUISERVERLISTDIALOG_H + +// INCLUDES +#include "CWVSettingsUIDefineNewServerDialog.h" +#include "CWVSettingsUIDialogImp.h" + +#include +#include + +// FORWARD DECLARATIONS +class CIMPSSAPSettingsStore; +class CWVSettingsUIServersArray; +class CAknSingleStyleListBox; +class MWVSettingsObserver; +class CWVSettingsUIDialogTitlePaneHandler; +class CIMPSPresenceConnectionUi; +class CIMPSSAPSettingsList; + +// CLASS DECLARATION + +/** +* Server list dialog +* +* @lib WVServiceSettingsUi.dll +* @since 2.1 +*/ +NONSHARABLE_CLASS( CWVSettingsUIServerListDialog ) : public CAknDialog, + public MEikListBoxObserver, + public MIMPSSAPObserver + { +public: // Constructors and destructor + + /** + * C++ default constructor. + * @param aSAPSettingsStore Pointer to SAP settings store + * @param aCaller Pointer to the dialog observer + * @param aTitlePaneHandler Pointer to status-pane handler + * @param aDialog Pointer to the service settings ui dialog + * @param aConnectionUi pointer to connection ui + */ + CWVSettingsUIServerListDialog( CIMPSSAPSettingsStore& aSAPSettingsStore, + MWVSettingsObserver& aCaller, + CWVSettingsUIDialogTitlePaneHandler& aTitlePaneHandler, + CWVSettingsUIDialogImp& aDialog, + CIMPSPresenceConnectionUi* aConnectionUi ); + + /** + * Destructor. + */ + virtual ~CWVSettingsUIServerListDialog(); + +public: // New functions + + /** + * Refreshes title + * @since 2.1 + */ + void RefreshTitleL(); + + /** + * Help key support - GetHelpContext is called by the framework on + * event EAknCmdHelp + * -------------------------------------------------------------------------------- + * CWVSettingsUIDefineNewServerDialog::GetHelpContext + * @param aContext The context dependent on the current view is passed by the framework. + */ + void GetHelpContext( TCoeHelpContext& aContext ) const; + +private: //New functions + + /** + * Displays server editor + * @since 2.1 + * @param aEditMode Edit mode + */ + TWVSettingsDialogReturnValue DisplayServerEditorDialogL( + CWVSettingsUIDefineNewServerDialog::TEditMode aEditMode ); + + /** + * Asks needed confirmations and deletes selected server + * @since 2.1 + */ + void DeleteSelectedServerL(); + + /** + * Asks for confirmation about logout and performs it if accepted + * @since 2.1 + * @return ETrue if logged out, EFalse if we stayed logged in + */ + TBool ConfirmLogoutL(); + + /** + * Executes confirmation dialog + * @since 2.1 + * @param aPrompt Text in dialog + * @return Dialog return value + */ + TInt ExecuteConfirmationDialogL( const TDesC& aPrompt ); + + /** + * Return SAP settings of given index + * Ownership is transferred to caller + * @since 2.1 + * @param aIndex Index of the server in array + * @return SAP settings, NOTE can return NULL! + */ + CIMPSSAPSettings* GetSAPL( TInt aIndex ); + + /** + * Refreshes internal model + * @since 2.1 + */ + void UpdateModelL(); + + /** + * Loads protected server icon bitmap. + * @since 2.1 + */ + void LoadListboxIconArrayL(); + + /** + * Launches help + * @param aContext, the help context to be shown + * @since 2.1 + */ + void LaunchHelpL( const TDesC& aContext ); + + /** + * Show brand protection note + * @since 2.1 + */ + void ShowBrandProtectionNoteL(); + + /** + * Stores the given command and launches correct dialog + * asynchronously + * @param aCommand command to execute + */ + void LaunchCorrectDialog( TInt aCommand ); + + /** + * Static TCallBack method to handle async dialog launching + * This will call DoLaunchCorrectDialogL. + * @see TCallBack + */ + static TInt LaunchDlgCallback( TAny* aDlg ); + + /** + * This method will launch the correct dialog + * determined by iDlgCommand. + * Do not call this directly. Use LaunchCorrectDialog; + */ + void DoLaunchCorrectDialogL(); + + /** + * + * set the iIsOpenedTargettDlg value. + * aFlag is ETrue while try to open target dialog, or is EFalse after target was closed. + */ + void SetTargetDlgFlag( TBool aFlag ); + + /** + * + * get the flag value. + */ + TBool GetTargetDlgFlag(); + +private: //From MEikCommandObserver + + /** + * From MEikCommandObserver Command handler + * @param aCommand Command that was initiated + */ + void ProcessCommandL( TInt aCommand ); + +private: // Functions from MEikListBoxObserver + + /** + * From MEikListBoxObserver Callback for listbox events + * @param aListBox Originating listbox + * @param aEventType Event type + */ + void HandleListBoxEventL( CEikListBox* aListBox, TListBoxEvent aEventType ); + +private: + /** + * From CCoeControl. Handles the keyevents + * @param aKeyEvent The key event. + * @param aType The type of key event: EEventKey, EEventKeyUp or EEventKeyDown. + * @return Indicates whether or not the key event was used by this control + */ + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ); + + /** + * From Uikon framework. Dynamically initialises a menu pane. + * @param aResourceId Resource ID identifying the menu pane to initialise + * @param aMenuPane The in-memory representation of the menu pane + */ + void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); + +private: // From MIMPSSAPObserver + + /** + * From MIMPSSAPObserver + * @see MIMPSSAPObserver for more information + */ + void HandleSAPEvent( TSAPEvent aEvent ); + +private: + + /** + * The function to fetch the setting value given the ID, which could be in CENREP or Variation file + */ + TInt IntResourceValueL( TInt aResourceId ); + +protected: // Functions from CEikDialog + + /** + * From CEikDialog @see CEikDialog for more information + */ + void PreLayoutDynInitL(); + + /** + * From CEikDialog @see CEikDialog for more information + */ + TInt MappedCommandId( TInt aButtonId ); + + /** + * @see CEikDialog + */ + TBool OkToExitL( TInt aButtonId ); + +private: // Data + + // Doesn'w own. sap settings storage + CIMPSSAPSettingsStore* iSAPSettingsStore; + // Doesn't own. Listbox owns this data + CWVSettingsUIServersArray* iServerListAdapter; + // Doesn't own. This is responsibility of dialog + CAknSingleStyleListBox* iListBox; + // Doesn't own the user of the dialog + MWVSettingsObserver* iObserver; + + // Owns. Title pane text + HBufC* iTitle; + + // array of protected servers + RArray iProtectedServers; + // Doesn't own. Title pane handler. Changes the title pane text + CWVSettingsUIDialogTitlePaneHandler* iTitlePaneHandler; + + // Doesn't own, the "base"-dialog (imp) + CWVSettingsUIDialogImp* iDialog; + + // Doesn't own: Pointer to a presence connection UI + CIMPSPresenceConnectionUi* iConnectionUI; + + // Owns: sap settings + CIMPSSAPSettings* iSAP; + + // Tells if the editor dialog is active + TBool iEditorActive; + + // the uid of the selected server + TUint32 iCurrent; + + // Tells if a SAP has possibly been added to the list + TBool iAdded; + + // the uid of the added server + TUint32 iNewUid; + + // Async command to execute + TInt iDlgCommand; + + // Async dialog launcher + CAsyncCallBack* iDlgLauncher; + + + // to avoid twice calling LaunchCorrectDialog() + TBool iIsOpenedTargettDlg; + }; + +#endif // CWVSETTINGSUISERVERLISTDIALOG_H + +// End of File