diff -r 000000000000 -r 094583676ce7 wvuing/IMPSConnectionUI/UISrc/CCnUiUiFacade.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wvuing/IMPSConnectionUI/UISrc/CCnUiUiFacade.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,404 @@ +/* +* Copyright (c) 2004 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: UI facade. +* +*/ + +#ifndef __CCNUIFACADE_H +#define __CCNUIFACADE_H + +// INCLUDES +#include +#include "mimpsconnprocessobserverng.h" +#include "MCnUiUiFacade.h" +#include "CCnUiSignInControl.h" + + +// FORWARD DECLARATIONS +class CCoeEnv; +class MCnUiWaitNoteObserver; +class CCommandAbsorbingControl; +class CAknIconArray; +class CIMPSSAPSettings; +class MIMPSSharedData; +class CBrowserLauncher; + +/** + * Internal note type enumeration. + * @since 2.1 + */ +enum TCnUiConnUiNoteType + { + EInfoNote = 0, + EConfirmationNote, + EErrorNote, + EConfirmedErrorNote, + EConfirmedErrorNoteMSKSelectIcon + }; + + + +// CLASS DECLARATION +/** + * UI facade implementation for + * Connection UI + * + * @since 2.1 + */ +NONSHARABLE_CLASS( CCnUiUiFacade ) : public CBase, + public MCnUiUiFacade, + public MIMPSConnProcessUi + { +public: // Two-phased constructors and destructor + + /** + * Two-phased constructor. + */ + static CCnUiUiFacade* NewL(); + + + /** + * Destructor. + */ + virtual ~CCnUiUiFacade(); + +private: + + /** + * C++ constructor. + */ + CCnUiUiFacade(); + + + /** + * Symbian OS constructor. + */ + void ConstructL(); + + +public: // Functions from MCnUiUiFacade + + + /** + * @see MCnUiUiFacade + * @since 2.1 + */ + MIMPSConnProcessUi& ConnProcessUi(); + + + /** + * @see MCnUiUiFacade + * @since 2.1 + */ + void CommandAbsorbOnLC(); + + + /** + * @see MCnUiUiFacade + * @since 2.1 + */ + void FlushCommandBuffer(); + + + /** + * @see MCnUiUiFacade + * @since 2.1 + */ + MCnUiConnWaitNote* WaitNoteL( TCnUiConnectionWaitNotes aNoteId, + MCnUiWaitNoteObserver* aObserver = NULL ); + + /** + * @see MCnUiUiFacade + * @since 2.1 + */ + MCnUiConnWaitNote* WaitNoteL( TCnUiConnectionWaitNotesDynText aNoteId, + const TDesC& aInsertText, + MCnUiWaitNoteObserver* aObserver = NULL ); + + + /** + * @see MCnUiUiFacade + * @since 2.1 + */ + MCnUiConnQuery* QueryL( TCnUiConnAsyncQuery aQueryId, + MCnUiConnQueryObserver& aObserver ); + + + /** + * @see MCnUiUiFacade + * @since 2.1 + */ + MCnUiConnQuery* QueryL( TCnUiConnAsyncQueryDynText aQueryId, + const TDesC& aInsertText, + MCnUiConnQueryObserver& aObserver ); + + /** + * @see MCnUiUiFacade + * @since 2.1 + */ + void ShowNoteL( TCnUiConnectionNotes aNoteId ); + + + /** + * @see MCnUiUiFacade + * @since 2.1 + */ + void ShowNoteL( TCnUiConnectionNotesDynText aNoteId, + const TDesC& aInsertText ); + + /** + * @see MCnUiUiFacade + * @since 2.1 + */ + void ShowLoginErrorNoteL( TInt aErrorCode ); + + /** + * @see MCnUiUiFacade + * @since 2.1 + */ + void ShowLogoutErrorNoteL( TInt aErrorCode ); + + + /** + * @see MCnUiUiFacade + * @since 2.1 + */ + TBool ConfirmationQueryL( TCnUiConnectionQueries aQueryId ); + + + /** + * @see MCnUiUiFacade + * @since 2.1 + */ + TBool ConfirmationQueryL( TCnUiConnectionQueriesDynText aQueryId, + const TDesC& aInsertText ); + + /** + * @see MCnUiUiFacade + * @since 2.1 + */ + TBool LoginQueryL( TDes& aUsername, + TDes& aPassword, + CIMPSSAPSettings& aSap, + TCnUiLoginDataQueryMode aMode ); + + + /** + * @see MCnUiUiFacade + * @since 2.1 + */ + TBool ServerToUseQueryL( MDesCArray& aServers, + TInt aIndexToHighlight, + TInt& aSelectedIndex ); + /** + * @see MCnUiUiFacade + * @since 2.1 + */ + void HandleIfError( TInt aErr ); + + /** + * @see MCnUiUiFacade + * @since 2.6 + */ + void SwitchResourceFileL( const TDesC& aNewResourceFile ); + + /** + * @see MCnUiUiFacade + * @since 3.1u + */ + TInt DisplayDomainSelectionQueryL( TDes& aSelectedDomain, + CIMPSSAPSettings* aSap = NULL ); + + /** + * @see MCnUiUiFacade + * @since 3.1u + */ + TBool DisplayTermsOfUseAndQueryL(); + +public: //from MIMPSConnProcessUi + + /** + * Sets the new resource file to use in Connection UI. + * + * @see MIMPSConnProcessUi + * @since 2.1 + */ + void UseResourceFileL( const TDesC& aNewResourceFile ); + + + /** + * Gets Connection UI's default resource file name. + * + * @see MIMPSConnProcessUi + * @since 2.1 + */ + void ResourceFileNameL( TDes& aResourceFileName ); + + +private: //New helpers + + + /** + * Removes the possibly added resource file + * from resource file stack, + * @since 2.1 + */ + void RemoveUsedResourceFile(); + + + /** + * Retrieves a system error text for given + * error code and returns it as a HBufC. + * Ownership of HBufC is returned to caller. + * + * If any matching system error text isn't + * found for error number, returns a NULL. + * + * Performs internally certain filtering and + * mapping operations for basic KErr* error + * codes. + * + * @since 2.1 + * @param aErrorCode for which to get the error + * text. + * @return HbufC buffer containing the proper error + * text or NULL pointer if matching text wasn't found. + */ + HBufC* SystemErrorTextOrNullForCodeL( TInt aErrorCode ); + + + /** + * Shows a desired type note with desired text + * loaded from given resource id. + * + * @since 2.1 + * @param aNoteTextResourceId Resource of the note text to show. + * @param aNoteType Type of shown note. + */ + void DoShowNoteL( TInt aNoteTextResourceId, TCnUiConnUiNoteType aNoteType ); + + + /** + * Shows a desired type note with given text. + * + * @since 2.1 + * @param aNotePrompt The prompt text to show in note. + * @param aNoteType Type of shown note. + */ + void DoShowNoteL( const TDesC& aNotePrompt, TCnUiConnUiNoteType aNoteType ); + + + /** + * Shows a confirmation query with given text. + * + * @since 2.1 + * @param aPromptText The prompt text to show in query. + * @return ETrue if user accepted the query, else EFalse. + */ + TBool DoShowConfirmationQueryL( const TDesC& aPromptText ); + + /** + * Constructs complete path from parts and checks for correctness. + * @param aResult, the complete path. + * @param aModuleId, dll's (or app) id. For example "IM". + * @param aAlternative, id for alternative (for example operator "Oper1" ) files. + * @param aFileName, filename of the complete path + * @return ETrue if path was found from C or MMC card, otherwise false + * @since 2.1 + */ + TBool ConstructCompletePathAndCheck( TDes& aResult, + const TDesC& aModuleId, + const TDesC& aAlternative, + const TDesC& aFileName ); + + /** + * Returns MMC drive. + * @param aDrive, the result. + */ + void MMCDrive( TDes& aDrive ) const; + + /** + * Loads the branded server icons to iIconArray + * @param aServers List of the server names + */ + void LoadServerIconsL( MDesCArray& aServers ); + + + /** + * Opens correct resource file. + * !!! Two items left to cleanup stack. !!! + * @param aResourceFile Contains opened file on return + * @since 3.2 + */ + void OpenResourceFileLC( RResourceFile& aResourceFile ); + + /** + * Reads integer resource value from resources + * @param aResourceId resource id which is read + * @return value of wanted integer resource flag + */ + TInt IntResourceValueL( TInt aResourceId ); + + /** + * Shows WAP registration query + * @return command id for user action + */ + TInt ShowWAPQueryL(); + + /** + * Shows Terms and Conditions query + * @return command id for user action + */ + TInt ShowTAndCDlgL(); + + /** + * Opens native browser with the specified URL + * @param a Url + */ + void OpenWebBrowserL( const TDesC& aUrl ); + + TInt GetIntResourceValueL( TInt aResourceId ); + +private: // data + ///