--- a/uiservicetab/vimpstcmdprocess/inc/cvimpstprocessarrayitem.h Thu Aug 19 09:41:53 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1000 +0,0 @@
-/*
-* 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