diff -r 000000000000 -r 094583676ce7 wvuing/wvuieng/EngInc/MCASettings.h --- /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 +#include + +// 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* 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* 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* 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