mobilemessaging/smum/inc/SmumSettingsDialogGSM.h
changeset 0 72b543305e3a
child 9 1d7827e39b52
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mobilemessaging/smum/inc/SmumSettingsDialogGSM.h	Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,338 @@
+/*
+* Copyright (c) 2002 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:  
+*     Main settings dialog for Sms.
+*
+*/
+
+
+
+#ifndef SMUMSETTINGSDIALOGGSM_H
+#define SMUMSETTINGSDIALOGGSM_H
+
+//  INCLUDES
+#include <smumsettingsdialog.h> // CSmumSettingsDialog
+
+// CONSTANTS
+const TInt KSmumStringLength = 50;
+
+// FORWARD DECLARATIONS
+class CAknNavigationControlContainer;
+class CRepository;
+
+// MACROS
+
+// DATA TYPES
+enum TSmumSettingsValidityPeriod
+    {
+    ESmumValidityPeriodHour     = 0,
+    ESmumValidityPeriodSixHours = 1,
+    ESmumValidityPeriod24Hours  = 2,
+    ESmumValidityPeriod3Days    = 3,
+    ESmumValidityPeriodWeek     = 4,
+    ESmumValidityPeriodMaximum  = 5
+    };
+
+enum TSmumSettingsConversion
+    {
+    ESmumConversionNone = 0,
+    ESmumConversionFax = 1,
+    ESmumConversionPaging = 2
+    };
+
+enum TSmumSettingsDelivery
+    {
+    ESmumDeliveryImmediately = 0,
+    ESmumDeliveryUponRequest = 1
+    };
+
+enum TSmumConnectionType
+    {
+    ESmumPreferGSMConnection = 0, 
+    ESmumPreferGPRSConnection = 1
+    };
+
+// LBI = ListBoxIndex
+enum TSmumMainSmsSettingsSettingLBIndex
+    {
+    ESmumServiceCentresLBI,      //= 0
+    ESmumServiceCentreInUseLBI,  //= 1
+	ESmumEmailServiceCentreLBI,  //= 2,
+    ESmumCharSupportInUseLBI,    //= 3
+    ESmumDeliveryReportLBI,      //= 4
+    ESmumValidityPeriodLBI,      //= 5
+    ESmumMessageConversionLBI,   //= 6
+    ESmumPreferredConnectionLBI, //= 7
+    ESmumReplyViaSameCentreLBI   //= 8
+    };
+
+enum TSmumMainSmsSendingOptSettingLBIndex
+    {
+    ESmumSendOptServiceCentreInUseLBI,  //= 0,
+    ESmumSendOptCharSupportInUseLBI,    //= 1,
+    ESmumSendOptDeliveryReportLBI,      //= 2,
+    ESmumSendOptValidityPeriodLBI,      //= 3,
+    ESmumSendOptMessageConversionLBI,   //= 4,
+    ESmumSendOptReplyViaSameCentreLBI   //= 5
+    };
+
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class CSmumSettingsArray;
+class CEikTextListBox;
+class CAknTitlePane;
+
+// CLASS DECLARATION
+
+/**
+*  SMUM's main sms settings dialog.
+*/
+NONSHARABLE_CLASS( CSmumMainSettingsDialogGSM ) : public CSmumMainSettingsDialog
+    {
+    public:  // Constructors and destructor
+      
+        /**
+        * Two-phased constructor.
+        */
+        static CSmumMainSettingsDialog* NewL(
+            CSmsSettings& aSettings,
+            TInt aTypeOfSettings,
+            TInt& aExitCode,
+            TInt& aCharSetSupportForSendingOptions,
+            CSmsHeader* aSmsHeader = NULL );
+    
+        /**
+        * Destructor.
+        */
+        ~CSmumMainSettingsDialogGSM();
+
+    protected:  // Functions from base classes
+        
+        /**
+        * From CAknDialog 
+        */
+        void ProcessCommandL(TInt aCommandId);
+        
+        /**
+        * From CEikDialog
+        */
+        void PreLayoutDynInitL();
+
+        /**
+        * From CEikDialog
+        */
+        TBool OkToExitL(TInt aButtonId);
+
+        /**
+        * From CEikDialog
+        */
+        void DynInitMenuPaneL(TInt aMenuId, CEikMenuPane* aMenuPane);
+
+        /**
+        * From MEikListBoxObserver
+        */
+        void HandleListBoxEventL(
+            CEikListBox* aListBox, 
+            TListBoxEvent aEventType );
+
+        /**
+        * From CAknDialog
+        */
+        TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
+
+        /**
+        * From CCoeControl, returns help context
+        */
+        void GetHelpContext(TCoeHelpContext& aContext) const;        
+
+        /**
+        * From CEikDialog
+        */ 
+	    void HandleResourceChange( TInt aType );
+
+    private: // New functions
+        enum TCSPSupportedSettings
+            {
+            // Support for validity period
+            EValidityPeriodSupport  = 0x0001,
+            // Support for Protocol ID "Message conversion"
+            EProtocolIDSupport      = 0x0002,
+            // Support for delivery repot
+            EDeliveryReportSupport  = 0x0004,
+            // Support for Reply Path "Reply via same centre"
+            EReplyPathSupport      = 0x0008,
+            };
+
+        /**
+        * Initializing the values for listboxes in Sms Settings from Sms settings.
+        * @param none
+        * @return nothing
+        */
+        void OpeningDialogL();
+
+        /**
+        * Updating the values from listboxes to Sms settings.
+        * @param none
+        * @return nothing
+        */
+        void ClosingDialogL();
+
+        /**
+        * Launch Service Centres dialog.
+        * @param none
+        * @return TInt button id
+        */
+        TInt LaunchServiceCentresDialogL();
+
+        /**
+        * Updating "SC in use" dynamic array. 
+        * @param none
+        * @return nothing
+        */
+        void UpdateSCInUseArrayL();
+
+        /**
+        * Check what to open depending the focus of listbox
+        * @param TBool aEnterPressed
+        * @return nothing
+        */
+        void CheckOpeningListBoxItemL(TBool aEnterPressed);
+
+        /**
+        * Set item to listbox.
+        * @param TInt aSettingLBIndex, TInt aValue
+        * @return nothing
+        */
+        void SetItem(TInt aSettingLBIndex, TInt aValue);// new method
+
+        /**
+        * Get item value from listbox.
+        * @param TInt TInt aSettingLBIndex
+        * @return TInt
+        */        
+        TInt Item(TInt aSettingLBIndex) const;// new method
+
+        /** 
+        * Launches help application
+        */
+        void LaunchHelpL();
+
+        /** 
+        * Returns the index of variated listbox selection
+        * @since 2.6
+        * @param aListSelection, listbox selection
+        * @return TInt, variated index of selection
+        */
+        TInt GetVariatedSelectionIndex( 
+            const TInt aListSelection ) const;
+        
+        /** 
+        * Delete not supported settings according to CSP bits 
+        * and Email over sms feature
+        * @since 2.6
+        */
+        void DeleteVariatedSettings();
+
+        /** 
+        * Deletes one single setting item from settings arrays
+        * @since 2.6
+        * @param aIndex index of the setting in array that will be removed
+        */
+        void DeleteSettingItemFromArrays( TInt aIndex );
+        
+        /** 
+        * Read CSP bits from sim
+        * @since 2.6
+        */
+        void ReadCspSupportBitsL();
+    
+        /** 
+        * Reads the setting value and sets it to member variable
+        * @since 3.0
+        * @return TInt, 0 for Full charset support, 1 for Reduced
+        */
+        TInt ReadCharSetSupport();
+        
+		/** 
+        * Displays the configuration page for 
+        * Email Over Sms settings(SMSC and Email Gateway)
+        * @since 2.6
+        */
+        void DisplayEmailOverSmsSettingsL();
+        
+        /** 
+        * Updates the Middle Softkey 
+        * @since 3.1
+        */        
+        void UpdateMskL( );
+       
+        /** 
+        * Does delayed exit after specified delay
+        * @since S60 v5.0
+        * @param aDelayTime Requested delay in microseconds
+        */ 
+        void DoDelayedExitL( const TInt aDelay );
+        
+        /** 
+        * Used for exiting application properly
+        * @since S60 v5.0
+        * param aThis Pointer to this AppUi
+        */         
+        static TInt DelayedExit( TAny* aThis );
+
+    private :
+
+        /**
+        * C++ default constructor.
+        */
+        CSmumMainSettingsDialogGSM(
+            CSmsSettings& aSettings,
+            TInt aTypeOfSettings,
+            TInt& aExitCode,
+            TInt& aCharSetSupportForSendingOptions,
+            CSmsHeader* aSmsHeader = NULL );
+    
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+               
+    private:  // Data
+        CSmumSettingsArray*     iSettingsArray;
+        CEikTextListBox*        iListBox;
+        CSmsSettings&           iSettings;
+        TInt                    iTypeOfSettings;    // for knowing the type 0 = sms settings, 1 = send options, 2 = bio
+        TInt&                   iExitCode;
+        CSmsHeader*             iSmsHeader;         // for replypath handling
+        CAknTitlePane*          iTitlePane;         // for handling titlepanes
+        HBufC*                  iPreviousTitleText; // - " -
+        TBool                   iHelpFeatureSupported;
+        CAknNavigationControlContainer* iSmumNaviPane; //not owned
+        TUint                   iCSPFeatures;
+        CArrayFixFlat<TInt>*    iSettingsArrayIndex;
+        TInt&                   iCharacterSupport;
+        CRepository*            iCentralRapository;
+        CPeriodic*              iIdle; 
+        TBool                   iUseSimSCsOnly;
+        TBool                   iEmailFeatureSupported;
+        TInt 					iRemoveReplyScSetting;
+        TInt					iStoreSettingsIndex;
+        TInt                    iMskId;
+    };
+
+#endif      // SMUMSETTINGSDIALOGGSM_H   
+
+// End of File