diff -r d189ee25cf9d -r 3533d4323edc ipsservices/ipssossettings/inc/ipssetuidialog.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ipsservices/ipssossettings/inc/ipssetuidialog.h Wed Sep 01 12:28:57 2010 +0100 @@ -0,0 +1,461 @@ +/* +* Copyright (c) 2007 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: File for dialog control. +* +*/ + + + +#ifndef IPSSETUIDIALOG_H +#define IPSSETUIDIALOG_H + + +#include // TImIAPChoice +#include // MMsvSessionObserver + +#include "ipssetuibasedialog.h" // CIpsSetUiBaseDialog + +class CIpsSetData; +class CIpsSetUi; + +class CIpsSetUiDialogCtrl : + public CIpsSetUiBaseDialog + { +public: + + /** + * Class destructor. + */ + ~CIpsSetUiDialogCtrl(); + + /** + * 2-phase constructor. + */ + static CIpsSetUiDialogCtrl* NewL( + CIpsSetUi& aDialog, + CEikFormattedCellListBox& aListBox, + CAknTitlePane& aTitlePane, + CEikButtonGroupContainer& aButtons, + CMsvSession& aSession, + TUint64& aFlags ); + + /** + * 2-phase constructor with stack push. + */ + static CIpsSetUiDialogCtrl* NewLC( + CIpsSetUi& aDialog, + CEikFormattedCellListBox& aListBox, + CAknTitlePane& aTitlePane, + CEikButtonGroupContainer& aButtons, + CMsvSession& aSession, + TUint64& aFlags ); + +// New functions + + /** + * Retrieves the current help context. + * + * @param aContext Current help context. + */ + void GetHelpContext( TCoeHelpContext& aContext ) const; + + void DynInitMenuPaneL( /*TInt aResourceId,*/ + CEikMenuPane* aMenuPane ); + + /** + * Saves the settings. + */ + void StoreSettingsToAccountL(); + +// From base class CIpsSetUiBaseDialog + + /** + * Catches key events. + * + * @param aKeyEvent Invoked event. + * @param aType Type of event. + * @return State of the key event after procesessing. + */ + TKeyResponse OfferKeyEventL( + const TKeyEvent& aKeyEvent, + TEventCode aType ); + + /** + * Processes the dialog commands. + * + * @param aCommandId Invoked command. + */ + virtual void ProcessCommandL( TInt aCommandId ); + + /** + * Check whether the dialog can be exited. + * + * @param aButtonId Pressed button. + */ + virtual TBool OkToExitL( + const TInt aButtonId ); + +protected: + + /** + * Constructor. + * + * @param aDialog Actual dialog. + * @param aListBox Listbox the dialog is showing. + * @param aTitlePane Guess... + * @param aFlags Flags to control dialog behavior and exit. + */ + CIpsSetUiDialogCtrl( + CIpsSetUi& aDialog, + CEikFormattedCellListBox& aListBox, + CAknTitlePane& aTitlePane, + CMsvSession& aSession, + TUint64& aFlags ); + +private: + + /** + * 2nd phase of construction. + * + * @param aButtons Button container of the dialog + * @leave For any odd reason. + */ + void ConstructL( CEikButtonGroupContainer& aButtons ); + +// New functions + + /** + * Gets IapChoice from the item. + * + * @param aItemId Preferably access point item id. + * @return Access point choice item. + */ + TImIAPChoice GetIapPref( const TInt aItemId ); + + /** + * Handles any event from the system. + * + * @param aCommandId Commands to be handled. + */ + virtual TBool EventHandlerL( const TInt aCommandId ); + + /** + * Handles softkey pressed event. + * + * @param aButton Button that is pressed. + * @return ETrue, when handled. + */ + TBool KeyPressSoftkeyL( const TInt aButton ); + + /** + * Handles OK key press. + * + * @param aButton Button that is pressed. + */ + TBool KeyPressOKButtonL( const TInt aButton ); + + /** + * @param aItem Port item for initialization. + */ + void InitPort( CIpsSetUiItem& aItem ); + + /** + * Get the port item + * + * @param aIncoming Defines item for fetching. + * @param aEditor Defines if the editor should be found. + * @return Requested item. + */ + CIpsSetUiItem& PortItem( + const TBool aIncoming, + const TBool aEditor ); + + /** + + + /** + * Open folder subscription dialog. + */ + TIpsSetUiEventResult HandleEventSubscribeFoldersL(); + + /** + * @param aBaseItem Port item for handling after editor close. + */ + void HandleEventPort( CIpsSetUiItem& aBaseItem ); + + /** + * Handle the change of Outgoing User Authentication value + * + * @param aBaseItem Authentication item + * @param aForceClear Clears the username and password fields. + */ + void HandleEventAuthentication( + CIpsSetUiItem& aBaseItem, + const TBool aForceClear ); + + /** + * Hides/Unhides roaming depending on the status + * + * @param aBaseItem Scheduling item + */ + void HandleEventSchedule( CIpsSetUiItem& aBaseItem ); + + /** + * Change the setting label for day item. + * + * @param aParam Day item + */ + void HandleEventDaysL( CIpsSetUiItem& aBaseItem ); + + /** + * Updates the settings text for download size item. + * + * @param aBaseItem Download size page + */ + void HandleDownloadSizeL( CIpsSetUiItem& aBaseItem ); + + /** + * Updates the settings text for email retrieval settings. + * + * @param aBaseItem Download size page + */ + //void HandleEmailsToRetrieve( CIpsSetUiItem& aBaseItem ); + + /** + * Changes resource for port editor + */ + TIpsSetUiEventResult HandlePort(); + + /** + * Launch IAP page. + * + * @since FS v1.0 + * @param aBaseItem Access point item. + */ + TIpsSetUiEventResult HandleAccessPointOpeningL( CIpsSetUiItem& aBaseItem ); + + /** + * @return Access point settings from the item. + */ + TImIAPChoice GetIapChoiceL( const TUid& aId ) const; + + /** + * Gets IapPrefs from the item. + * + * @return Access point preferences item. + */ + CImIAPPreferences& GetIapPrefsL(const TUid& aId); + + + /** + * Initialize signature item + * + * @param aBaseItem Signature item for init + */ + void InitSignatureL( + CIpsSetUiItem& aBaseItem ); + + /** + * Initializes download size items + * + * @param aBaseItem Download size item + * @param aValue Value for initialization + */ + void InitDownloadSizeL( + CIpsSetUiItem& aBaseItem, + const TInt aValue ); + + /** + * @param aBaseItem Access point item for initialization + */ + void InitIapL( CIpsSetUiItem& aBaseItem ); + + /** + * Initializes retrieve limit editors + * + * @param aBaseItem Editor for initialization. + * @param aValue Stored value. + */ + void InitRetrieve( + CIpsSetUiItem& aBaseItem, + const TInt aValue ); + + /** + * Initializes hours dialog + * + * @param aBaseItem Hours item + * @param aStartTime Starting hour + * @param aStopTime Stop hour + */ + void InitHoursL( + CIpsSetUiItem& aBaseItem, + const TInt64 aStartTime, + const TInt64 aStopTime ); + + /** + * Initializes roaming item + * + * @param aBaseItem Roaming item for initialization + * @param aValue for initialization + */ + void InitRoaming( + CIpsSetUiItem& aBaseItem, + const TInt aValue ); + + // + void InitSecuritySetting( + CIpsSetUiItem& aBaseItem, + const TInt aValue ); + + // + + /** + * Stores the retrieval limit status. + */ + void StoreRetrievalLimit(); + + /** + * Formats time string for setting item. + * + * @param aText Return string + * @param aStartTime Starting hour + * @param aStopTime Stopping hour + */ + void FormatTimeStringL( + TDes& aText, + const TInt64 aStartTime, + const TInt64 aStopTime ) const; + +// From base class CIpsSetUiBaseArray + + /** + * @param aBaseItem Item for initialization. + */ + void InitUserData( CIpsSetUiItem& aBaseItem ); + + + /** + * @param aBaseItem Item for initialization. + */ + void InitUserDataL( CIpsSetUiItem& aBaseItem ); + + /** + * Initializes user name. Should be used for Outgoing setting. + * + * @param aBaseItem Container for username + * @param aLogin Text to be stored + */ + void InitLogin( + CIpsSetUiItem& aBaseItem, + const TDesC& aLogin ); + + /** + * Creates array of custom items. + * + * @param aId Item which stores the array + * @return Item which contains the array and ownership to it. + */ + CIpsSetUiItem* CreateCustomItemToArrayLC( const TUid& aId ); + + /** + * Make hide check including protocol checks. + * + * @param aItem Item to be checked + * @return KErrNotSupported when the item should not be visible + */ + TInt IsHidden( + const CIpsSetUiItem& aItem ) const; + +// From base class CIpsSetUiBaseDialog + + /** + * Setting page event handling. + * + * @param aSettingPage Setting page that invokes the event. + * @param aEventType Invoked event. + */ + virtual void HandleSettingPageEventL( + CAknSettingPage* aSettingPage, + TAknSettingPageEvent aEventType ); + + /** + * Array change event handling. + * + * @param aBaseItem Item that invoked the event. + * @return Result of the event handling. + */ + virtual TInt EventSubArrayChangeL( + CIpsSetUiItem& aBaseItem ); + + /** + * Handles the events, after the settings editor has been closed + * + * @param aBaseItem Item that has been edited. + * @return Result of the handling + */ + TInt EventItemEditEndsL( CIpsSetUiItem& aBaseItem ); + + /** + * Handles the events, before the settings editor is opened + * + * @param aBaseItem Item that is going to be edited. + * @return Result of the handling + */ + TIpsSetUiEventResult EventItemEditStartsL( CIpsSetUiItem& aBaseItem ); + + /** + * Launches the multiline editor + * + * @param aBaseItem Multiline editor item + * @param aUpdateMode Editors mode + * @return Result of edit + */ + TIpsSetUiEventResult SettingLaunchMultilineEditorL( + CIpsSetUiItem& aBaseItem, + TIpsSetUiUpdateMode& aUpdateMode ); + +// Data + + /** + * Dialog which created the controller. + */ + CIpsSetUi& iDialog; + + + /** + * Message server session. + */ + CMsvSession& iSession; + + /** + * Flags to control dialog behavior. + */ + TUint64& iFlags; + + /** + * Data object store. + * Owned. + */ + CIpsSetData* iData; + + /** + * Temporary storage for signature. + */ + RBuf iSignature; + + }; + +#endif // IPSSETUIDIALOG_H + +// End of File