uiservicetab/vimpstcmdprocess/inc/cvimpstprocessarrayitem.h
branchRCL_3
changeset 29 9a48e301e94b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uiservicetab/vimpstcmdprocess/inc/cvimpstprocessarrayitem.h	Wed Sep 01 12:33:36 2010 +0100
@@ -0,0 +1,1000 @@
+/*
+* Copyright (c) 2008 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:  CVIMPSTProcessContactItem, CVIMPSTProcessContactListItem, CVIMPSTProcessOwnDataItem, 
+*				 CVIMPSTProcessConversationItem
+*                are the different types of array items stored in the MCAMainViewArrayPC
+*
+*/
+
+
+
+#ifndef CVIMPSTPROCESSARRAYITEM_H
+#define CVIMPSTPROCESSARRAYITEM_H
+#include <e32base.h>
+
+#include "tvimpstenums.h"
+#include "cvimpstprocessarray.h"
+//  FORWARD DECLARATION
+class MVPbkContactLink;
+
+// CLASS DECLARATION
+
+/**
+* Base class for cimcontactitem, cimcontactlistitem, cimowndataitem
+* to be stored into an array of <CCAArrayItemPC> on the process component side.
+* The UI components will query for each item in this heterogeneous array to display 
+* information like contactlist, contact, conversation, groups etc in the listbox of 
+* the main view class
+* @lib vimpstcmdprocess.dll
+* @since 5.0
+*/
+class MVIMPSTProcessArrayItem
+    {
+     
+    public:
+    
+    /**
+    * Returns the default type of the listbox item 
+    * @return TEnumsPC::TItem: type of the listbox item as either EContactitem, EContactListItem etc
+    */
+    virtual TVIMPSTEnums::TItem Type() = 0;
+    
+    /**
+    * Returns the name of the listbox item 
+    * @return TPtrC: name of the listbox item to be displayed
+    */
+    virtual TPtrC GetItemNameText() = 0 ;
+    
+    /**
+    * Sets the name of the listbox item 
+    * @param aName: Name of the listbox item to be set
+    * @return void
+    */
+    
+    virtual void SetMsgPending(TBool aMsgPending) = 0;
+    
+    /**
+     * gets the messages pending status of the contact item 
+     * @return iSMsgPending: true if the contact has pending messages 
+     * else false
+     */
+    virtual TBool IsMsgPending() = 0 ;
+    
+    /**
+     * Sets the name of the listbox item 
+     * @param aName: Name of the listbox item to be set
+     * @return void
+     */
+
+    virtual void SetConversationOpen(TBool aConvOpen ) = 0;
+
+    /**
+     * gets the messages pending status of the contact item 
+     * @return iSMsgPending: true if the contact has pending messages 
+     * else false
+     */
+    virtual TBool IsConversationOpen() = 0 ;
+        
+    /**
+    * Returns the array index of the listbox item on engine/storage side
+    * @return TInt: index of the listbox item on engine/storage side
+    */
+    virtual TInt GetItemIndex() = 0;
+    
+    /**
+    * return the VPBK Contact Link
+    */
+    virtual MVPbkContactLink* ContactLink() = 0;  
+    
+    
+    /**
+    * Sets the on engine/storage side index of the listbox item 
+    * @param aIndex: index of the listbox item on engine/storage side
+    * @return void
+    */
+    virtual void SetItemIndex(TInt aIndex) = 0;
+    
+    /**
+    * Returns the user id of the listbox item 
+    * @return TPtrC: user id of the listbox item.
+    */
+    virtual TPtrC GetItemUserId() = 0 ;
+    /**
+     * Returns the avatar index of the listbox item 
+     * @return TInt: avatar index of the listbox item.
+     */
+    virtual TInt  AvatarIndex() = 0;
+    
+    /**
+     * sets the avatar index of the listbox item 
+     * @param aAvatarIndex: avatar index to be set 
+     */
+    virtual void  SetAvatarIndex(TInt aAvatarIndex ) = 0; 
+    
+    
+    /**
+     * returns status text of the contact
+     */
+    virtual const TDesC& StatusText() = 0;
+    
+    /**
+     * returns online status of the contact
+     */
+    virtual TVIMPSTEnums::TOnlineStatus OnlineStatus() = 0;
+    
+    
+    /**
+     * return formatted string needed for listbox for this item
+     */
+    virtual TPtrC16 FormattedItemString() = 0;
+    
+    
+    /*
+     * Format and Reformat the string for listbox
+     */
+    virtual void DoFormatStringL() = 0;
+    
+   
+    /**
+     * virtual destructor.
+     */
+    virtual ~MVIMPSTProcessArrayItem(){};    
+   
+    
+    };
+    
+/**
+* CCAContactItemPC is a structure that will encapsualte information on a contact 
+* item in the single array on the process component side.
+* @lib vimpstcmdprocess.dll
+* @since 5.0
+*/    
+class CVIMPSTProcessContactItem : public CBase,
+                                  public MVIMPSTProcessArrayItem
+    {
+    
+    public: // symbain constructor , destructor
+		
+		/**
+		 *  Creates a new instance of this class.
+		 * @param aContactId, reference to contactid.
+		 * @param aContactLink, pointer to Contactlink.		 
+		 * @return the ContactitemPC instance
+		 */
+    	static CVIMPSTProcessContactItem* NewL( CVIMPSTProcessArray& aParent, const TDesC& aContactName,
+					    						const TDesC& aContactId, 
+					    						MVPbkContactLink* aContactLink,
+					    						const TDesC& aStatusText,
+					    						TVIMPSTEnums::TOnlineStatus aOnlineStatus
+					    						);
+    	/**
+    	* symbain way of construction
+    	*/
+    	void ConstructL(  const TDesC& aContactId, 
+                          const TDesC& aContactName,
+                          const TDesC& aStatusText,
+                          TVIMPSTEnums::TOnlineStatus aOnlineStatus 
+                          );
+    	
+    	/**
+    	* destructor
+    	*/
+    	virtual ~CVIMPSTProcessContactItem();
+    	
+    private:
+
+		/**
+		* C++ default constructor
+	    * @param aContactId, reference to contactid.
+        * @param aContactLink, pointer to Contactlink.        
+		*/
+		CVIMPSTProcessContactItem( CVIMPSTProcessArray& aParent, MVPbkContactLink* aContactLink);
+
+    public:
+     //to be used later.
+	    /**
+	    * Returns the blocked status of the contact item 
+	    * @return bool: true if the contact item is blocked else false
+	    */
+	    //TBool IsBlocked();
+		   
+		/**
+		* Sets the blocked status of the contact item 
+		* @param aBlockedStatus: true if the contact is blocked else false
+		*/
+	    //void SetBlockedStatus(TBool aBlockedStatus);
+
+		/**
+		* Sets the messages pending status of the contact item 
+		* @param aPendingMessageStatus: true if the contact has pending messages 
+		* else false
+		*/
+	    void SetMsgPending(TBool aPendingMessageStatus);
+	    
+	   /**
+		* gets the messages pending status of the contact item 
+		* @return iSMsgPending: true if the contact has pending messages 
+		* else false
+		*/
+	    TBool IsMsgPending();
+	    
+	    /**
+	     * Sets the name of the listbox item 
+	     * @param aName: Name of the listbox item to be set
+	     * @return void
+	     */
+
+	    void SetConversationOpen(TBool aConvOpen ) ;
+
+	    /**
+	     * gets the messages pending status of the contact item 
+	     * @return iSMsgPending: true if the contact has pending messages 
+	     * else false
+	     */
+	    TBool IsConversationOpen() ;
+	    
+    public: //From MImArrayItem
+    
+	    /**
+	    * Returns the name of the contact item 
+	    * @return TPtrC: name of the contact item to be displayed
+	    */
+	    TPtrC GetItemNameText();
+	    
+	   /**
+	    * Returns the default type of the contact item 
+	    * @return TEnumsPC::TItem: type of the contact item as either 
+	    * EContactitem, EContactListItem etc
+	    */
+	    TVIMPSTEnums::TItem Type();
+    
+    	
+    	/**
+	    * Get the index of the contact item from engine side model
+	    * @return TInt, index
+	    */
+    	inline TInt GetItemIndex()   
+    		{ 	
+    		return iIndex;    
+    		}
+		
+		/**
+	    * Set the index of the contact item from engine side model
+	    * @param TInt, aIndex
+	    */
+	    inline void SetItemIndex(TInt aIndex) 	
+			{  
+			iIndex  = aIndex;
+			}
+		
+	   /**
+    	* @returns the VPBK Contact Link
+    	*/
+		inline MVPbkContactLink* ContactLink()
+			{
+			return iContactLink;
+			}
+			
+		
+	    /**
+	    * Returns the user id of the listbox item 
+	    * @return TPtrC: user id of the listbox item.
+	    */
+	    TPtrC GetItemUserId();
+	      
+	    /**
+	     * Returns the avatar index of the listbox item 
+	     * @return TInt: avatar index of the listbox item.
+	     */
+	     inline TInt  AvatarIndex() 
+	         {
+	         return iAvatarIndex;
+	         }
+	    
+	    /**
+	     * sets the avatar index of the listbox item 
+	     * @param aAvatarIndex: avatar index to be set 
+	     */
+	    inline void  SetAvatarIndex(TInt aAvatarIndex ) 
+	        {
+	        iAvatarIndex = aAvatarIndex;
+	        
+	        TRAP_IGNORE(DoFormatStringL());
+	        }
+	    
+	    /**
+	     * returns status text of the contact
+	     */
+	    const TDesC& StatusText();
+	    
+	    /**
+	     * returns online status of the contact
+	     */
+	    TVIMPSTEnums::TOnlineStatus OnlineStatus();
+	    
+	    /*
+	     * Format and Reformat the string for listbox
+	     */
+	    void DoFormatStringL();
+
+	    /**
+	     * return formatted string needed for listbox for this item
+	     */
+	    TPtrC16 FormattedItemString();	    
+    			
+    private:
+	    
+	    // Process Array
+	    CVIMPSTProcessArray& iParent;
+	    
+  	   /**
+	    * The name of the listbox item
+	    */
+	    HBufC* iItemNameTextContact;
+	    
+	    
+	    /**
+	    * The name of the listbox item
+	    */
+	    HBufC* iContactUserId;
+
+	   /**
+  	 	* Index of the item in engines model class
+  	 	*/
+  	 	TInt iIndex;
+  	 	
+  	 	//Not owned
+  	 	MVPbkContactLink* iContactLink; 	 	
+  	 	
+  	 	// ETrue if it has a pending message, else EFalse.
+  	 	TBool iSMsgPending;
+  	 	
+  	 	TBool iIsConversationOpen;
+  	 	
+ 	 	// avatar index
+  	 	TInt iAvatarIndex;
+  	 	
+  	 	// Status text Message
+  	 	HBufC* iStatusText;
+  	 	
+  	 	// Stores the status of the contact
+  	 	TVIMPSTEnums::TOnlineStatus iOnlineStatus;
+  	 	
+  	 	HBufC* iFormattedString;
+	        
+    };
+
+
+/**
+* CVIMPSTProcessContactListItem is a structure that will encapsualte information on a contact 
+* list in the single array on the process component side.
+* @lib vimpstcmdprocess.dll
+* @since 5.0
+*/ 
+class CVIMPSTProcessContactListItem : public CBase,
+                                      public MVIMPSTProcessArrayItem 
+    {
+    
+    public:
+       /**
+        * Creates a new instance of this class.
+		* @return the CVIMPSTProcessContactListItem instance
+		*/
+    	static CVIMPSTProcessContactListItem* NewL(CVIMPSTProcessArray& aParent);
+    	
+       /**
+    	* second phase constructor
+    	*/
+    	void ConstructL();
+    	
+       /**
+    	* destructor
+    	*/
+    	virtual ~CVIMPSTProcessContactListItem();
+
+	private:
+
+	   /**
+		* C++ default constructor
+		*/	
+   		CVIMPSTProcessContactListItem(CVIMPSTProcessArray& aParent);
+   		
+    public:
+    
+	    /**
+	    * Returns the expanded or collapsed state information of the contact list 
+	    * @return bool, true if the contact list is collapsed else return false
+	    */
+	    TBool IsCollapsed();
+	    
+	   	    
+	    /**
+		* Sets the collapsed/expanded state of the contact list
+		* @param aCollapsed, true if the contact list item is collapsed else false
+		*/
+		void SetCollapsed(TBool aCollapsed);
+	   	    
+	public: //From CImArrayItem
+
+		/**
+		* Returns the name of the contact list item 
+		* @return TPtrC, name of the contact item to be displayed
+		*/
+		TPtrC GetItemNameText();
+
+		/**
+		* Sets the name of the contact list item 
+		* @param aName: Name of the contact list item to be set
+		* @return void
+		*/
+		void SetItemNameText(const TDesC&);    
+
+		/**
+		* Returns the default type of the contact list item 
+		* @return TEnumsPC::TItem: type of the contact list item as either 
+		* EContactitem, EContactListItem etc
+		*/
+		TVIMPSTEnums::TItem Type();
+    	
+    	/**
+	    * Get the index of the contact item from engine side model
+	    * @return TInt: index
+	    */
+	    inline TInt GetItemIndex()   
+    		{ 	
+    		return iIndex;    
+    		}
+		
+		/**
+	    * Set the index of the contact item from engine side model
+	    * @param TInt: aIndex
+	    */
+	    inline void SetItemIndex(TInt aIndex) 	
+			{  
+			iIndex  = aIndex;
+			}
+    	
+	    /**
+         * @return the VPBK Contact Link
+         */
+    	inline MVPbkContactLink* ContactLink()
+			{
+			return 0;
+			}
+		
+       /**
+        * Returns the user id of the listbox item 
+        * @return TPtrC: user id of the listbox item.
+        */
+        inline TPtrC GetItemUserId()
+            {
+            return KNullDesC();
+            }
+        /**
+         * Returns the avatar index of the listbox item 
+         * @return TInt: avatar index of the listbox item.
+         */
+        inline TInt  AvatarIndex() 
+            {
+            return KErrNone; // always return zero
+            }
+
+        /**
+         * sets the avatar index of the listbox item 
+         * @param aAvatarIndex: avatar index to be set 
+         */
+        inline void  SetAvatarIndex(TInt /*aAvatarIndex*/ ) 
+            {
+           // dummy not used
+            }
+        void SetMsgPending(TBool /*aMsgPending*/)
+            {
+            // NA
+            }
+        /**
+         * Sets the messages pending status of the contact item 
+         * @param aPendingMessageStatus: true if the contact has pending messages 
+         * else false
+         */
+        TBool IsMsgPending()
+            {
+            return EFalse;
+            }
+        /**
+         * Sets the name of the listbox item 
+         * @param aName: Name of the listbox item to be set
+         * @return void
+         */
+
+        void SetConversationOpen(TBool /*aConvOpen*/ )
+            {
+            // NA
+            }
+
+        /**
+         * gets the messages pending status of the contact item 
+         * @return iSMsgPending: true if the contact has pending messages 
+         * else false
+         */
+        TBool IsConversationOpen() 
+            {
+            return EFalse;
+            }
+        
+        /**
+         * returns status text of the contact
+         */
+        const TDesC& StatusText()
+            {
+            //NA
+            return KNullDesC;
+            }
+        
+        /**
+         * returns online status of the contact
+         */
+        TVIMPSTEnums::TOnlineStatus OnlineStatus()
+            {
+            //NA
+            return TVIMPSTEnums::EUnknown;
+            }
+        
+        /*
+         * Format and Reformat the string for listbox
+         */
+        void DoFormatStringL();
+
+        /**
+         * return formatted string needed for listbox for this item
+         */
+        TPtrC16 FormattedItemString();
+        
+    private:
+        
+        // Process Array
+        CVIMPSTProcessArray& iParent;
+    
+    	/**
+	 	* collapsed/expanded status of the contact list
+	    */
+		TBool iCollapsedStatus;
+		
+			
+		/**
+	 	* Total no. of contacts in the contact list
+	    */
+	    TInt  iTotalContacts;
+
+		/**
+	 	* name of the contact list followed by 
+	 	* the (No. of Online Contacts/ Total contacts) in that contact list
+	    */
+	    HBufC* iText;
+	    
+       /**
+  	 	* Index of the item in engines model class
+  	 	*/
+  	 	TInt	iIndex;
+     
+                
+        /**
+        * The name of the listbox item
+        * Till the contalist is supported in futuer, 
+        * iItemNameTextList is a pointer.
+        */
+        HBufC* iItemNameTextList; 
+    };
+    
+/**
+* CVIMPSTProcessOwnDataItem is a structure that will encapsualte information on Own data 
+* item in the single array on the process component side.
+*/   
+ class CVIMPSTProcessOwnDataItem : public CBase,
+                                   public MVIMPSTProcessArrayItem
+    {
+    	
+    public:
+	   /**
+	    * Creates a new instance of this class.
+		* @param aContactId, id of the contact		
+		*/
+    	static CVIMPSTProcessOwnDataItem* NewL(CVIMPSTProcessArray& aParent, TDesC& aContactId);
+    	
+       /**
+    	* second phase constructor
+    	*/
+    	void ConstructL();
+    	
+       /**
+    	* destructor
+    	*/
+    	virtual ~CVIMPSTProcessOwnDataItem();
+
+   private:
+
+       /**
+        * symbian default constructor
+        * @param aContactId, id of the contact        
+        */
+	
+        CVIMPSTProcessOwnDataItem(CVIMPSTProcessArray& aParent,TDesC& aContactId);
+		    
+	public: //From CImArrayItem
+
+		/**
+		* Returns the name of the contact list item 
+		* @return TPtrC, name of the contact item to be displayed
+		**/
+		TPtrC GetItemUserId();
+
+	
+		/**
+		* Returns the default type of the contact list item 
+		* @return TEnumsPC::TItem, type of the contact list item as either 
+		* EContactitem, EContactListItem etc
+		*/
+		TVIMPSTEnums::TItem Type();
+
+     	/**
+	    * Get the index of the contact item from engine side model
+	    * @return TInt, index
+	    */
+	    inline TInt GetItemIndex()   
+    		{ 	
+    		return iIndex;    
+    		}
+		
+		/**
+	    * Set the index of the contact item from engine side model
+	    * @param TInt, aIndex
+	    */
+	    inline void SetItemIndex(TInt aIndex) 	
+			{  
+			iIndex  = aIndex;
+			}
+	    /**
+         * @return the VPBK Contact Link
+         */
+    	inline MVPbkContactLink* ContactLink()
+			{
+			return 0;
+			}
+    	
+        /**
+        * Returns the user id of the listbox item 
+        * @return TPtrC: user id of the listbox item.
+        */
+        inline TPtrC GetItemNameText()
+            {
+            return KNullDesC();
+            }
+        /**
+         * Returns the avatar index of the listbox item 
+         * @return TInt: avatar index of the listbox item.
+         */
+        inline TInt  AvatarIndex() 
+            {
+            return iAvatarIndex;
+            }
+
+        /**
+         * sets the avatar index of the listbox item 
+         * @param aAvatarIndex: avatar index to be set 
+         */
+        inline void  SetAvatarIndex(TInt aAvatarIndex ) 
+            {
+            iAvatarIndex = aAvatarIndex;
+            
+            TRAP_IGNORE(DoFormatStringL());
+            }
+        /**
+         * returns the mimetype
+         * @return returns the mimetype
+         */
+        inline const TDesC8& MimeType()
+            {
+            if( iMimeType )
+                {
+                return *iMimeType;
+                }
+            else
+                {
+                return KNullDesC8();
+                }    
+            }
+        /**
+         * sets the mimetype
+         * @param  the mimetype to be set
+         */
+        inline void SetMimeType( const TDesC8& aMime)
+            {
+            delete iMimeType; 
+            iMimeType = NULL;
+            iMimeType = aMime.Alloc();
+            } 
+        void SetMsgPending(TBool /*aMsgPending*/)
+            {
+            // NA
+            }
+        /**
+         * Sets the messages pending status of the contact item 
+         * @param aPendingMessageStatus: true if the contact has pending messages 
+         * else false
+         */
+        TBool IsMsgPending()
+            {
+            return EFalse;
+            }
+        /**
+         * Sets the name of the listbox item 
+         * @param aName: Name of the listbox item to be set
+         * @return void
+         */
+
+        void SetConversationOpen(TBool /*aConvOpen*/ )
+            {
+            // NA
+            }
+
+        /**
+         * gets the messages pending status of the contact item 
+         * @return iSMsgPending: true if the contact has pending messages 
+         * else false
+         */
+        TBool IsConversationOpen() 
+            {
+            return EFalse;
+            }
+        
+        /**
+         * returns status text of the contact
+         */
+        const TDesC& StatusText()
+            {
+            //NA
+            return KNullDesC;
+            }
+        
+        /**
+         * returns online status of the contact
+         */
+        TVIMPSTEnums::TOnlineStatus OnlineStatus()
+            {
+            //NA
+            return TVIMPSTEnums::EUnknown;
+            }
+        
+        /*
+         * Format and Reformat the string for listbox
+         */
+        void DoFormatStringL();
+
+        /**
+         * return formatted string needed for listbox for this item
+         */
+        TPtrC16 FormattedItemString();
+        
+    private:
+       	    
+        //Process Array
+        CVIMPSTProcessArray& iParent;
+        
+	    /**
+  	 	* Index of the item in engines model class
+  	 	*/
+  	 	TInt	iIndex;
+     
+        /**
+        * The name of the listbox item
+        */
+        TDesC& iOwnDataId;
+        
+        
+        // avatar index	
+    	TInt iAvatarIndex;
+    	// owned mimetype
+    	HBufC8* iMimeType;
+    };
+
+
+
+/**
+ * unknown contact item
+ * Responsible for handling feriend requests.
+ * @lib vimpstcmdprocess.dll
+ * @since 5.0
+ */
+class CVIMPSTProcessUnknownContactItem :  public CBase,
+                                          public MVIMPSTProcessArrayItem
+    {
+    public: // symbain constructor , destructor
+        
+        /**
+        * Returns the instance of tis class.
+        * @param aBuddyId, buddyId id.
+        * @return CVIMPSTProcessFriendRequestItem, instance of this class.
+        */
+        static CVIMPSTProcessUnknownContactItem* NewL(CVIMPSTProcessArray& aParent, const TDesC& aBuddyId);
+        
+        /**
+         * symbain way of construction
+         * @param aBuddyId, requestor id.
+         */
+        void ConstructL(const TDesC& aBuddyId);
+        
+        /**
+         * destructor
+         */
+        virtual ~CVIMPSTProcessUnknownContactItem();
+        
+    private:
+
+         /**
+          * C++ default constructor
+          */
+        CVIMPSTProcessUnknownContactItem(CVIMPSTProcessArray& aParent);
+        
+    public : // new method
+        
+        /**
+         * Sets the messages pending status of the contact item 
+         * @param aPendingMessageStatus: true if the contact has pending messages 
+         * else false
+         */
+        void SetMsgPending(TBool aPendingMessageStatus);
+
+        /**
+         * gets the messages pending status of the contact item 
+         * @return iSMsgPending: true if the contact has pending messages 
+         * else false
+         */
+        TBool IsMsgPending();
+        
+    public: //From MImArrayItem
+    
+        /**
+         * Returns the name of the contact item 
+         * @return TPtrC, name of the contact item to be displayed
+         */
+        TPtrC GetItemNameText();
+        
+       /**
+        * Returns the default type of the contact item 
+        * @return TEnumsPC::TItem: type of the contact item as either 
+        * EContactitem, EContactListItem etc
+        */
+        TVIMPSTEnums::TItem Type();
+    
+        
+        /**
+         * Get the index of the contact item from engine side model
+         * @return TInt: index
+         */
+        inline TInt GetItemIndex()   
+            {   
+            return iIndex;    
+            }
+        
+        /**
+         * Set the index of the contact item from engine side model
+         * @param TInt: aIndex
+         */
+        inline void SetItemIndex(TInt aIndex)   
+            {  
+            iIndex  = aIndex;
+            }
+        
+        /**
+         * @return the VPBK Contact Link
+         */
+        inline MVPbkContactLink* ContactLink()
+            {
+            return NULL;
+            }
+         
+        /**
+         * Returns the user id of the listbox item 
+         * @return TPtrC, user id of the listbox item.
+         */
+        inline TPtrC GetItemUserId();
+
+        /**
+         * Returns the avatar index of the listbox item 
+         * @return TInt: avatar index of the listbox item.
+         */
+        inline TInt  AvatarIndex() 
+            {
+            return KErrNone; // always return zero
+            }
+
+        /**
+         * sets the avatar index of the listbox item 
+         * @param aAvatarIndex: avatar index to be set 
+         */
+        inline void  SetAvatarIndex(TInt /*aAvatarIndex*/ ) 
+            {
+            // dummy not used
+            }
+        
+        /**
+         * Sets the name of the listbox item 
+         * @param aName: Name of the listbox item to be set
+         * @return void
+         */
+
+        void SetConversationOpen(TBool aConvOpen );
+        
+        /**
+         * gets the messages pending status of the contact item 
+         * @return iSMsgPending: true if the contact has pending messages 
+         * else false
+         */
+        TBool IsConversationOpen(); 
+        
+        /**
+         * returns status text of the contact
+         */
+        const TDesC& StatusText()
+            {
+            //NA
+            return KNullDesC;
+            }
+        
+        /**
+         * returns online status of the contact
+         */
+        TVIMPSTEnums::TOnlineStatus OnlineStatus()
+            {
+            //NA
+            return TVIMPSTEnums::EUnknown;
+            }
+        
+        /*
+         * Format and Reformat the string for listbox
+         */
+        void DoFormatStringL();
+
+        /**
+         * return formatted string needed for listbox for this item
+         */
+        TPtrC16 FormattedItemString();
+        
+    private://member variables.
+        
+        // Process Array
+        CVIMPSTProcessArray& iParent;
+        
+        /**
+         * The name of the listbox item (owned).
+         */
+         HBufC* iItemNameText;          
+             
+        /**
+         * Index of the item in engines model class
+         */
+         TInt iIndex;
+         
+         // Owns, user id of item.
+         HBufC* iUesrId;
+         
+         // if any message is pending
+         
+         TBool iSMsgPending;
+         
+         TBool iIsConversationOpen;
+         
+         HBufC* iFormattedString;
+    };
+    
+#endif  //CVIMPSTPROCESSARRAYITEM_H