email/imum/Utils/Inc/IMSSettingsDialog.h
changeset 0 72b543305e3a
equal deleted inserted replaced
-1:000000000000 0:72b543305e3a
       
     1 /*
       
     2 * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  IMSSettingsDialog.h
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 #ifndef IMUMMAILSETTINGSDIALOG_H
       
    21 #define IMUMMAILSETTINGSDIALOG_H
       
    22 
       
    23 // INCLUDES
       
    24 #include <e32base.h>
       
    25 #include "MuiuDynamicSettingsDialog.h"
       
    26 #include <msvapi.h>                    // CMsvSession
       
    27 #include <imapset.h>                   // CImImap4Settings
       
    28 #include "MuiuDynamicSettingItemBase.h"      // CMuiuSettingBase
       
    29 #include "MuiuDynamicSettingItemEditValue.h" // CMuiuSettingEditValue
       
    30 #include "MuiuDynamicSettingItemEditText.h"  // CMuiuSettingEditText
       
    31 #include "MuiuDynamicSettingItemLink.h"      // CMuiuSettingLink
       
    32 #include "MuiuDynamicSettingItemExtLink.h"   // CMuiuSettingExtLink
       
    33 
       
    34 #include "IMSSettingsItemAccessPoint.h"
       
    35 #include "IMASPageIds.hrh"              // TIMASettigsId
       
    36 #include "IMSSettingsUi.h"
       
    37 #include "IMSSettingsBaseUi.h"
       
    38 #include "IMSSettingsItemApprover.h"
       
    39 #include "EmailUtils.H"
       
    40 
       
    41 // CONSTANTS
       
    42 enum TDialogFlags
       
    43     {
       
    44     // Flags to keep track, which of the resources have initialized
       
    45     EDialogMainMenuInitialized = EImumSettingLastFlag,
       
    46     EDialogIncomingInitialized,
       
    47     EDialogOutgoingInitialized,
       
    48     EDialogUserPrefInitialized,
       
    49     EDialogRetLimitInitialized,
       
    50     EDialogDownloadInitialized,
       
    51     EDialogAlOnlineInitialized,
       
    52     // Flags to keep track, which of the resources have changed
       
    53     EDialogIncomingChanged,
       
    54     EDialogOutgoingChanged,
       
    55     EDialogUserPrefChanged,
       
    56     EDialogRetLimitChanged,
       
    57     EDialogDownloadChanged,
       
    58     EDialogAlOnlineChanged,
       
    59     EDialogMainMenu,
       
    60     EDialogAlwaysOnlineOn,
       
    61     EDialogOmaEmnOn,
       
    62     EDialogCsdAccessPoint,
       
    63     EDialogQuitNotAllowed,
       
    64     EDialogIncomingIapNotOk,
       
    65     EDialogOutgoingIapNotOk,
       
    66     EDialogLastFlag
       
    67     };
       
    68 
       
    69 const TInt KIMASDialogAOArrayIndex = 3;
       
    70 
       
    71 // MACROS
       
    72 // DATA TYPES
       
    73 // FUNCTION PROTOTYPES
       
    74 // FORWARD DECLARATIONS
       
    75 class CFlags;
       
    76 class CIMSSettingsItemApprover;
       
    77 class CMsvCommDbUtilities;
       
    78 
       
    79 // CLASS DECLARATION
       
    80 
       
    81 /**
       
    82 *  ?one_line_short_description.
       
    83 *  ?other_description_lines
       
    84 *
       
    85 *  @lib ?library
       
    86 *  @since S60 3.0
       
    87 */
       
    88 class CIMSSettingsDialog :
       
    89     public CIMSSettingsBaseUI
       
    90     {
       
    91     public: // Constructors and destructor
       
    92 
       
    93         /**
       
    94         * Destructor
       
    95         * @since S60 3.0
       
    96         */
       
    97         virtual ~CIMSSettingsDialog();
       
    98 
       
    99         /**
       
   100         *
       
   101         * @since S60 3.0
       
   102         * @param aListBox, The listbox to be used to show the array
       
   103         */
       
   104         static CIMSSettingsDialog* NewL(
       
   105             CIMSSettingsUi& aDialog,
       
   106             CImumInternalApiImpl& aMailboxApi,
       
   107             CEikFormattedCellListBox& aListBox,
       
   108             CAknTitlePane& aTitlePane,
       
   109             CEikButtonGroupContainer& aButtons,
       
   110             CMuiuFlags& aFlags,
       
   111             CImumInSettingsData& aMailboxSettings );
       
   112 
       
   113         /**
       
   114         *
       
   115         * @since S60 3.0
       
   116         * @param aListBox, The listbox to be used to show the array
       
   117         */
       
   118         static CIMSSettingsDialog* NewLC(
       
   119             CIMSSettingsUi& aDialog,
       
   120             CImumInternalApiImpl& aMailboxApi,
       
   121             CEikFormattedCellListBox& aListBox,
       
   122             CAknTitlePane& aTitlePane,
       
   123             CEikButtonGroupContainer& aButtons,
       
   124             CMuiuFlags& aFlags,
       
   125             CImumInSettingsData& aMailboxSettings );
       
   126 
       
   127     public: // New functions
       
   128 
       
   129         /**
       
   130         *
       
   131         * @since S60 3.0
       
   132         */
       
   133         void StoreSettingsToAccountL(
       
   134             CImumInSettingsData& aSettings );
       
   135 
       
   136     public: // Functions from base classes
       
   137 
       
   138         /**
       
   139         *
       
   140         * @since S60
       
   141         * @return ETrue, if possible to exit
       
   142         * @return EFalse, if not possible to exit
       
   143         */
       
   144         TBool OkToExitL( const TInt aButtonId );
       
   145 
       
   146         /**
       
   147         * Seeks the item from the array and initializes it.
       
   148         * Ownership is not transferred.
       
   149         * @since S60 3.0
       
   150         */
       
   151         CMuiuSettingBase* GetUninitializedItem(
       
   152             const TUid& aId );
       
   153 
       
   154         /**
       
   155         *
       
   156         * @since S60 3.0
       
   157         */
       
   158         void GetHelpContext( TCoeHelpContext& aContext ) const;
       
   159 
       
   160     protected:  // New virtual functions
       
   161     protected:  // New functions
       
   162     protected:  // Functions from base classes
       
   163 
       
   164     private: // Constructors and destructor
       
   165 
       
   166         /**
       
   167         *
       
   168         * @since S60 3.0
       
   169         */
       
   170         CIMSSettingsDialog(
       
   171             CIMSSettingsUi& aDialog,
       
   172             CImumInternalApiImpl& aMailboxApi,
       
   173             CEikFormattedCellListBox& aListBox,
       
   174             CAknTitlePane& aTitlePane,
       
   175             CMuiuFlags& aFlags );
       
   176 
       
   177         /**
       
   178         *
       
   179         * @since S60 3.0
       
   180         */
       
   181         void ConstructL(
       
   182             CEikButtonGroupContainer& aSoftkeys,
       
   183             CImumInSettingsData& aMailboxSettings );
       
   184 
       
   185     private:  // New virtual functions
       
   186     private:  // New functions
       
   187 
       
   188         // ARRAY INITIALIZATION
       
   189 
       
   190         /**
       
   191         *
       
   192         * @since S60 3.0
       
   193         */
       
   194         void InitializeArrayL( const TInt aResource );
       
   195 
       
   196         /**
       
   197         *
       
   198         * @since S60 3.0
       
   199         */
       
   200         void InitializeNewResourceL();
       
   201         void InitializeArrayMainMenu();
       
   202         void InitializeArrayIncomingL();
       
   203         void InitializeArrayIncomingImap4L();
       
   204         void InitializeArrayIncomingPop3L();
       
   205         void InitializeArrayOutgoingL();
       
   206         void InitializeArrayUserPrefL();
       
   207         void InitializeArrayRetLimitL();
       
   208         void InitializeArrayDownloadL();
       
   209         void InitializeArrayAlwaysOnlineL();
       
   210 
       
   211         /**
       
   212         *
       
   213         * @since S60 3.0
       
   214         */
       
   215         void InitializeRetrieveLimitL(
       
   216             const TInt aLimit,
       
   217             const TInt aId );
       
   218 
       
   219         /**
       
   220         *
       
   221         * @since S60 3.0
       
   222         */
       
   223         TInt InitializeIap( const TUid& aIapItemId );
       
   224 
       
   225         /**
       
   226         *
       
   227         * @since S60 3.0
       
   228         */
       
   229         void InitializeAlwaysOnlineState();
       
   230 
       
   231 
       
   232         /**
       
   233         *
       
   234         * @since S60 3.0
       
   235         */
       
   236         void InitializeUsername(
       
   237             const TUid& aItemId,
       
   238             const TPtrC8& aUsername );
       
   239 
       
   240         /**
       
   241         *
       
   242         * @since S60 3.0
       
   243         */
       
   244         void InitializePassword(
       
   245             const TUid& aItemId,
       
   246             const TPtrC8& aPassword,
       
   247             const TInt aFlag );
       
   248 
       
   249         /**
       
   250         *
       
   251         * @since S60 3.0
       
   252         */
       
   253         TInt InitializeSignature();
       
   254 
       
   255         /**
       
   256         *
       
   257         * @since S60 3.0
       
   258         */
       
   259         void InitializeSignatureL();
       
   260 
       
   261         /**
       
   262         *
       
   263         * @since S60 3.0
       
   264         */
       
   265         void InitializeSecuritySettings(
       
   266             const TUid& aSecurityItemId );
       
   267 
       
   268         /**
       
   269         *
       
   270         * @since S60 3.0
       
   271         */
       
   272         TIMASMailSecurity InitializeSecurity( const TUid& aSecurityItemId );
       
   273 
       
   274         /**
       
   275         *
       
   276         * @since S60 3.0
       
   277         */
       
   278         TInt InitializeRetrievedParts();
       
   279         void InitializeRetrievedPartsL();
       
   280 
       
   281         /**
       
   282         *
       
   283         * @since S60 3.0
       
   284         */
       
   285         TInt InitializePort(
       
   286             const TIMASMailSecurity aSecurity,
       
   287             const TBool aIncoming  );
       
   288 
       
   289         /**
       
   290         *
       
   291         * @since S60 3.0
       
   292         */
       
   293         void InitializePortL(
       
   294             const TIMASMailSecurity aSecurity,
       
   295             const TBool aIncoming  );
       
   296 
       
   297         /**
       
   298         *
       
   299         * @since S60 3.0
       
   300         */
       
   301         TInt InitializeAoDays();
       
   302 
       
   303         /**
       
   304         *
       
   305         * @since S60 3.0
       
   306         */
       
   307         void InitializeAoIntervalButtons(
       
   308             TInt& aInterval );
       
   309 
       
   310         /**
       
   311         *
       
   312         * @since S60 3.0
       
   313         */
       
   314         void InitializeAoIntervalEditor(
       
   315             TInt& aInterval,
       
   316             HBufC*& aText );
       
   317 
       
   318         /**
       
   319         *
       
   320         * @since S60 3.0
       
   321         */
       
   322         void InitializeAoInterval();
       
   323 
       
   324         /**
       
   325         *
       
   326         * @since S60 3.0
       
   327         */
       
   328         TInt InitializeFolderPath();
       
   329 
       
   330         /**
       
   331         *
       
   332         * @since S60 3.0
       
   333         */
       
   334         TInt InitializeAoHoursL();
       
   335 
       
   336         void InitializeNext(
       
   337             const TUid& aItemId,
       
   338             const TMuiuSettingsText& aText );
       
   339         void InitializeNext(
       
   340             const TUid& aItemId,
       
   341             const TPtrC8& aText );
       
   342         void InitializeNext(
       
   343             const TUid& aItemId,
       
   344             const TInt aValue );
       
   345         void InitializeNext(
       
   346             const TUid& aItemId,
       
   347             const TInt aValue,
       
   348             const TMuiuSettingsText& aText );
       
   349 
       
   350         /**
       
   351         *
       
   352         * @since S60 3.0
       
   353         */
       
   354         void InitializeResetArrays();
       
   355 
       
   356         void InitializeItem(
       
   357             CMuiuDynFinderItemArray& aArray,
       
   358             const TInt aIndex,
       
   359             const TInt aValue,
       
   360             const TMuiuSettingsText* aText );
       
   361         void InitializeItem(
       
   362             CMuiuSettingBase& aBaseItem,
       
   363             const TInt aValue,
       
   364             const TMuiuSettingsText* aText );
       
   365 
       
   366         // SETTING STORING
       
   367 
       
   368         /**
       
   369         *
       
   370         * @since S60 3.0
       
   371         */
       
   372         void StoreSettingsL();
       
   373         void StoreSettingsIncomingL();
       
   374         void StoreSettingsIncomingImap4L();
       
   375         void StoreSettingsIncomingPop3L();
       
   376         void StoreSettingsOutgoingL();
       
   377         void StoreSettingsUserPrefL();
       
   378         void StoreSettingsRetLimitL();
       
   379         void StoreSettingsDownloadL();
       
   380         void StoreSettingsAlwaysOnlineL();
       
   381         void StoreSettingsIapL( const TBool aIsIncoming );
       
   382         void StoreSettingsSecurityL( const TBool aIsIncoming );
       
   383         void StoreSettingsRetrievedPartsImap4L(
       
   384             const TImap4GetMailOptions aOptions,
       
   385             const TImImap4PartialMailOptions aPartial = ENoSizeLimits );
       
   386         /**
       
   387         *
       
   388         * @since S60 3.0
       
   389         */
       
   390         void StoreRetrievedValuesImap4L( const TInt32 aSize = KMaxTInt );
       
   391 
       
   392         /**
       
   393         *
       
   394         * @since S60 3.0
       
   395         */
       
   396         void StoreRetrievedPartsL();
       
   397 
       
   398         /**
       
   399         *
       
   400         * @since S60 3.0
       
   401         */
       
   402         void StoreSettingsSignature();
       
   403 
       
   404         /**
       
   405         *
       
   406         * @since S60 3.0
       
   407         */
       
   408         const TBuf8<KMuiuDynMaxSettingsTextLength> StoreUsername(
       
   409             const TDesC& aUsername );
       
   410 
       
   411         /**
       
   412         *
       
   413         * @since S60 3.0
       
   414         */
       
   415         const TBuf8<KMuiuDynMaxSettingsTextLength> StorePassword(
       
   416             const TDesC& aPassword,
       
   417             const TInt aFlag );
       
   418 
       
   419 
       
   420         /**
       
   421         *
       
   422         * @since S60 3.0
       
   423         */
       
   424         void StoreSignatureL();
       
   425 
       
   426         /**
       
   427         *
       
   428         * @since S60 3.0
       
   429         */
       
   430         void StorePortL( const TBool aIncoming );
       
   431 
       
   432         /**
       
   433         *
       
   434         * @since S60 3.0
       
   435         */
       
   436         void StoreAoHoursL();
       
   437 
       
   438         /**
       
   439         *
       
   440         * @since S60 3.0
       
   441         */
       
   442         void StoreAoInterval();
       
   443 
       
   444         /**
       
   445         *
       
   446         * @since S60 3.0
       
   447         */
       
   448         void StoreFolderPathL();
       
   449 
       
   450         const TMuiuSettingsText* StoreGetNextText(
       
   451             const TUid& aItemId );
       
   452         TInt StoreGetNextValue(
       
   453             const TUid& aItemId );
       
   454         TBool StoreGetNextBoolean(
       
   455             const TUid& aItemId );
       
   456 
       
   457         /**
       
   458         *
       
   459         * @since S60 3.2
       
   460         */
       
   461         void StoreGetLoginInformation( TDes8& aUserName,
       
   462             TDes8& aPassword );
       
   463         void StoreSetLoginInformation( const TDesC8& aUserName,
       
   464             const TDesC8& aPassword );
       
   465 
       
   466         /**
       
   467         *
       
   468         * @since S60 3.0
       
   469         */
       
   470         void HandleSubMenuOpenL(
       
   471             CMuiuSettingBase& aBaseItem );
       
   472 
       
   473         // ITEM CHECKS
       
   474 
       
   475         /**
       
   476         *
       
   477         * @since S60 3.0
       
   478         */
       
   479         void EventHandleApproverEvent(
       
   480             const TIMSApproverEvent aEvent );
       
   481 
       
   482         // MISC FUNCTIONS
       
   483 
       
   484         /**
       
   485         *
       
   486         * @since S60 3.0
       
   487         */
       
   488         CMuiuSettingBase* NextItemSearch(
       
   489             const TUid& aExpectedId );
       
   490 
       
   491         /**
       
   492         *
       
   493         * @since S60 3.0
       
   494         */
       
   495         CMuiuSettingBase* NextItemDoSearch(
       
   496             const TInt aLastItem,
       
   497             const TUid& aExpectedId );
       
   498 
       
   499         /**
       
   500         *
       
   501         * @since S60 3.0
       
   502         */
       
   503         void SetEmailSettingsState();
       
   504 
       
   505         /**
       
   506         *
       
   507         * @since S60 3.0
       
   508         */
       
   509         void SubscribeFoldersL();
       
   510 
       
   511         /**
       
   512         *
       
   513         * @since S60 3.0
       
   514         */
       
   515         void CheckSubscribedFolderStateL();
       
   516 
       
   517         /**
       
   518         *
       
   519         * @since S60 3.0
       
   520         */
       
   521         void LaunchIapPageL(
       
   522             CMuiuSettingBase& aBaseItem );
       
   523 
       
   524         /**
       
   525         *
       
   526         * @since S60 3.0
       
   527         */
       
   528         void SetStoreFlags(
       
   529             const TBool aState,
       
   530             const TInt aFlag );
       
   531 
       
   532         /**
       
   533         *
       
   534         * @since S60 3.0
       
   535         */
       
   536         TInt GetStorerFlag(
       
   537             const CMuiuSettingBase& aBaseItem );
       
   538 
       
   539         /**
       
   540         *
       
   541         * @since S60 3.0
       
   542         */
       
   543         void SetFlags(
       
   544             const TInt aError,
       
   545             const TInt aFlag );
       
   546 
       
   547         /**
       
   548         *
       
   549         * @since S60 3.0
       
   550         */
       
   551         void SetInitializeFlags( const TInt aError );
       
   552 
       
   553         /**
       
   554         * ?member_description
       
   555         * @since S60 3.0
       
   556         * @param aBaseItem Item containing the information
       
   557         */
       
   558         void UpdateItemDefaultSettingTextL(
       
   559             CMuiuSettingsLinkExtended& aLinkItem ) const;
       
   560 
       
   561         /**
       
   562         * ?member_description
       
   563         * @since S60 3.0
       
   564         * @param aBaseItem Item containing the information
       
   565         */
       
   566         void UpdateItemCustomSettingTextL(
       
   567             CMuiuSettingsLinkExtended& aLinkItem,
       
   568             CMuiuSettingsEditValue& aItemFrom,
       
   569             CMuiuSettingsEditValue& aItemTo ) const;
       
   570 
       
   571         /**
       
   572         * Checks whether incoming/outgoing port is user defined or not and
       
   573         * sets the port number according to it and security setting. If user
       
   574         * defined then does not edit it.
       
   575         * @since S60 3.0
       
   576         * @param aBaseItemSecurity Item containing the information
       
   577         * @param aIncoming Incoming or outgoing
       
   578         */
       
   579         void CheckPort(
       
   580             CMuiuSettingBase& aBaseItemSecurity,
       
   581             const TBool aIncoming );
       
   582 
       
   583         /**
       
   584         * Checks port, updates item text and sets setting dialog resource
       
   585         * back to normal.
       
   586         * @since S60 3.1
       
   587         * @param aBaseItem Item containing the information
       
   588         */
       
   589         void ClosePortDialog(
       
   590             CMuiuSettingBase& aBaseItem );
       
   591 
       
   592         /**
       
   593         * Checks and sets EDialogCsdAccessPoint flag according to IAP
       
   594         * @since S60 3.0
       
   595         */
       
   596         void UpdateCSDFlagL();
       
   597 
       
   598         /**
       
   599         * Updates AO intervals, based on EDialogCsdAccessPoint flag
       
   600         * @since S60 3.0
       
   601         */
       
   602         void UpdateAOIntervalsL();
       
   603 
       
   604         /**
       
   605         * Gets AO interval in minutes, based on selected radio button.
       
   606         * @since S60 3.0
       
   607         */
       
   608         TInt GetAoIntervalTimeInMinutes();
       
   609 
       
   610         /**
       
   611         *
       
   612         * @since S60 3.0
       
   613         */
       
   614         void HideItemsPermanently();
       
   615 
       
   616         /**
       
   617         *
       
   618         * @since S60 3.0
       
   619         */
       
   620         void UpdateItemText(
       
   621             const TUid& aItemId );
       
   622 
       
   623         /**
       
   624         *
       
   625         * @since S60 3.0
       
   626         */
       
   627         void UpdateFetchLimitSetting();
       
   628 
       
   629         /**
       
   630         *
       
   631         * @since S60 3.2
       
   632         */
       
   633         void GetLoginInformationL(
       
   634             TDes8& aUserName,
       
   635             TDes8& aPassword,
       
   636             TBool& aPasswordTemporary );
       
   637 
       
   638     private:  // Functions from base classes
       
   639 
       
   640         virtual TInt EventSubArrayChangeL(
       
   641             CMuiuSettingBase& aBaseItem );
       
   642 
       
   643         virtual TMuiuPageEventResult EventItemEditStartsL(
       
   644             CMuiuSettingBase& aBaseItem );
       
   645 
       
   646         virtual TInt EventItemEditEndsL(
       
   647             CMuiuSettingBase& aBaseItem );
       
   648 
       
   649         virtual TMuiuPageEventResult EventItemEvaluateText(
       
   650             const CMuiuSettingBase& aBaseItem,
       
   651             TDes& aNewText );
       
   652 
       
   653         virtual TMuiuPageEventResult EventItemEvaluateRadioButton(
       
   654             const CMuiuSettingBase& aBaseItem,
       
   655             TInt& aNewValue );
       
   656 
       
   657         /**
       
   658         *
       
   659         * @since S60 3.0
       
   660         */
       
   661         void FindMultilineEditorL(
       
   662             const TUid& aId,
       
   663             CMuiuSettingsEditValue*& aTopEditor,
       
   664             CMuiuSettingsEditValue*& aBottomEditor );
       
   665 
       
   666         /**
       
   667         *
       
   668         * @since S60 3.0
       
   669         */
       
   670         TMuiuPageEventResult SettingLaunchMultilineEditorL(
       
   671             CMuiuSettingBase& aBaseItem,
       
   672             TMuiuDynSetUpdateMode& aUpdateMode );
       
   673 
       
   674         /**
       
   675         *
       
   676         * @since S60 3.0
       
   677         */
       
   678         void EventUpdateAlwaysOnline(
       
   679             const TInt aNewState );
       
   680 
       
   681         /**
       
   682         *
       
   683         * @since S60 3.0
       
   684         */
       
   685         void EventUpdateMailNotifications(
       
   686             const TInt aNewState );
       
   687 
       
   688         /**
       
   689         *
       
   690         * @since S60 3.0
       
   691         */
       
   692         void EventAOForceTurnOff();
       
   693 
       
   694         /**
       
   695         *
       
   696         * @since S60 3.0
       
   697         */
       
   698         void EventEMNForceTurnOff();
       
   699 
       
   700         /**
       
   701         *
       
   702         * @since S60 3.0
       
   703         */
       
   704         void EventUpdateAoDays( CMuiuSettingBase& aBaseItem );
       
   705 
       
   706         /**
       
   707         *
       
   708         * @since S60 3.0
       
   709         */
       
   710          void IncludePartialFetchString(
       
   711             CMuiuSettingBase& aRetrievedParts );
       
   712 
       
   713         /**
       
   714         * @since S60 3.0
       
   715         */
       
   716         virtual void AcquireCustomSettingPageL(
       
   717             CAknSettingPage*& aReturnPage,
       
   718             TMuiuDynSetUpdateMode& aReturnUpdateMode,
       
   719             TInt& aReturnSettingValue,
       
   720             TMuiuSettingsText& aReturnSettingText,
       
   721             CDesCArrayFlat& aReturnRadioButtonArray,
       
   722             CMuiuSettingBase& aParamBaseItem );
       
   723 
       
   724         /**
       
   725         *
       
   726         * @since S60 3.0
       
   727         */
       
   728         CAknSettingPage* AcquireCustomEncodingPageL(
       
   729             TMuiuDynSetUpdateMode& aReturnUpdateMode,
       
   730             TInt& aReturnSettingValue,
       
   731             CDesCArrayFlat& aReturnRadioButtonArray,
       
   732             CMuiuSettingBase& aParamBaseItem );
       
   733 
       
   734         /**
       
   735         *
       
   736         * @since S60 3.0
       
   737         */
       
   738         void AcquireCustomEncodingButtonArrayL(
       
   739             CDesCArrayFlat& aButtons );
       
   740 
       
   741         // CIMSSettingsBaseUI
       
   742 
       
   743         /**
       
   744         *
       
   745         * @since S60 3.0
       
   746         */
       
   747         TBool KeyPressSoftkey( const TInt aButton );
       
   748 
       
   749         /**
       
   750         *
       
   751         * @since S60 3.0
       
   752         */
       
   753         TBool KeyPressOKButtonL( const TInt aButton );
       
   754 
       
   755         /**
       
   756          * Returns the id of the editable mailbox
       
   757          *
       
   758          * @since S60 v3.2
       
   759          * @return Mailbox Id
       
   760          */
       
   761         TMsvId CurrentMailboxId();
       
   762 
       
   763         // From CMuiuDynamicSettingsDialog
       
   764         virtual void HandleListBoxEventL(
       
   765             CEikListBox* aListBox,
       
   766             TListBoxEvent aEventType );
       
   767 
       
   768         /**
       
   769          * Method is used to execute flags with a delay. SubscribeFoldersL
       
   770          * method needs to use this when Exit is issued.
       
   771          *
       
   772          * @return Mailbox Id
       
   773          */
       
   774         static TInt DelayedExecFlags( TAny* aPtr );
       
   775 
       
   776     public:     // Data
       
   777     protected:  // Data
       
   778     private:    // Data
       
   779 
       
   780         // Temporary array for initializing phase
       
   781         CMuiuDynFinderItemArray*    iInitArray;
       
   782         // Owned: Pointer to symbian data object
       
   783         CImumMboxData*              iAccountSettings;
       
   784         //
       
   785         TDialogFlags                iInitSetFlag;
       
   786         //
       
   787         TInt                        iInitCurrentIndex;
       
   788         //
       
   789         TInt                        iInitResource;
       
   790         //
       
   791         CMuiuDynInitItemIdArray*    iInitTreeArray;
       
   792         //
       
   793         CMuiuDynInitItemIdArray*    iInitIdArray;
       
   794         //
       
   795         CMuiuDynInitItemValueArray* iInitValueArray;
       
   796         //
       
   797         CMuiuDynInitItemTextArray*  iInitTextArray;
       
   798         //
       
   799         CMuiuDynInitInfoArray*      iInitInfoArray;
       
   800         //
       
   801         CIdle*                      iIdle;
       
   802     };
       
   803 
       
   804 #endif      // IMUMMAILSETTINGSDIALOG_H
       
   805 
       
   806 // End of File