email/imum/Utils/Inc/MuiuDynamicSettingsDialog.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:  This file contains declearation of settings handler class
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 #ifndef MUIUDYNAMICSETTINGSDIALOG_H
       
    21 #define MUIUDYNAMICSETTINGSDIALOG_H
       
    22 
       
    23 // INCLUDES
       
    24 #include <e32base.h>                // CArrayPtrFlat
       
    25 #include <eiklbo.h>                 // MEikListBoxObserver
       
    26 #include <coedef.h>                 // TKeyResponse
       
    27 #include <w32std.h>                 // TKeyEvent
       
    28 #include <eikcmobs.h>               // MEikCommandObserver
       
    29 #include <badesca.h>                // CDesCArrayFlat
       
    30 #include <aknsettingpage.h>         // MAknSettingPageObserver
       
    31 #include <eikbtgpc.h>               // CEikButtonGroupContainer
       
    32 #include "MuiuDynamicSettingsArray.h"
       
    33 #include "IMSSoftkeyControl.h"
       
    34 #include "IMSPageResourceControl.h"
       
    35 #include <muiuflags.h>
       
    36 
       
    37 // CONSTANTS
       
    38 enum TMuiuPageResult
       
    39     {
       
    40     EMuiuPageResultOk = 0,
       
    41     EMuiuPageResultSubMenuOpen,
       
    42     EMuiuPageResultInvalidResult,
       
    43     EMuiuPageResultReadOnly,
       
    44     EMuiuPageResultCancelled,
       
    45     EMuiuPageResultEditing,
       
    46     EMuiuPageResultEventCancel,
       
    47     EMuiuPageResultPageLocked
       
    48     };
       
    49 
       
    50 enum TMuiuPageEventResult
       
    51     {
       
    52     // Given value is approved
       
    53     EMuiuPageEventResultApproved = 0,
       
    54     // User has entered an invalid value, editor page should be reopened
       
    55     EMuiuPageEventResultDisapproved,
       
    56     // The editor has been cancelled and should be closed
       
    57     EMuiuPageEventResultCancel
       
    58     };
       
    59 
       
    60 // MACROS
       
    61 // DATA TYPES
       
    62 typedef CArrayFixFlat<TInt> CMuiuDynSetIntArray;
       
    63 typedef CArrayPtrFlat<CAknSettingPage> CMuiuDynSetPages;
       
    64 typedef CAknSettingPage::TAknSettingPageUpdateMode TMuiuDynSetUpdateMode;
       
    65 
       
    66 enum TMuiuDynInitInfo
       
    67     {
       
    68     // Indicates the next type needs value to be initialized
       
    69     EMuiuDynInitInfoValue = 0,
       
    70     // Indicates the next type needs text to be initialized
       
    71     EMuiuDynInitInfoText
       
    72     };
       
    73 
       
    74 // Arrays for initializing items
       
    75 typedef CArrayFixFlat<TUid> CMuiuDynInitItemIdArray;
       
    76 typedef CArrayFixFlat<TInt> CMuiuDynInitItemValueArray;
       
    77 typedef CArrayPtrFlat<TMuiuSettingsText> CMuiuDynInitItemTextArray;
       
    78 typedef CArrayFixFlat<TMuiuDynInitInfo> CMuiuDynInitInfoArray;
       
    79 
       
    80 // FUNCTION PROTOTYPES
       
    81 // FORWARD DECLARATIONS
       
    82 class CEikFormattedCellListBox;
       
    83 class CEikScrollBarFrame;
       
    84 class CAknSettingPage;
       
    85 class CAknTitlePane;
       
    86 class CAknQueryDialog;
       
    87 class CEikButtonGroupContainer;
       
    88 class CSelectionItemList;
       
    89 class CMuiuFlags;
       
    90 
       
    91 // CLASS DECLARATION
       
    92 
       
    93 /**
       
    94 *  ?one_line_short_description.
       
    95 *  ?other_description_lines
       
    96 *
       
    97 *  @lib ?library
       
    98 *  @since S60 3.0
       
    99 */
       
   100 class CMuiuDynamicSettingsDialog :
       
   101     public CMuiuDynamicSettingsArray,
       
   102     public MEikListBoxObserver,
       
   103     public MEikCommandObserver,
       
   104     public MAknSettingPageObserver
       
   105     {
       
   106     public: // Constructors and destructor
       
   107         virtual ~CMuiuDynamicSettingsDialog();
       
   108 
       
   109     public: // New virtual functions
       
   110 
       
   111         virtual TBool SettingsStartedL();
       
   112 
       
   113     public: // New functions
       
   114 
       
   115         TInt CurrentItemIndex() const;
       
   116 
       
   117         CMuiuSettingBase* CurrentItem() const;
       
   118 
       
   119     public: // Functions from base classes
       
   120 
       
   121     protected:  // Constructors
       
   122 
       
   123         CMuiuDynamicSettingsDialog(
       
   124             CEikFormattedCellListBox& aListBox,
       
   125             CAknTitlePane& aTitlePane );
       
   126         void SettingsConstructL(            
       
   127             CEikButtonGroupContainer& aButtons,            
       
   128             const TInt aResource = NULL,
       
   129             const TBool aUpdateMSK = EFalse,
       
   130             const TBool aLockedSettings = EFalse );
       
   131 
       
   132     protected:  // New virtual functions
       
   133 
       
   134         // From MAknSettingPageObserver
       
   135         virtual void HandleSettingPageEventL(
       
   136             CAknSettingPage* aSettingPage,
       
   137             TAknSettingPageEvent aEventType ) = 0;
       
   138 
       
   139         virtual TBool OkToExitL(
       
   140             const TInt aButtonId ) = 0;
       
   141 
       
   142         virtual TInt InitItemUnidentified(
       
   143             CMuiuSettingBase& aBaseItem,
       
   144             const TInt aValue,
       
   145             const TMuiuSettingsText* aText );
       
   146 
       
   147         /**
       
   148         *
       
   149         * @since S60 3.0
       
   150         */
       
   151         virtual TMuiuPageEventResult SettingLaunchMultilineEditorL(
       
   152             CMuiuSettingBase& aBaseItem,
       
   153             TMuiuDynSetUpdateMode& aUpdateMode );
       
   154 
       
   155         /**
       
   156         *
       
   157         * @since S60 3.0
       
   158         */
       
   159         virtual TKeyResponse OfferKeyEventL(
       
   160             const TKeyEvent& aKeyEvent,
       
   161             TEventCode aType );
       
   162 
       
   163         /**
       
   164         * @since S60 3.0
       
   165         */
       
   166         virtual void AcquireCustomSettingPageL(
       
   167             CAknSettingPage*& aReturnPage,
       
   168             TMuiuDynSetUpdateMode& aReturnUpdateMode,
       
   169             TInt& aReturnSettingValue,
       
   170             TMuiuSettingsText& aReturnSettingText,
       
   171             CDesCArrayFlat& aReturnRadioButtonArray,
       
   172             CMuiuSettingBase& aParamBaseItem );
       
   173 
       
   174         /**
       
   175         *
       
   176         * @since S60 3.0
       
   177         */
       
   178         virtual TInt EventSubArrayChangeL(
       
   179             CMuiuSettingBase& aBaseItem );
       
   180         virtual TMuiuPageEventResult EventItemEditStartsL(
       
   181             CMuiuSettingBase& aBaseItem );
       
   182         virtual TInt EventItemEditEndsL(
       
   183             CMuiuSettingBase& aBaseItem );
       
   184         virtual TMuiuPageEventResult EventItemEvaluateValue(
       
   185             const CMuiuSettingBase& aBaseItem,
       
   186             TInt& aNewValue );
       
   187         virtual TMuiuPageEventResult EventItemEvaluateRadioButton(
       
   188             const CMuiuSettingBase& aBaseItem,
       
   189             TInt& aNewValue );
       
   190         virtual TMuiuPageEventResult EventItemEvaluateText(
       
   191             const CMuiuSettingBase& aBaseItem,
       
   192             TDes& aNewText );
       
   193 
       
   194     protected:  // New functions
       
   195 
       
   196         // Setting page opening
       
   197 
       
   198         TMuiuPageResult OpenSettingPageL(
       
   199             const TInt aIndex = KErrNotFound );
       
   200         TMuiuPageResult OpenSettingPageL(
       
   201             CMuiuSettingBase& aBaseItem );
       
   202 
       
   203         void SetTitlePaneTextL(
       
   204             const TDesC& aText,
       
   205             const TBool aSaveCurrent = ETrue );
       
   206         void SetPreviousTitlePaneText(
       
   207             const TBool aSaveCurrent = ETrue );
       
   208 
       
   209         /**
       
   210         * Find the editor from the index in the array under the given item
       
   211         * @since S60 3.0
       
   212         */
       
   213         CMuiuSettingBase* SettingFindEditor(
       
   214             const CMuiuSettingBase& aBaseItem,
       
   215             const TInt aIndex,
       
   216             const TBool aExcludeHidden = ETrue );
       
   217 
       
   218         /**
       
   219         * Find the editor based on the id under the given item
       
   220         * @since S60 3.0
       
   221         */
       
   222         CMuiuSettingBase* SettingFindEditor(
       
   223             const CMuiuSettingBase& aBaseItem,
       
   224             const TUid& aId,
       
   225             const TBool aExcludeHidden = ETrue );
       
   226 
       
   227         /**
       
   228         *
       
   229         * @since S60 3.0
       
   230         */
       
   231         TInt InitAnyItem(
       
   232             CMuiuSettingBase& aBaseItem,
       
   233             const TInt aValue,
       
   234             const TMuiuSettingsText* aText );
       
   235 
       
   236         /**
       
   237         *
       
   238         * @since S60 3.0
       
   239         */
       
   240         TInt InitAnyMultiItem(
       
   241             const CMuiuDynInitItemIdArray* aStartTree,
       
   242             const CMuiuDynInitItemIdArray& aIdArray,
       
   243             const CMuiuDynInitItemValueArray* aValueArray = NULL,
       
   244             const CMuiuDynInitItemTextArray* aDescArray = NULL,
       
   245             const CMuiuDynInitInfoArray* aInitInfoArray = NULL );
       
   246 
       
   247         /**
       
   248         *
       
   249         * @since S60
       
   250         * @return
       
   251         */
       
   252         TInt ShowCustomQueryL(
       
   253             const TInt aResourceStringId );
       
   254 
       
   255         TInt GetTextEditorFlags( const CMuiuSettingBase& aBaseItem );
       
   256         TInt GetValueEditorFlags( const CMuiuSettingBase& aBaseItem );
       
   257 
       
   258         /**
       
   259         *
       
   260         * @since S60 3.0
       
   261         */
       
   262         void SetListboxEmptyTextL( const TDesC& aText );
       
   263 
       
   264 
       
   265         /**
       
   266         * Gets the setting page resource of specific item
       
   267         * @since S60 3.0
       
   268         * @return resource id of the page
       
   269         */
       
   270         TInt SettingPageResource(
       
   271             const TIMSPageResource aSettingPage ) const;
       
   272 
       
   273         /**
       
   274         * Sets the new setting page resource for specific item
       
   275         * @since S60 3.0
       
   276         * @param aSettingPage, Inserts the resource for the page
       
   277         */
       
   278         void SetSettingPageResource(
       
   279             const TIMSPageResource aSettingPage,
       
   280             const TInt aResourceId );
       
   281 
       
   282         /**
       
   283         *
       
   284         * @since S60 3.0
       
   285         */
       
   286         void CheckRadioButton(
       
   287             CMuiuSettingsLink& aRadioButtonArray,
       
   288             const TInt aRadioButtonIndex );
       
   289 
       
   290         void CheckRadioButton(
       
   291             CMuiuSettingsLink& aRadioButtonArray,
       
   292             const TUid& aId );
       
   293 
       
   294         /**
       
   295         *
       
   296         * @since S60 3.0
       
   297         */
       
   298          TInt FindCheckedRadiobutton(
       
   299             const CMuiuSettingsLinkExtended& aArray,
       
   300             TUid& aId,
       
   301             TInt& aIndex );
       
   302 
       
   303         /**
       
   304         *
       
   305         * @since S60 3.0
       
   306         */
       
   307         void AddBackupItemL(
       
   308             const CMuiuSettingBase& aBaseItem );
       
   309 
       
   310         /**
       
   311         *
       
   312         * @since S60 3.0
       
   313         */
       
   314         void RemoveLastBackupItem();
       
   315 
       
   316         /**
       
   317         *
       
   318         * @since S60 3.0
       
   319         */
       
   320         CMuiuSettingBase* GetLastBackupItem();
       
   321 
       
   322         /**
       
   323         *
       
   324         * @since S60 3.0
       
   325         */
       
   326         void RestoreFromBackup();
       
   327 
       
   328         /**
       
   329         *
       
   330         * @since S60 3.0
       
   331         */
       
   332         void CleanBackupArray();      
       
   333 
       
   334         /**
       
   335         *
       
   336         * @since S60 3.2
       
   337         */
       
   338         void UpdateMskL();
       
   339 
       
   340         /**
       
   341         *
       
   342         * @since S60 3.2
       
   343         */
       
   344         void SetMskL();
       
   345 
       
   346         /**
       
   347         *
       
   348         * @since S60 3.2
       
   349         */
       
   350         TInt MskCommand();
       
   351 
       
   352     protected:  // Functions from base classes
       
   353 
       
   354         // MEikCommandObserver
       
   355         virtual void ProcessCommandL( TInt aCommandId ) = 0;
       
   356 
       
   357         // MEikListBoxObserver
       
   358         virtual void HandleListBoxEventL(
       
   359             CEikListBox* aListBox,
       
   360             TListBoxEvent aEventType );
       
   361 
       
   362     private:  // New virtual functions
       
   363     private:  // New functions
       
   364 
       
   365         // Setting page opening
       
   366 
       
   367         /**
       
   368         *
       
   369         * @since S60 3.0
       
   370         */
       
   371         TMuiuPageResult SettingsPageOpenCheckL();
       
   372 
       
   373         /**
       
   374         *
       
   375         * @since S60 3.0
       
   376         */
       
   377         TMuiuPageResult SettingPageOpenEditorL();
       
   378 
       
   379         /**
       
   380         *
       
   381         * @since S60 3.0
       
   382         */
       
   383         void SettingPageOpenFinishL();
       
   384 
       
   385         /**
       
   386         *
       
   387         * @since S60 3.0
       
   388         */
       
   389         TMuiuPageResult SettingPageOpenL(
       
   390             CMuiuSettingBase& aBaseItem );
       
   391         TMuiuPageResult SettingLaunchPageLD(
       
   392             CMuiuSettingBase& aBaseItem,
       
   393             TMuiuDynSetUpdateMode& aUpdateMode );
       
   394         TMuiuPageResult SettingLaunchRadioButtonPageLD(
       
   395             CMuiuSettingBase& aBaseItem,
       
   396             TMuiuDynSetUpdateMode& aUpdateMode );
       
   397         TMuiuPageResult SettingLaunchCheckboxPageLD(
       
   398             CMuiuSettingBase& aBaseItem,
       
   399             TMuiuDynSetUpdateMode& aUpdateMode );
       
   400         TMuiuPageResult SettingLaunchTextEditorPageLD(
       
   401             CMuiuSettingBase& aBaseItem,
       
   402             TMuiuDynSetUpdateMode& aUpdateMode );
       
   403         TMuiuPageResult SettingLaunchNumberEditorPageLD(
       
   404             CMuiuSettingBase& aBaseItem,
       
   405             TMuiuDynSetUpdateMode& aUpdateMode );
       
   406         TMuiuPageResult SettingLaunchScNumberEditorPageLD(
       
   407             CMuiuSettingBase& aBaseItem,
       
   408             TMuiuDynSetUpdateMode& aUpdateMode );
       
   409         TMuiuPageResult SettingLaunchMultilinePageL(
       
   410             CMuiuSettingBase& aBaseItem,
       
   411             TMuiuDynSetUpdateMode& aUpdateMode );
       
   412 
       
   413         /**
       
   414         *
       
   415         * @since S60 3.0
       
   416         */
       
   417         void SettingsCheckNextEditorOpen(
       
   418             TMuiuPageResult& aResult );
       
   419 
       
   420         // Setting page creation
       
   421 
       
   422         /**
       
   423         * Creates editor of spesific type
       
   424         * @since S60 3.0
       
   425         */
       
   426         void SettingCreateEditorL(
       
   427             CMuiuSettingBase& aBaseItem,
       
   428             TMuiuDynSetUpdateMode& aUpdateMode );
       
   429         void SettingCreateRadioButtonPageL(
       
   430             CMuiuSettingBase& aBaseItem,
       
   431             TMuiuDynSetUpdateMode& aUpdateMode );
       
   432         void SettingCreateCheckboxPageL(
       
   433             CMuiuSettingBase& aBaseItem,
       
   434             TMuiuDynSetUpdateMode& aUpdateMode );
       
   435         void SettingCreatePlainTextEditorPageL(
       
   436             CMuiuSettingBase& aBaseItem,
       
   437             TMuiuDynSetUpdateMode& aUpdateMode );
       
   438         void SettingCreatePasswordTextEditorPageL(
       
   439             CMuiuSettingBase& aBaseItem,
       
   440             TMuiuDynSetUpdateMode& aUpdateMode );
       
   441         void SettingCreatePlainNumberEditorPageL(
       
   442             CMuiuSettingBase& aBaseItem,
       
   443             TMuiuDynSetUpdateMode& aUpdateMode );
       
   444         void SettingCreateScNumberEditorPageL(
       
   445             CMuiuSettingBase& aBaseItem,
       
   446             TMuiuDynSetUpdateMode& aUpdateMode );
       
   447 
       
   448         TMuiuDynSetUpdateMode DefineDefaultSettingPageL(
       
   449             const CMuiuSettingBase& aBase );
       
   450         void SettingCreateButtonArrayL(
       
   451             CMuiuDynSetItemArray& aButtonArray );
       
   452         void SettingCreateCheckboxArrayL(
       
   453             CMuiuDynSetItemArray& aButtonArray );
       
   454 
       
   455         // Setting page acquiring
       
   456 
       
   457         /**
       
   458         *
       
   459         * @since S60 3.0
       
   460         */
       
   461         void SettingPrepareAcquireL(
       
   462             TMuiuDynSetUpdateMode& aUpdateMode,
       
   463             CMuiuSettingBase& aBaseItem );
       
   464 
       
   465         /**
       
   466         *
       
   467         * @since S60 3.0
       
   468         */
       
   469         void SettingPrepareAcquireRadioButtonPageL(
       
   470             CMuiuSettingBase& aBaseItem );
       
   471 
       
   472         /**
       
   473         *
       
   474         * @since S60 3.0
       
   475         */
       
   476         void SettingPrepareAcquireCheckboxPageL(
       
   477             CMuiuSettingBase& aBaseItem );
       
   478 
       
   479         /**
       
   480         *
       
   481         * @since S60 3.0
       
   482         */
       
   483         void SettingPrepareAcquireTextEditorPageL(
       
   484             CMuiuSettingBase& aBaseItem );
       
   485 
       
   486         /**
       
   487         *
       
   488         * @since S60 3.0
       
   489         */
       
   490         void SettingPrepareAcquireValueEditorPageL(
       
   491             CMuiuSettingBase& aBaseItem );
       
   492 
       
   493 
       
   494         // Setting initialization
       
   495 
       
   496         /**
       
   497         *
       
   498         * @since S60 3.0
       
   499         */
       
   500         TInt InitArrayLink(
       
   501             CMuiuSettingBase& aBaseItem,
       
   502             const TMuiuSettingsText* aText );
       
   503         TInt InitArrayRadioButton(
       
   504             CMuiuSettingBase& aBaseItem,
       
   505             const TInt aValue,
       
   506             const TMuiuSettingsText* aText );
       
   507         TInt InitArrayCheckBox(
       
   508             CMuiuSettingBase& aBaseItem,
       
   509             const TInt aValue,
       
   510             const TMuiuSettingsText* aText );
       
   511         TInt InitItemTextEdit(
       
   512             CMuiuSettingBase& aBaseItem,
       
   513             const TMuiuSettingsText* aText );
       
   514         TInt InitItemNumberEdit(
       
   515             CMuiuSettingBase& aBaseItem,
       
   516             const TInt aValue,
       
   517             const TMuiuSettingsText* aText );
       
   518 
       
   519         /**
       
   520         *
       
   521         * @since S60 3.0
       
   522         */
       
   523         void PrepareInit(
       
   524             CMuiuSettingBase& aBaseItem,
       
   525             const CMuiuDynInitItemValueArray* aValueArray,
       
   526             const CMuiuDynInitItemTextArray* aDescArray,
       
   527             const CMuiuDynInitInfoArray* aInitInfoArray,
       
   528             TInt& aValueIndex,
       
   529             TInt& aTextIndex,
       
   530             TInt aIndex );
       
   531 
       
   532         /**
       
   533         *
       
   534         * @since S60 3.0
       
   535         */
       
   536         TInt EventPrepareSubArrayL(
       
   537             CMuiuSettingBase& aBaseItem,
       
   538             const TBool aForward = ETrue );
       
   539 
       
   540         /**
       
   541         * Gets the previous stored value and removes it
       
   542         * @since S60 3.0
       
   543         * @return Last index
       
   544         */
       
   545         TInt SettingsLastItemIndex( const TBool aRemove = ETrue ) const;
       
   546 
       
   547         /**
       
   548         * Adds current itemindex to stack
       
   549         * @since S60 3.0
       
   550         * @param aSettingsLastItemIndex, new index
       
   551         */
       
   552         void SetSettingsLastItemIndexL( const TInt aLastItemIndex );
       
   553 
       
   554         /**
       
   555         *
       
   556         * @since S60 3.0
       
   557         */
       
   558         CMuiuSettingBase* CurrentSettingsPage(
       
   559             const TBool aRemove = EFalse );
       
   560 
       
   561         /**
       
   562         *
       
   563         * @since S60 3.0
       
   564         */
       
   565         void SetCurrentSettingsPage(
       
   566             CMuiuSettingBase& aBaseItem );
       
   567 
       
   568         // Backing up
       
   569 
       
   570         /**
       
   571         *
       
   572         * @since S60 3.0
       
   573         */
       
   574         void BackupItemCreateLinkL(
       
   575             const CMuiuSettingBase& aBaseItem );
       
   576         void BackupItemCreateRadioL(
       
   577             const CMuiuSettingBase& aBaseItem );
       
   578         void BackupItemCreateValueL(
       
   579             const CMuiuSettingBase& aBaseItem );
       
   580         void BackupItemCreateTextL(
       
   581             const CMuiuSettingBase& aBaseItem );
       
   582         void BackupItemCreateUndefinedL(
       
   583             const CMuiuSettingBase& aBaseItem );
       
   584 
       
   585         /**
       
   586         *
       
   587         * @since S60 3.0
       
   588         */
       
   589         virtual CMuiuSettingBase* CreateItemForBackupL(
       
   590             const CMuiuSettingBase& aBaseItem );
       
   591 
       
   592         /**
       
   593         *
       
   594         * @since S60 3.0
       
   595         */
       
   596         TMuiuPageResult HandleEditorCancel();
       
   597 
       
   598         /**
       
   599         *
       
   600         * @since S60 3.0
       
   601         */
       
   602         TMuiuPageResult HandleEditorOk();
       
   603 
       
   604         /**
       
   605         *
       
   606         * @since S60 3.0
       
   607         */
       
   608         TMuiuPageResult HandleEditorDisapproved();
       
   609 
       
   610     private:  // Functions from base classes
       
   611 
       
   612         // CMuiuDynamicSettingsArray
       
   613         TInt EventArrayChangedL(
       
   614             const TMuiuArrayEvents aEvent );
       
   615 
       
   616         TBool EventCustomMdcaPoint(
       
   617             const TUid& aId,
       
   618             TPtr& aString ) const;
       
   619 
       
   620     public:     // Data
       
   621     protected:  // Data
       
   622 
       
   623         // DIALOG REFERENCES
       
   624         // The listbox that is shown in view for user
       
   625         CEikFormattedCellListBox& iListBox;
       
   626         // Used titlepane in settings dialog
       
   627         CAknTitlePane&      iTitlePane;
       
   628         // Buttons used to show in the dialog
       
   629         CIMSSoftkeyControl* iSoftkeys;
       
   630         // Temporary storage for settings page
       
   631         CAknSettingPage*        iSettingPage;        
       
   632 
       
   633     private:    // Data
       
   634 
       
   635         enum TDynSettingsFlags
       
   636             {
       
   637             EMuiuDynSetStartIssued = 0,
       
   638             EMuiuDynSetRunningCustomPage,
       
   639             };
       
   640 
       
   641         // RESOURCES
       
   642         // Status flags
       
   643         TMuiuFlags          iDynSettingsFlags;
       
   644         // Container for resource page ids
       
   645         CIMSPageResourceControl* iSettingPageResources;
       
   646         // Container array for items to be edited
       
   647         CMuiuDynSetItemArray* iSettingsPageArray;
       
   648 
       
   649         // DIALOG
       
   650         // Pointer to scrollbar used in settings page
       
   651         CEikScrollBarFrame* iScrollBar;
       
   652         // Temporary place to store the previous titlepane text
       
   653         HBufC*              iOldTitleText;
       
   654         // Object for query dialog
       
   655         CAknQueryDialog*    iQueryDialog;
       
   656 
       
   657         // SETTING PAGE
       
   658         // Previous location of cursor
       
   659         CMuiuDynSetIntArray*    iSettingsLastItemIndex;
       
   660         // Temporary value for setting page
       
   661         TInt                    iSettingValue;
       
   662         // Temporary text for setting page
       
   663         TMuiuSettingsText*      iSettingText;
       
   664         // Temporary text for password setting page
       
   665         TMuiuPasswordText*      iNewPassword;
       
   666         // Temporary text for password setting page
       
   667         TMuiuPasswordText*      iOldPassword;
       
   668         // Temporary array for buttons
       
   669         CDesCArrayFlat*         iButtonArray;
       
   670         // Temporary array for checkboxes
       
   671         CSelectionItemList*     iCheckboxArray;
       
   672         // Array to temporary store the items to be edited
       
   673         CMuiuDynSetItemArray*   iBackupArray;
       
   674         // Index to focused list box item
       
   675         TInt                    iCurrentItemIndex; 
       
   676         CMuiuFlags*             iFeatureFlags; 
       
   677     };
       
   678 
       
   679 #endif // MUIUDYNAMICSETTINGSDIALOG_H
       
   680 
       
   681 // End of File