wvuing/IMPSConnectionUI/UISrc/ccnouiusernameandpwdquery.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/IMPSConnectionUI/UISrc/ccnouiusernameandpwdquery.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,253 @@
+/*
+* Copyright (c) 2008 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:  Username and password multiline dataquery.
+*
+*/
+
+#ifndef CCNOUIUSERNAMEANDPWDQUERY_H
+#define CCNOUIUSERNAMEANDPWDQUERY_H
+
+
+//  INCLUDES
+#include <aknquerydialog.h>
+#include "MCnUiUiFacade.h"
+
+
+// Class declarations
+class CBrowserLauncher;
+class MIMPSSharedData;
+
+/**
+ * Username and password multi line data query.
+ *
+ * Username and password multi line data query.
+ * Focuses right query line depending from original
+ * username and password and also the query mode.
+ *
+ * @lib IMPSConnectionUi.lib
+ * @since 2.1
+ */
+NONSHARABLE_CLASS( CCnOUiUsernameAndPwdQuery ) : public CAknMultiLineDataQueryDialog
+    {
+private: // Enumerations
+
+    /**
+     * Enumerations for initial line focus.
+     */
+    enum TInitialFocus
+        {
+        EFirstLine,
+        ESecondLine
+        };
+
+
+public: //Symbian OS  constructor
+
+    /**
+     * Creates username and password multi line data query.
+     * Handles line focus as desired.
+     *
+     * @since 2.1
+     * @param aUserName The username to edit.
+     * @param aPwd The password to edit.
+     * @param aMode How to determine initially focused line etc behaviour.
+     * @param aDomainSelectionQueryVariation Is domain selection query variation on or off.
+     * @param aUiFacade Ui facade to use to show error notes.
+     */
+    static CCnOUiUsernameAndPwdQuery* NewL( TDes& aUserName,
+                                            TDes& aPwd,
+                                            TCnUiLoginDataQueryMode aMode,
+                                            TBool aDomainSelectionQueryVariation,
+                                            MCnUiUiFacade& aUiFacade );
+
+
+protected:  // Constructors and destructor
+
+    /**
+     * C++ default constructor.
+     */
+    CCnOUiUsernameAndPwdQuery( TInitialFocus aInitialFocus,
+                               MCnUiUiFacade& aUiFacade,
+                               TBool aDomainSelectionQueryVariation,
+                               TBool aCursorToBeginning = EFalse );
+
+    /**
+     * ConstructL
+     */
+    void ConstructL();
+
+    /**
+     * Destructor.
+     */
+    virtual ~CCnOUiUsernameAndPwdQuery();
+
+
+protected:  // Functions from CEikDialog
+
+    /**
+     * From CEikdialog.
+     * This is called during initialisation and it sets initially
+     * focused line by calling DoSetInitialCurrentLineL().
+     * @see DoSetInitialCurrentLineL
+     *
+     * @since 2.1
+     */
+    void SetInitialCurrentLine();
+
+    /**
+     * From CEikdialog.
+     *
+     * This function is called by the EIKON framework
+     * if the user activates a button in the button panel.
+     * It is not called if the Cancel button is activated,
+     * unless the EEikDialogFlagNotifyEsc flag is set.
+     * @param aButtonId The ID of the button that was activated
+     * @return Should return ETrue if the dialog should exit,
+     * and EFalse if it should not.
+     */
+    TBool OkToExitL( TInt aButtonId );
+
+    /**
+     * From CAknQueryDialog.
+     * If the query text is ok (retrieved form query control) then display the
+     * left soft key, otherwise hide it.
+     */
+    void UpdateLeftSoftKeyL();
+
+    /**
+     * From CAknDialog.
+     * Processes commands for menu options
+     */
+    void ProcessCommandL( TInt aCommandId );
+
+    /**
+     * From CAknDialog.
+     * Called after the user presses Options and Before the menu is actually displayed
+     */
+    void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
+
+    /**
+     * From CEikdialog.
+     * @param aControlId the control which is to be focused.
+     * @since 3.0
+     */
+    void TryChangeFocusToL( TInt aControlId );
+
+    /**
+     * From CEikdialog.
+     * @param aType type of the event
+     * @since 3.0
+     */
+    void HandleResourceChange( TInt aType );
+
+    /**
+     * From CAknMultiLineDataQueryDialog.
+     * Called by OfferkeyEventL(), gives a change to dismiss the query even with
+     * keys different than Enter of Ok.
+     * @since S60 v3.1
+     * @param aKeyEvent  Key event which will be checked.
+     * @return           Should the query be dismissed.
+     */
+    TBool NeedToDismissQueryL( const TKeyEvent& aKeyEvent );
+
+private:  // New functions
+
+    /**
+     * Detects which line focus initially.
+     * This utility fuction is used by NewL()
+     * @see DoSetInitialCurrentLineL
+     *
+     * @since 2.1
+     * @param aFirstLine The first editor text.
+     * @param aSecondLine The second editor text.
+     * @return Enumeration of the line to initially to focus.
+     */
+    static TInitialFocus DetectLineToFocus( const TDesC& aFirstLine,
+                                            const TDesC& aSecondLine );
+
+    /**
+     * Does the actual initial focusing.
+     * Focusing is determined from iInitialFocus member.
+     *
+     * @since 2.1
+     */
+    void DoSetInitialCurrentLineL();
+
+    /**
+    * Reads integer resource value from resources
+    * @param aResourceId resource id which is read
+    * @return value of wanted integer resource flag
+    */
+    TInt IntResourceValueL( TInt aResourceId );
+
+    /**
+     * Opens correct resource file.
+     * !!! Two items left to cleanup stack. !!!
+     * @param aResourceFile Contains opened file on return
+     * @since 3.1
+     */
+    void OpenResourceFileLC( RResourceFile& aResourceFile );
+
+    /**
+     * Checks if the data entered by user is sufficient to login
+     * @ return Is it ok to Sign on i.e. user has entered the credentials
+     */
+    TBool CanSignOnL();
+
+    /**
+     * Opens a web browser
+     * @param a URL to be opened.
+     */
+    void OpenWebBrowserL( const TDesC& aUrl );
+
+    /**
+     * Shows terms and conditions query dialog
+     * @return User agrees or refuses Terms and conditions
+     */
+    TInt ShowTAndCDlgL();
+
+private:  // data
+
+    ///< The initial focus, owned.
+    TInitialFocus iInitialFocus;
+
+    ///< Defines that the cursor is in the beginning of the
+    ///< initially focused field. Owned.
+    TBool iCursorToBeginning;
+
+    ///< UI facade, not owned
+    MCnUiUiFacade& iUiFacade;
+
+    // Is Domain selection query variation on or off.
+    TBool iDomainSelectionQueryVariation;
+
+    // Should dialog be exited, used in OkToExitL
+    TBool iForcedExit;
+
+    // Browser launcher
+    CBrowserLauncher* iBrLauncher;
+
+
+    // file handle used by resource file reading routine
+    RFs   iRFs;
+
+    //owns
+    MIMPSSharedData*	iSharedData;
+    };
+
+#endif      // CCNOUIUSERNAMEANDPWDQUERY_H
+
+
+//  End of File
+