email/imum/Utils/Inc/IMSSettingsBaseUi.h
changeset 0 72b543305e3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/email/imum/Utils/Inc/IMSSettingsBaseUi.h	Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,297 @@
+/*
+* Copyright (c) 2006 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:  IMSSettingsBaseUI.h
+*
+*/
+
+
+
+#ifndef IMSSETTINGSBASEUI_H
+#define IMSSETTINGSBASEUI_H
+
+// INCLUDES
+#include <e32base.h>
+#include <coedef.h>                 // TKeyResponse
+#include <w32std.h>                 // TKeyEvent
+#include <msvapi.h>                 // CMsvSession
+#include <StringLoader.h>           // StringLoader
+#include "MuiuDynamicSettingsDialog.h"
+
+#include "IMSSettingsItemAccessPoint.h" // CIMSSettingsAccessPointItem
+#include "ImumMboxManager.h"     // CImumMboxManager
+#include "IMASPageIds.hrh"           // TIMASettigsId
+#include "IMSSettingsUi.h"
+
+// CONSTANTS
+// MACROS
+// DATA TYPES
+// FUNCTION PROTOTYPES
+// FORWARD DECLARATIONS
+class CIMSSettingsItemApprover;
+class CIMSSettingsNoteUi;
+class CImumMboxDefaultData;
+
+// CLASS DECLARATION
+
+/**
+*
+*  @lib
+*  @since S60 3.0
+*/
+class CIMSSettingsBaseUI :
+    public CMuiuDynamicSettingsDialog
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * Destructor
+        * @since S60 3.0
+        */
+        virtual ~CIMSSettingsBaseUI();
+
+    public:  // New virtual functions
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        virtual CMuiuSettingBase* GetUninitializedItem(
+            const TUid& aId );
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        virtual void GetHelpContext( TCoeHelpContext& aContext ) const;
+
+    public: // New functions
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        void DoQuitL();
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        TBool Flag( TUint aFlag );
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        void SetFlag( TUint aFlag );
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        void ClearFlag( TUint aFlag );
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        void ChangeFlag(
+            TUint aFlag,
+            TBool aNewState );
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        const CMuiuFlags& Flags();
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        TInt FindItem(
+            CIMSSettingsAccessPointItem*& aItem,
+            const TUid& aId );
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        TInt FindItem(
+            CMuiuSettingsLinkExtended*& aItem,
+            const TUid& aId );
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        CMuiuSettingBase* CreateItemForBackupL(
+            CMuiuSettingBase& aBaseItem );
+
+        /**
+         * Returns the id of the editable mailbox
+         *
+         * @since S60 v3.2
+         * @return Mailbox Id
+         */
+        virtual TMsvId CurrentMailboxId();
+
+    public: // Functions from base classes
+
+        TKeyResponse OfferKeyEventL(
+            const TKeyEvent& aKeyEvent,
+            TEventCode aType );
+
+        void ProcessCommandL( TInt aCommandId );
+
+        virtual TBool OkToExitL( const TInt aButtonId ) = 0;
+
+        /**
+        * Moves data from the UI to settings data object
+        * @since S60 3.0
+        */
+        virtual void StoreSettingsToAccountL(
+            CImumInSettingsData& aSettings ) = 0;
+
+    protected:  // Constructors
+
+        /**
+        * Default constructor for classCIMSSettingsBaseUI
+        * @since S60 3.0
+        * @return, Constructed object
+        */
+        CIMSSettingsBaseUI(
+            CIMSSettingsUi& aDialog,
+            CImumInternalApiImpl& aEmailApi,
+            CEikFormattedCellListBox& aListBox,
+            CAknTitlePane& aTitlePane,
+            CMuiuFlags& aFlags );
+
+        /**
+        * Symbian 2-phase constructor
+        * @since S60 3.0
+        */
+        void BaseUiConstructL(
+            CEikButtonGroupContainer& aSoftkeys,
+            const TInt aSettingResourceId = NULL,
+            const TBool aUpdateMSK = EFalse );
+
+    protected:  // New virtual functions
+
+        virtual TBool KeyPressSoftkey( const TInt aButton ) = 0;
+        virtual TBool KeyPressOKButtonL( const TInt aButton ) = 0;
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        virtual CMuiuSettingBase* CreateCustomItemToArrayLC(
+            const TUid& aId );
+
+    protected:  // New functions
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        inline TUid ToUid( const TUint32 aId ) const;
+
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        inline TInt SafeStringLoad( const TInt aResource,
+            					    HBufC*& aString ) const;
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        void HidePermanently( CMuiuSettingBase& aBase,
+            				  const TBool aNewState );
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        void HidePermanently( const TUid& aId,
+            				  const TBool aNewState );
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        void SetItemIapItemL(
+            CIMSSettingsAccessPointItem& aIapItem );
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        void UpdateAccessPointItem( CMuiuSettingBase& aBaseItem );
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        void SetReadOnly(
+            const TUid& aId,
+            const TBool aNewState );
+
+    protected:  // Functions from base classes
+
+    private:  // New virtual functions
+
+        virtual TBool EventHandlerL( const TInt aCommandId );
+
+    private:  // New functions
+
+        /**
+        * Creates default data object and load the data from CenRep
+        * @since S60 3.0
+        * @return Default data -object
+        */
+        CImumMboxDefaultData* RestoreDefaultSettingsDataL();
+
+    private:  // Functions from base classes
+
+        // CMuiuDynamicSettingsDialog
+        void HandleSettingPageEventL(
+            CAknSettingPage* aSettingPage,
+            TAknSettingPageEvent aEventType );
+
+    public:     // Data
+    protected:  // Data
+
+        // Flags for the wizard
+        CMuiuFlags&             iBaseUiFlags;
+        // Dialog that owns the settings
+        CIMSSettingsUi&         iDialog;
+        // Reference to mailbox api
+        CImumInternalApiImpl&       iMailboxApi;
+        // Pointer to class that validates given item
+        CIMSSettingsItemApprover* iItemApprover;
+        // Class to handle notes in UI
+        CIMSSettingsNoteUi*     iNoteUi;
+        // Class to contain default settings data
+        CImumMboxDefaultData*       iDefaultData;
+
+    private:    // Data
+    };
+
+#include "IMSSettingsBaseUi.inl"
+
+#endif      // IMSSETTINGSBASEUI_H
+
+// End of File