--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mobilemessaging/unieditor/application/inc/UniSendingSettingsDialog.h Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,346 @@
+/*
+* Copyright (c) 2006,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: CUniSendingSettingsDialog class definition.
+*
+*/
+
+
+
+#ifndef UNISENDINGSETTINGSDIALOG_H
+#define UNISENDINGSETTINGSDIALOG_H
+
+// INCLUDES
+
+#include <AknForm.h>
+#include <msvapi.h> //for MMsvSessionObserver
+#include <eiklbo.h> // MEikListBoxObserver
+#include <ConeResLoader.h> // ResLoader
+
+#include <mmsconst.h> // MmsMessageDeliveryReport
+#include <muiusettingsarray.h>
+
+#include "UniSendingSettings.h"
+
+// CONSTANTS
+
+const TUint KColumnListSpace = ' ';//For getting the line on the listbox
+const TInt KUniSettingsSendRetryCount = 3;
+const TInt KUniSettingsSendRetryInterval = 600;
+const TInt KSettingsGranularity = 4;
+const TInt KUniUiLongestSettingLength = 100;
+
+// MACROS
+
+// DATA TYPES
+typedef TBuf<KUniUiLongestSettingLength> TUniSettingsText;
+
+// Enumerations for sending (=message) settings listbox
+enum
+ {
+ EUniSendingSettingsMessageType = 0,
+ EUniSendingSettingsCharSupport
+ };
+
+enum
+ {
+ EUniSettingsPriorityHigh = 0,
+ EUniSettingsPriorityNormal,
+ EUniSettingsPriorityLow
+ };
+
+enum
+ {
+ EUniSettingsYes = 0,
+ EUniSettingsNo
+ };
+
+enum
+ {
+ EUniSettingsCharSupportFull = 0,
+ EUniSettingsCharSupportReduced
+ };
+
+enum
+ {
+ EUniSettingsMessageTypeAutomatic = 0,
+ EUniSettingsMessageTypeText,
+ EUniSettingsMessageTypeMultimedia,
+ EUniSettingsMessageTypeFax,
+ EUniSettingsMessageTypePaging
+ };
+
+enum
+ {
+ EUniSettingsValidityPeriod1h = 0,
+ EUniSettingsValidityPeriod6h,
+ EUniSettingsValidityPeriod24h,
+ EUniSettingsValidityPeriod3d,
+ EUniSettingsValidityPeriodWeek,
+ EUniSettingsValidityPeriodMaximum
+ };
+
+enum
+ {
+ EUniSettingsContentNeedsMms = 0x01, // Show only MMS + Auto
+ EUniSettingsPermanentSms = 0x02, // Show only SMS + conversions
+ EUniSettingsPermanentMms = 0x04, // Show only MMS
+ EUniSettingsCSPBitsOn = 0x08, // Hide also conversions
+ EUniSettingsHideCharSet = 0x10, // Hide whole char set support
+ EUniSettingsHideMessageTypeOption = 0x20 // Hide message type option
+ };
+
+// FORWARD DECLARATIONS
+class CAknNavigationControlContainer;
+class CAknTitlePane;
+class CEikTextListBox;
+
+// CLASS DECLARATIONS
+
+/**
+ * Class CUniSettingsDialog
+ * Creates a dialog for editing uni sending settings. Values are from loc
+ * files. The actual setting values come from TUniSendingSettings.
+ * @since 3.1
+ */
+
+class CUniSendingSettingsDialog : public CAknDialog,
+ public MEikListBoxObserver
+ {
+ public:
+ enum TUniExitCode
+ {
+ EUniExit = 0,
+ EUniBack,
+ EUniExternalInterrupt,
+ EUniExitWithSave
+ };
+
+ public:
+ /**
+ * Constructor
+ * @param aClientMtm - client mtm instance. Note: context must be set
+ * to Uni service & LoadMessageL() called!
+ * @param aExitCode out - which command closed the dialog
+ */
+ CUniSendingSettingsDialog(
+ TInt aSettingsFlags,
+ TUniSendingSettings& aSendingSettings,
+ TUniExitCode& aExitCode,
+ CAknTitlePane& aTitlePane );
+
+ /**
+ * Destructor
+ */
+ ~CUniSendingSettingsDialog();
+
+ protected:
+
+ /**
+ * From CAknDialog
+ */
+ void ProcessCommandL( TInt aCommandId ) ;
+
+ /**
+ * From CEikDialog
+ */
+ TBool OkToExitL( TInt aKeyCode );
+
+ /**
+ * From CEikDialog
+ */
+ TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
+
+ /**
+ * From MEikListBoxObserver
+ */
+ void HandleListBoxEventL( CEikListBox* aListBox, TListBoxEvent aEventType );
+
+ /**
+ * From MEikMenuObserver Initializes items on the menu
+ *
+ * @param aMenuId Current menu's resource Id
+ * @param aMenuPane Pointer to menupane
+ */
+ void DynInitMenuPaneL(TInt aMenuId, CEikMenuPane* aMenuPane);
+
+ private:
+
+ /**
+ * From CEikDialog
+ * Sets the layout for the dialog. Called just before the dialog
+ * is activated
+ */
+ void PreLayoutDynInitL();
+
+ /**
+ * Gets the values for the uni message specific settings and store
+ * them to listbox.
+ */
+ void GetSendingSettingsValues();
+
+ /**
+ * Sets one listbox item to settings array.
+ * @param aIndex - index of the item
+ * @param aCurrentNumber - value of the item
+ */
+ void SetArrayItem( TInt aIndex, TInt aCurrentNumber );
+
+ /**
+ * Sets one listbox item to settings array.
+ * @param aIndex - index of the item
+ * @param aCurrentNumber - value of the item
+ * @param aUserText - formatted UI text
+ */
+ void SetArrayItem( TInt aIndex, TInt aCurrentNumber, const TDesC& aUserText );
+
+ /**
+ * Handles which settings is selected
+ * @param aIndex - index of the item
+ * @param aEnterPressed
+ */
+ void HandleEditRequestL( TInt aIndex, TBool aEnterPressed );
+
+ /**
+ * Edits the values of the
+ */
+ void EditMessagePriorityL();
+
+ /**
+ * Sets the values of the
+ */
+ void SetMessagePriorityL( TInt aPriority );
+
+ /**
+ * Edits the values of the
+ */
+ void EditDeliveryReportL( TBool aEnterPressed );
+
+ /**
+ * Edits the values of the
+ */
+ void EditMessageTypeL();
+
+ /**
+ * Sets the values of the
+ */
+ void SetMessageTypeL( TInt aMessageType );
+
+ /**
+ * Edits the values of the
+ */
+ void EditCharacterSupportL( TBool aEnterPressed );
+
+ /**
+ * Sets the values of the
+ */
+ void SetCharacterSupportL( TInt aCharSetSupport );
+
+ /**
+ * Edits the values of the
+ */
+ void EditValidityPeriodL();
+
+ /**
+ * Edits the values of the
+ */
+ void SetValidityPeriodL( TInt aMessageValidity );
+
+ /**
+ * Edits the values of the
+ */
+ void EditReplyViaSameCentreL( TBool aEnterPressed );
+
+ /**
+ * Sets the title text
+ */
+ void SetTitleTextL();
+
+ /**
+ * Finishing operations when closing the dialog.
+ * @return ETrue if save is not wanted
+ * EFalse if OK to save settings
+ */
+ TBool ClosingDialogL();
+
+ /**
+ * Does the exit operation for all
+ */
+ void ExitDialogL();
+
+ /**
+ * From CCoeControl, returns help context
+ */
+ void GetHelpContext( TCoeHelpContext& aContext ) const;
+
+ /**
+ * Launches help application
+ */
+ void LaunchHelpL();
+
+ /**
+ * Show information note
+ */
+ void ShowInformationNoteL( TInt aResourceId );
+
+ /**
+ * Checks which items are currently invisible and
+ * recalculates the index according to that
+ */
+ TInt OriginalIndexToVisibleIndex( TInt aOriginalIndex );
+
+ /**
+ * Checks which items are currently invisible and
+ * recalculates the index according to that
+ */
+ TInt VisibleIndexToOriginalIndex( TInt aVisibleIndex );
+
+ TInt InvisibleItems( TInt aIndex );
+
+ void UpdateMskL();
+
+ /**
+ * Executes settings page dialog
+ */
+ TBool ExecuteSettingsPageDialogL( CDesCArrayFlat* items,
+ TInt& aCurrentItem,
+ const TDesC& aLabelText );
+
+ private:
+
+ enum TSettingsDialogFlags
+ {
+ EShouldExit = 0x0001,
+ EGoingToExit = 0x0002,
+ EExitSelected = 0x0004,
+ ESwitchToExit = 0x0008,
+ EHelpFeatureSupported = 0x0010,
+ EDefaultNaviPane = 0x0040
+ };
+
+ CAknNavigationControlContainer* iNaviPane; //not owned
+ CMuiuSettingsArray* iItems;
+ HBufC* iPreviousTitleText;
+ CAknTitlePane& iTitlePane;
+ TUniExitCode& iExitCode; // pass exit code to caller
+ TUniSendingSettings& iSendingSettings;
+ CEikTextListBox* iListbox;
+ TInt iSettingsDialogFlags;
+ TInt iSettingsFlags;
+ TMuiuSettingsItem iCharacterSettings;
+ TMuiuSettingsItem iMessageTypeSettings;
+ };
+
+#endif //UNISENDINGSETTINGSDIALOG_H
+
+// End of File