--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/wvuieng/EngInc/MCASettings.h Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,269 @@
+/*
+* Copyright (c) 2002-2005 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: Interface for settings
+*
+*/
+
+
+#ifndef MCASETTINGS_H
+#define MCASETTINGS_H
+
+// INCLUDES
+#include "PublicEngineDefinitions.h"
+
+#include <e32std.h>
+#include <e32property.h>
+
+// FORWARD DECLARATIONS
+class MCASettingsObserver;
+class CIMPSSAPSettings;
+
+
+// Default nick name
+_LIT( KCADefaultNick, "IMDefaultNick" );
+// Table of userId specific Aliases
+_LIT( KCAOwnAlias, "IMOwnAlias" );
+// Authorize IM presence
+_LIT( KCAAuthIMPr, "IMAuthIMPr" );
+// Receive instant messages
+_LIT( KCAReceiveIMessages, "IMReceiveIMessages" );
+// Receive invitations
+_LIT( KCAReceiveInvitations, "IMReceiveInvitations" );
+// Message flow
+_LIT( KCAMsgFlow, "IMMsgFlow" );
+// Auto update
+_LIT( KCAAutoUpd, "IMAutoUpd" );
+// Auto update
+_LIT( KCAFriendsListOrdering, "IMFriendsListOrdering" );
+// Order alphabetically
+_LIT( KCAOrderAlpha, "IMOrderAlpha" );
+
+// Show first login done
+_LIT( KCAFirstLoginDone, "IMFistLoginDone" );
+// Default screen name in use
+_LIT( KCADefaultScreenNameInUse, "IMDefaultScreenNameInUse" );
+// Automatic presence update
+_LIT( KCAAutomaticPresenceUpdate, "IMAutomaticPresenceUpdate" );
+// Update selected contacts
+_LIT( KCAUpdateSelectedContacts, "IMUpdateSelectedContacts" );
+// Show history
+_LIT( KCAShowHistory, "IMUpdateSelectedContacts" );
+// Show offline friends
+_LIT( KCAShowOffline, "IMShowOffline" );
+// Show timestamps
+_LIT( KCAShowTimeStamps, "IMShowTimeStamps" );
+
+//
+
+// CLASS DECLARATION
+
+/**
+* Interface for internal settings handler.
+*
+*
+* @lib CAEngine.lib
+* @since 1.2
+*/
+class MCASettings
+ {
+ public: // Setting enums. Don't change the base enums!
+
+ // enumerations for setting items' values
+ // (authorize presence, receive imessages, receive invitations)
+ enum TCASettingValues
+ {
+ EAll = 0,
+ EFriends,
+ ENobody
+ };
+
+ // enumerations for friends list ordering setting items' values
+ enum TCAFriendsListOrdering
+ {
+ EAlphabetical = 0,
+ EPresence
+ };
+
+ // boolean setting items
+ enum TCASettingFlags
+ {
+ EFlagsBase = 1,
+
+ EFirstLoginDone,
+ EDefaultScreenNameInUse,
+ EAutomaticPresenceUpdate,
+ EUpdateSelectedContacts,
+ EShowHistory,
+ EShowOffline,
+ EShowTimeStamps
+ };
+
+ // integer setting items
+ enum TCASettingIntegers
+ {
+ EIntegersBase = 1000,
+
+ EAuthorizeIMPresence,
+ EReceiveIMessages,
+ EReceiveInvitations,
+ EMessageFlowSettingLevel,
+ EFriendsListOrdering
+ };
+
+ // string setting items
+ enum TCASettingStrings // For strings add max length to enum value
+ {
+ EStringsLengthShift = 8,
+ EStringsEnumMask = 0xff,
+ EStringsLengthMask = 0xffff00,
+ EStringsBase = 0x1000000,
+ EDefaultScreenNameBase = 0x1000001,
+ EOwnWVUserIDBase = 0x1000002,
+ EOwnAliasBase = 0x1000003,
+ EServiceAddressBase = 0x1000004,
+ EStatusMsgOnlineBase = 0x1000005,
+ EStatusMsgAwayBase = 0x1000006,
+ EStatusMsgBusyBase = 0x1000007,
+
+ EDefaultScreenName = EDefaultScreenNameBase
+ + ( KWScreenNameMaxLength << EStringsLengthShift ),
+
+ EOwnWVUserID = EOwnWVUserIDBase
+ + ( KWVUserIDMaxLength << EStringsLengthShift ),
+
+ EOwnAlias = EOwnAliasBase
+ + ( KWScreenNameMaxLength << EStringsLengthShift ),
+
+ EServiceAddress = EServiceAddressBase +
+ ( KWVUserIDMaxLength << EStringsLengthShift ),
+
+ EStatusMsgOnline = EStatusMsgOnlineBase +
+ ( RProperty::KMaxPropertySize << EStringsLengthShift ),
+
+ EStatusMsgAway = EStatusMsgAwayBase +
+ ( RProperty::KMaxPropertySize << EStringsLengthShift ),
+ EStatusMsgBusy = EStatusMsgBusyBase +
+ ( RProperty::KMaxPropertySize << EStringsLengthShift )
+ };
+
+ public:
+
+ /**
+ * Adds settings observer to the observer list.
+ * @param aObserver specifies the observer.
+ */
+ virtual void AddObserverL( const MCASettingsObserver* aObserver ) = 0;
+
+ /**
+ * Removes the observer from the list.
+ * @param aObserver specifies the observer that gets removed.
+ */
+ virtual void RemoveObserver(
+ const MCASettingsObserver* aObserver ) = 0;
+
+ /**
+ * Retrieves value.
+ * @param aSetting specifies the wanted setting.
+ * @return Boolean value.
+ */
+ virtual TBool Value( TCASettingFlags aSetting,
+ CIMPSSAPSettings* aSap = NULL ) = 0;
+
+ /**
+ * Retrieves value.
+ * @param aSetting specifies the wanted setting.
+ * @return Integer value.
+ */
+ virtual TInt Value( TCASettingIntegers aSetting,
+ CIMPSSAPSettings* aSap = NULL ) = 0;
+
+ /**
+ * Retrieves value.
+ * Ownership is transferred to caller!!!
+ * @param aSetting specifies the wanted setting.
+ * @return String value.
+ */
+ virtual HBufC* ValueL( TCASettingStrings aSetting,
+ CIMPSSAPSettings* aSap = NULL ) = 0;
+
+ /**
+ * Sets a value.
+ * @param aSetting specifies the wanted setting.
+ * @param aValue specifies the value we want to store.
+ * @param aIgnoreRollback Don't perform rollback operation on these
+ * errors
+ * NULL if rollback is wanted in every error situation.
+ */
+ virtual void SetValueL( TCASettingFlags aSetting, TBool aValue,
+ RArray<TInt>* aIgnoreRollback = NULL,
+ CIMPSSAPSettings* aSap = NULL ) = 0;
+
+ /**
+ * Sets a value.
+ * @param aSetting specifies the wanted setting.
+ * @param aValue specifies the value we want to store.
+ * @param aIgnoreRollback Don't perform rollback operation on these
+ * errors
+ * NULL if rollback is wanted in every error situation.
+ */
+ virtual void SetValueL( TCASettingIntegers aSetting, TInt aValue,
+ RArray<TInt>* aIgnoreRollback = NULL,
+ CIMPSSAPSettings* aSap = NULL ) = 0;
+
+ /**
+ * Sets a value.
+ * @param aSetting specifies the wanted setting.
+ * @param aValue specifies the value we want to store.
+ * @param aIgnoreRollback Don't perform rollback operation on
+ * these errors
+ * NULL if rollback is wanted in every error situation.
+ */
+ virtual void SetValueL( TCASettingStrings aSetting, const TDesC& aValue,
+ RArray<TInt>* aIgnoreRollback = NULL,
+ CIMPSSAPSettings* aSap = NULL ) = 0;
+
+ /**
+ * Flushes data from memory to persistent storage
+ */
+ virtual void FlushData() = 0;
+
+ /**
+ * Sets the default sap
+ */
+ virtual void SetDefaultSapL( CIMPSSAPSettings* aSap ) = 0;
+
+ /**
+ * Retrieves the own alias value.
+ * Ownership is transferred!
+ * @return current alias value
+ */
+ virtual HBufC* OwnAliasL() = 0;
+
+ /**
+ * Sets the new alias attribute.
+ * @param aAlias new alias attribute.
+ */
+ virtual void SetOwnAliasL( const TDesC& aAlias ) = 0;
+
+ protected:
+
+ /**
+ * Destructor.
+ */
+ virtual ~MCASettings() {};
+ };
+
+#endif // MCASETTINGS_H
+
+// End of File