diff -r 8e7494275d3a -r 4f0867e42d62 omads/omadsappui/AspSyncUtil/inc/AspProfileWizardDialog.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/omads/omadsappui/AspSyncUtil/inc/AspProfileWizardDialog.h Wed Sep 01 12:30:02 2010 +0100 @@ -0,0 +1,565 @@ +/* +* Copyright (c) 2005 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: Dialog to create to profile using wizard +* +*/ + + +#ifndef ASPPROFILEWIZARDDIALOG_H +#define ASPPROFILEWIZARDDIALOG_H + +// BackGround Context +#include + +// INCLUDES +#include +#include // CAknIntegerSettingPage +#include // CAknAlphaPasswordSettingPage +#include // CAknRadioButtonSettingPage +#include // CAknInfoPopupNoteController + +#include "AspProfileWizard.h" + + +// CONSTANTS + +//const TInt KMsToWaitBeforePopup = 1000; +const TInt KMsToWaitBeforePopup = 3000; +const TInt KMsToWaitBeforeRePopup = 6000; +const TInt KMsTimePopupInView = 60*1000; + +/** +* MAspEditorPageObserver +* +* Observer interface function. +*/ +NONSHARABLE_CLASS (MAspEditorPageObserver) + { + public: + enum TEditorEventType + { + EKeyEvent, + EContentCountEvent + }; + + public: + /** + * Editor page call this when editor is about to close. + * @param aText Editor text. + * @return ETrue if input is ok, EFalse otherwise. + */ + virtual TBool CheckValidity(const TDesC& aText, TInt aSettingType) = 0; + + /** + * Editor page call this to inform observer about editor event. + * @param aEvent. + * @param aValue. + * @return None. + */ + virtual void HandleEditorEvent(TInt aEvent, TInt aValue) = 0; + + /** + * Editor page call this to inform observer about editor event. + * @param aEvent. + * @param aValue. + * @return None. + */ + virtual void GetNavipaneText(TDes& aText, TInt aContentCount) = 0; + }; + + +/** +* TAspSettingPageParam +* +* This class is used as general parameter type. +*/ +NONSHARABLE_CLASS (TAspSettingPageParam) + { + public: + TInt iCommandId; + TBuf iPageText; + MAspEditorPageObserver* iObserver; + TInt iSettingType; + }; + + +/** +* CAspTextSettingPage +* +* Setting page that returns command button id. +*/ +NONSHARABLE_CLASS (CAspTextSettingPage) : public CAknTextSettingPage + { + public: + CAspTextSettingPage(TInt aResourceID, TDes& aText, TInt aTextSettingPageFlags, + TAspSettingPageParam& aParam); + ~CAspTextSettingPage(); + + protected: // From CCoeControl + void ProcessCommandL(TInt aCommandId); + TBool PostDisplayCheckL(); + TBool OkToExitL(TBool aAccept); + TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType); + + private: + void UpdateNaviPaneL(); + + private: + TAspSettingPageParam& iParam; + CAspNaviPaneHandler* iNaviPaneHandler; + }; + + +/** +* CAspRadioButtonSettingPage +* +* Setting page that returns command button id. +*/ +NONSHARABLE_CLASS (CAspRadioButtonSettingPage) : public CAknRadioButtonSettingPage ,public MEikListBoxObserver + { + public: + CAspRadioButtonSettingPage(TInt aResourceID, TInt& aCurrentSelectionIndex, + const MDesCArray* aItemArray, TAspSettingPageParam& aParam); + ~CAspRadioButtonSettingPage(); + + protected: // From CCoeControl + void ProcessCommandL(TInt aCommandId); + TBool PostDisplayCheckL(); + TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType); + //from MEikListBoxObserver for Touch event Handling + void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType); + + private: + void UpdateNaviPaneL(); + + private: + TAspSettingPageParam& iParam; + CAspNaviPaneHandler* iNaviPaneHandler; + const MDesCArray* iItemArray; + }; + + +/** +* CAspCheckBoxSettingPage +* +* Setting page that returns command button id. +*/ +NONSHARABLE_CLASS (CAspCheckBoxSettingPage) : public CAknCheckBoxSettingPage,public MEikListBoxObserver + { + public: + CAspCheckBoxSettingPage(TInt aResourceID, CSelectionItemList* aItemArray, TAspSettingPageParam& aParam); + + ~CAspCheckBoxSettingPage(); + + protected: // From CCoeControl + void ProcessCommandL(TInt aCommandId); + TBool PostDisplayCheckL(); + TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType); + //from MEikListBoxObserver for touch event handling + void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType); + + private: + void UpdateNaviPaneL(); + + private: + TAspSettingPageParam& iParam; + CAspNaviPaneHandler* iNaviPaneHandler; + TInt iSelectionCount; + CSelectionItemList* iSelectionItemList; + }; + + +/** +* CAspAlphaPasswordSettingPage +* +* Setting page that returns command button id. +*/ +NONSHARABLE_CLASS (CAspAlphaPasswordSettingPage) : public CAknAlphaPasswordSettingPage + { + public: + CAspAlphaPasswordSettingPage(TInt aResourceID, TDes& aNewPassword, const TDesC& aOldPassword, TAspSettingPageParam& aParam); + + ~CAspAlphaPasswordSettingPage(); + + protected: // From CCoeControl + void ProcessCommandL(TInt aCommandId); + TBool PostDisplayCheckL(); + TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType); + + private: + void UpdateNaviPaneL(); + + private: + TAspSettingPageParam& iParam; + CAspNaviPaneHandler* iNaviPaneHandler; + + }; + + +// Forward Declaration +class CAknsBasicBackgroundControlContext; + +/** +* CAspProfileWizardDialog +* +* Dialog for editing profile name, data and connection. +*/ +NONSHARABLE_CLASS (CAspProfileWizardDialog) : public CAknDialog, + public MAspActiveCallerObserver, + public MAspEditorPageObserver + { + enum TAspProfileDialogListIndex + { + EIndexProfileName = 0, + EIndexProfileContent = 1, + EIndexProfileConnection = 2 + }; + + public: + /** + * Launches profile dialog for editing profile name, data and connection. + * @param aParam Class that contains dialog parameters. + * @return Completion code. + */ + static TBool ShowDialogL(TAspParam& aParam); + + + public:// Constructors and destructor + + /** + * Two-phased constructor. + */ + static CAspProfileWizardDialog* NewL(TAspParam& aParam); + + /** + * Destructor. + */ + virtual ~CAspProfileWizardDialog(); + + private: + + /** + * C++ default constructor. + */ + CAspProfileWizardDialog(TAspParam& aParam); + + /** + * By default Symbian OS constructor is private. + */ + void ConstructL(); + + + private: + /** + * From the base class. + * Called by framework before exiting the dialog. + * @param Button id. + * @return ETrue to exit\ EFalse to not to exit. + */ + TBool OkToExitL(TInt aButtonId); + + /** + * From the base class. + * Called by framework before the dialog is shown. + * @param None + * @return None + */ + void PreLayoutDynInitL(); + + /** + * From the base class. + * Handles menu events. + * @param aCommandId Command id. + * @return None. + */ + void ProcessCommandL(TInt aCommandId); + + /** + * From the base class. + * Called by framework for key event handling. + * @param aKeyEvent. + * @param TEventCode. + * @return Return code. + */ + TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType); + + /** + * From the base class. + * Called when dialog is activated. + * @return None. + */ + void ActivateL(); + + /** + * Method to get context sensitive help topic. + * @param aContext Help topic to open. + * @return None. + */ + //void GetHelpContext(TCoeHelpContext& aContext) const; + + /** + * From base class. + * Called when UI layout changes. + * @param aType. + * @return None. + */ + void HandleResourceChange(TInt aType); + + + private: // from MAspActiveCallerObserver + + /** + * From MAspActiveCallerObserver + * Called when CAspActiveCaller completes. + * @param aCallId. + * @return None. + */ + void HandleActiveCallL(TInt aCallId); + + + private: // from MAspEditorPageObserver + + /** + * From MAspEditorPageObserver + * Check setting page input. + * @param aText. + * @param aSettingType. + * @return ETrue is input is valid, EFalse othherwise. + */ + TBool CheckValidity(const TDesC& aText, TInt aSettingType); + + /** + * Check setting page input. + * @param aText. + * @param aSettingType. + * @return ETrue is input is valid, EFalse othherwise. + */ + TBool CheckValidityL(const TDesC& aText, TInt aSettingType); + + /** + * Handle editor event. + * @param aEvent. + * @param aValue. + * @return None. + */ + void HandleEditorEvent(TInt aEvent, TInt aValue); + + /** + * Get navipane text. + * @param aText. + * @param aContentCount. + * @return None. + */ + void GetNavipaneText(TDes& aText, TInt aContentCount); + + + private: + /** + * Utility function, updates dialog cba. + * @param aResourceId. + * @return None. + */ + void UpdateCbaL(TInt aResourceId); + + /** + * Utility function, sets text editor text. + * @param aResourceId. + * @return None. + */ + void SetTextEditorTextL(TInt aResource); + + /** + * For setting the background Screen + */ + void SetBackgroundContextL(); + + /** + * Update color and font + */ + void UpdateTextColorL(); + + + private: + + /** + * Edit setting item. + * @param aItem Setting item data. + * @return Return code. + */ + TInt EditSettingItemL(CAspWizardItem* aItem); + + /** + * Edit setting item. + * @param aItem Setting item data. + * @return Return code. + */ + TInt EditSettingItemTextL(CAspWizardItem* aItem); + + /** + * Edit setting item. + * @param aItem Setting item data. + * @return Return code. + */ + TInt EditSettingItemBearerTypeL(CAspWizardItem* aItem); + + /** + * Edit setting item. + * @param aItem Setting item data. + * @return Return code. + */ + TInt EditSettingItemProtocolVersionL(CAspWizardItem* aItem); + + /** + * Edit setting item. + * @param aItem Setting item data. + * @return Return code. + */ + TInt EditSettingItemLocalDatabaseL(CAspWizardItem* aItem); + + /** + * Edit setting item. + * @param aItem Setting item data. + * @return Return code. + */ + TInt EditSettingItemSecretL(CAspWizardItem* aItem); + + /** + * Edit setting item. + * @param aItem Setting item data. + * @return Return code. + */ + TInt EditSettingItemProfileNameL(CAspWizardItem* aItem); + + /** + * Edit setting item. + * @param aItem Setting item data. + * @return Return code. + */ + TInt EditSettingItemHostAddressL(CAspWizardItem* aItem); + + /** + * Edit setting item. + * @param aItem Setting item data. + * @return Return code. + */ + TInt EditSettingItemContentSelectionL(CAspWizardItem* aItem); + + /** + * Edit setting item. + * @param aItem Setting item data. + * @return Return code. + */ + TInt ShowTextEditorL(TInt aResourceId, TDes& aText, const TDesC& aTitle, + TBool aMandatory, TBool aLatinInput, TInt aMaxLength, TInt aSettingType); + + private: + + /** + * Get navi pane text. + * @param aText. + * @param aCurrent. + * @param aFinal. + * @return Return code. + */ + void GetNaviPaneText(TDes& aText, TInt aCurrent, TInt aFinal); + + /** + * Get navi pane text. + * @param aText. + * @param aItem. + * @return Return code. + */ + void GetNaviPaneText(TDes& aText, CAspWizardItem* aItem); + + /** + * Set default setting values. + * @param None. + * @return None. + */ + void SetDefaultValuesL(); + + + /** + * Show one proifle wizard editor. + * @param None. + * @return Return code. + */ + void RunWizardL(); + + /** + * Show one proifle wizard editor. + * @param None. + * @return Return code. + */ + TInt RunWizard(); + + void ShowPopupNoteL(TInt aResource, TInt aDelay); + void HidePopupNote(); + void ShowErrorNoteL(TInt aError); + + + private: + // text editor + CEikRichTextEditor* iTextEditor; + + // text editor text + HBufC* iTextEditorText; + + // handles profile setting data and profile creation + CAspProfileWizard* iWizard; + + // dialog parameter for returning value to caller + TAspParam* iDialogParam; + + // id of the calling application + TInt iApplicationId; + + // sync session + RSyncMLSession* iSyncSession; + + // long buffer for string handling + TBuf iBuf; + + // for title and icon handling + CStatusPaneHandler* iStatusPaneHandler; + + // for making function call via active scheduler + CAspActiveCaller* iActiveCaller; + + // for bearer type list construction + CAspBearerHandler* iBearerHandler; + + // format string from resource file + TBuf iNaviPaneTextFormat; + + // popup note + CAknInfoPopupNoteController* iPopupNote; + + // needed for unique server id check + CAspProfileList* iProfileList; + + // Background context + CAknsBasicBackgroundControlContext* iBgContext; + + // Flag for checking whether moving in Backward direction or not + TBool iMoveBack; + }; + + + + + +#endif // ASPPROFILEWIZARDDIALOG_h + +// End of File