--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/wvuieng/EngInc/MCAMessagesReadInterface.h Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,225 @@
+/*
+* Copyright (c) 2004 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 getting access to messages.
+*
+*/
+
+
+#ifndef __MCAMESSAGESREADINTERFACE_H__
+#define __MCAMESSAGESREADINTERFACE_H__
+
+#include <e32base.h>
+
+// FORWARD CLASS DECLERATIONS
+class MCAMessage;
+class MCAMessageObserver;
+class MCAMessageContainerInfo;
+class MCALoggerMessageHeader;
+
+// CLASS DECLARATION
+
+/**
+ * Interface for getting access to messages.
+ *
+ * @lib CAEngine.dll
+ * @since 3.0
+ */
+class MCAMessagesReadInterface
+ {
+
+ public: // Definitions
+
+ /**
+ * How many messages we want to change from unread to read.
+ */
+ enum TReadType
+ {
+ EReadAll,
+ EReadAmount,
+ EReadOne,
+ EReadInvalid
+ };
+
+ /**
+ * Type of container
+ */
+ enum TContainerType
+ {
+ ENoneContainer,
+ EGroupContainer,
+ EChatContainer,
+ ESendContainer
+ };
+
+ /**
+ *
+ */
+ enum TUnreadFilter
+ {
+ EUnreadAll,
+ EUnreadReceived
+ };
+
+ public: // Interface
+
+ /**
+ * Get count of unread messages.
+ * @param aUnreadFilter Show only received messages as unread or all.
+ * @return Amount of unread messages.
+ */
+ virtual TInt UnreadCount( TUnreadFilter aUnreadFilter = EUnreadAll ) const = 0;
+
+ /**
+ * Get count of readable messages.
+ * @return Amount of readable messages. Does not include unread messages.
+ */
+ virtual TInt MessageCount() const = 0;
+
+ /**
+ * Move unread messages to read.
+ * @param aReadType Type of read. EReadAll, EReadAmount, EReadOne
+ * @param aReadAmount Amount of messages to move from unread to read.
+ * Default 0, Needed if TReadAmount is used.
+ */
+ virtual void Read( TReadType aReadType, TInt aReadAmount = 0 ) = 0;
+
+ /**
+ * Get message.
+ * @param aIndex, Index of message in messagearray.
+ * @return Reference to message.
+ */
+ virtual MCAMessage& Message( TInt aIndex ) const = 0;
+
+ /**
+ * Get next unread message
+ * @return Reference to next unread message.
+ */
+ virtual MCAMessage& ReadNextUnread() = 0;
+
+ /**
+ * Read one unread message from index aIndex.
+ * @since S60 v3.2
+ * @param aIndex Index to wanted message.
+ * @return Reference to last unread message.
+ */
+ virtual MCAMessage& ReadUnreadFromIndex( TInt aIndex ) = 0;
+
+ /**
+ * Set observer for observing changes in messages container.
+ * Observer can handle different situations like e.g.
+ * containers destruction, messages arrival etc.
+ * @param aObserver Observer class to get notifications.
+ * Uninstall observer with passing NULL as parameter.
+ */
+ virtual void SetObserver( MCAMessageObserver* aObserver ) = 0;
+
+ /**
+ * Get name of chat.
+ * @return Name of chat.
+ */
+ virtual TPtrC Name() const = 0;
+
+ /**
+ * Delete message in index.
+ * @param aIndex, Index of message to be deleted.
+ * @param aFreeMemory, ETrue if message should be deleted. EFalse if ownership of message
+ * is transferred to caller. Remember to achieve
+ * @return Pointer to message if not ownership is tranferred to caller. NULL if not.
+ */
+ virtual void DeleteMessage( TInt aIndex ) = 0;
+
+ /**
+ * Starts logging in a specified group.
+ * @param aLogFileName is the file name which will be shown in the
+ * first line of the notepad memo (after end logging).
+ */
+ virtual void StartLoggingL( const TDesC& aLogFilename ) = 0;
+
+ /**
+ * Ends the logging in a specified group.
+ */
+ virtual void EndLoggingL() = 0;
+
+ /**
+ * Tests whether the logging is on or not.
+ * @return ETrue if on EFalse if not.
+ */
+ virtual TBool IsLoggingOn() const = 0;
+
+ /**
+ * Return index of message identified by operation code.
+ * @param aOperationCode Operation code to identify message
+ * @return Index of message. KErrNotFound, if not found.
+ */
+ virtual TInt FindIndex( TInt aOperationCode ) const = 0;
+
+ /**
+ * Return index of message identified by operation code.
+ * @param aMessage Message which index wanted to find.
+ * @return Index of message. KErrNotFound, if not found.
+ */
+ virtual TInt FindIndex( MCAMessage& aMessage ) const = 0;
+
+ /**
+ * Id information of message container.
+ * @return Container information.
+ */
+ virtual MCAMessageContainerInfo& TargetId() = 0;
+
+ /**
+ * Lock/unlock messages from deletion
+ * @param aLocked, ETrue locks, EFalse unlocks.
+ */
+ virtual void Lock( TBool aLocked ) = 0;
+
+
+ //fix - refer Ui Spec Approved Version 1.0
+ //(Instant Messaging NG 001 151006.pdf)
+ //Section 10.2.10 Pg 131 -
+ //"In case user has saved the image already or sent it
+ //by himself, this option(save) is not available."
+
+ /**
+ * Note : Please dont delete while merging the wvui20 changes
+ * Relogs the file and saves all the messages
+ * only if the file has become dirty.
+ * New implementation - Used if user saves an image
+ * in saved conversations that info is stored back on
+ * to the file and subsequently we dont allow resaving of the
+ * same image
+
+ /**
+ * Starts relogging. Sets logging on.
+ * @since 3.2
+ * @param aFile Header information.
+ */
+ virtual void ReLoggingL( MCALoggerMessageHeader& aFile ) = 0;
+
+ /**
+ * Ends Relogging. Close the file.
+ * Sets logging off.
+ * @since 3.2
+ */
+ virtual void EndReLoggingL() = 0;
+
+ protected: // For protection
+ /**
+ * Destructor for protection
+ */
+ virtual ~MCAMessagesReadInterface() {}
+ };
+
+#endif // __MCAMESSAGESREADINTERFACE_H__
+
+// End of File