--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/wvuiprocess/Inc/CCAArrayItemPC.h Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,940 @@
+/*
+* Copyright (c) 2006 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: CCAContactItemPC, CCAContactListItemPC, CCAOwnDataItemPC,
+* CCAConversationItemPC, CCAInviteItemPC
+* are the different types of array items stored in the MCAMainViewArrayPC
+*
+*/
+
+
+
+#ifndef CCAARRAYITEMPC_H
+#define CCAARRAYITEMPC_H
+#include <e32base.h>
+
+#include "MCAMainViewArrayPC.h"
+#include "ChatDefinitions.h"
+
+/**
+* Base class for CCAContactItemPC, CCAContactListItemPC, CCAOwnDataItemPC
+* 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
+*/
+class MCAArrayItemPC
+ {
+
+ public:
+
+ /**
+ * Returns the default type of the listbox item
+ * @return TEnumsPC::TItem: type of the listbox item as either EContactitem, EContactListItem etc
+ */
+ virtual TEnumsPC::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 SetItemNameText( const TDesC& aName ) = 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 GetItemEngineIndex() = 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 SetItemEngineIndex( TInt aIndex ) = 0;
+
+ virtual ~MCAArrayItemPC() {};
+
+ };
+
+/**
+* CCAContactItemPC is a structure that will encapsualte information on a contact
+* item in the single array on the process component side.
+*/
+class CCAContactItemPC : public MCAArrayItemPC, public CBase
+ {
+
+ public: // symbain constructor , destructor
+
+ /*
+ * Returns the ContactitemPC instance
+ */
+ static CCAContactItemPC* NewL();
+ /*
+ * symbain way of construction
+ */
+ void ConstructL();
+
+ /*
+ * destructor
+ */
+ virtual ~CCAContactItemPC();
+
+ private:
+
+ /*
+ * C++ default constructor
+ */
+ CCAContactItemPC();
+
+ public:
+
+ /**
+ * Returns the blocked status of the contact item
+ * @return bool: true if the contact item is blocked else false
+ */
+ TBool IsBlocked();
+
+ /**
+ * Returns the pending messages status of the contact item
+ * @return bool: true if the contact item has pending messages
+ * else return false
+ */
+ TBool IsMsgPending();
+
+ /**
+ * 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 );
+
+ /**
+ * Returns the online status of the contact item
+ * @return TEnumsPC::TOnlineStatus: online status of the contact item
+ * to be displayed as either Online, Away, Busy etc
+ */
+ TEnumsPC::TOnlineStatus GetOnlineStatus();
+
+ /**
+ * Sets the online status of the contact item
+ * @parama OnlineStatus: online status of the contact item to
+ * be set as Online, Away, Busy etc
+ */
+ void SetOnlineStatus( TEnumsPC::TOnlineStatus aOnlineStatus );
+
+
+ public: //From MCAArrayItemPC
+
+ /**
+ * Returns the name of the contact item
+ * @return TPtrC: name of the contact item to be displayed
+ */
+ TPtrC GetItemNameText();
+
+ /**
+ * Sets the name of the contact item
+ * @param aName: Name of the contact item to be set
+ * @return void
+ */
+ void SetItemNameText( const TDesC& );
+
+ /**
+ * Returns the default type of the contact item
+ * @return TEnumsPC::TItem: type of the contact item as either
+ * EContactitem, EContactListItem etc
+ */
+ TEnumsPC::TItem Type();
+
+
+ /**
+ * Get the index of the contact item from engine side model
+ * @return TInt: index
+ */
+ inline TInt GetItemEngineIndex()
+ {
+ return iEngineIndex;
+ }
+
+ /**
+ * Set the index of the contact item from engine side model
+ * @param TInt: aIndex
+ */
+ inline void SetItemEngineIndex( TInt aIndex )
+ {
+ iEngineIndex = aIndex;
+ }
+
+ private:
+
+ /*
+ * Online status of contact
+ */
+ TEnumsPC::TOnlineStatus iOnlineStatus;
+
+ /*
+ * Blocked status of contact
+ */
+ TBool iBlockedStatus;
+
+ /*
+ * Pending messages status of contact
+ */
+ TBool iUnreadmsgFlag;
+
+ /*
+ * Index of the item in mainviewitemarray
+ */
+ int iMainViewArrayIndex;
+
+ /*
+ * Index of the item in engines model class
+ */
+ TInt iEngineIndex;
+
+ /**
+ * The name of the listbox item
+ */
+ HBufC* iItemNameTextContact;
+
+ };
+
+/**
+* CCAOpenChatsListItemPC is a structure that will encapsualte information on a contact
+* list in the single array on the process component side.
+*/
+class CCAOpenChatsListItemPC : public MCAArrayItemPC, public CBase
+ {
+
+ public:
+ // symbain way of construction
+
+ static CCAOpenChatsListItemPC* NewL();
+ void ConstructL();
+ virtual ~CCAOpenChatsListItemPC();
+
+ private:
+
+ /*
+ * C++ default constructor
+ */
+ CCAOpenChatsListItemPC();
+ 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 CCAArrayItemPC
+
+ /**
+ * 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
+ */
+ TEnumsPC::TItem Type();
+
+ /**
+ * Get the index of the contact item from engine side model
+ * @return TInt: index
+ */
+ inline TInt GetItemEngineIndex()
+ {
+ return iEngineIndex;
+ }
+
+ /**
+ * Set the index of the contact item from engine side model
+ * @param TInt: aIndex
+ */
+ inline void SetItemEngineIndex( TInt aIndex )
+ {
+ iEngineIndex = aIndex;
+ }
+
+ private:
+
+ /*
+ * collapsed/expanded status of the contact list
+ */
+ TBool iCollapsedStatus;
+
+ /*
+ * Total no. of contacts in the contact list
+ */
+ TInt iTotalContacts;
+
+ /*
+ * Total no. of contacts that are online in the contact list
+ */
+ TInt iOnlineContacts;
+
+ /*
+ * 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 mainviewitemarray
+ */
+ int iMainViewArrayIndex;
+
+ /*
+ * Index of the item in engines model class
+ */
+ int iEngineIndex;
+
+
+
+ /**
+ * The name of the listbox item
+ */
+ HBufC* iItemNameTextChat;
+
+ };
+
+
+/**
+* CCAConversationItemPC is a structure that will encapsualte information on a contact
+* item in the single array on the process component side.
+*/
+class CCAConversationItemPC : public MCAArrayItemPC, public CBase
+ {
+
+ public:
+ // symbain way of construction
+
+ static CCAConversationItemPC* NewL( const TDesC& aUserId );
+ void ConstructL( const TDesC& aUserId );
+ virtual ~CCAConversationItemPC();
+ private:
+
+ /*
+ * C++ default constructor
+ */
+ CCAConversationItemPC( );
+
+ public:
+
+ /**
+ * Returns the pending messages status of the contact item
+ * @return bool: true if the contact item has pending messages
+ * else return false
+ */
+ TBool IsMsgPending();
+
+ /**
+ * Sets the messages pending status of the contact item
+ * @param aPendingMessageStatus: true if the contact has pending messages
+ * else false
+ */
+ void SetMsgPending( TBool aPendingMessageStatus );
+
+ public: //From CCAArrayItemPC
+
+ /**
+ * Returns the name of the contact item
+ * @return TPtrC: name of the contact item to be displayed
+ */
+ TPtrC GetItemNameText();
+
+ /**
+ * Sets the name of the contact item
+ * @param aName: Name of the contact item to be set
+ * @return void
+ */
+ void SetItemNameText( const TDesC& );
+
+
+ /**
+ * Returns the default type of the contact item
+ * @return TEnumsPC::TItem: type of the contact item as either
+ * EContactitem, EContactListItem etc
+ */
+ TEnumsPC::TItem Type();
+
+ /**
+ * Get the index of the contact item from engine side model
+ * @return TInt: index
+ */
+ inline TInt GetItemEngineIndex()
+ {
+ return iEngineIndex;
+ }
+
+ /**
+ * Set the index of the contact item from engine side model
+ * @param TInt: aIndex
+ */
+ inline void SetItemEngineIndex( TInt aIndex )
+ {
+ iEngineIndex = aIndex;
+ }
+
+ public:
+
+
+ /**
+ * Returns the UserId of the conversation item
+ * @return TPtrC: UserId to be displayed
+ */
+ const TDesC& UserId() const;
+
+ /**
+ * Returns the identification of the conversation item
+ * @return TPtrC: identification to be displayed
+ */
+ const TDesC& Identification() const;
+
+ private:
+
+ /*
+ * Pending messages status of contact
+ */
+ TBool iUnreadmsgFlag;
+
+ /*
+ * Index of the item in mainviewitemarray
+ */
+ int iMainViewArrayIndex;
+
+ /*
+ * Index of the item in engines model class
+ */
+ int iEngineIndex;
+
+
+ /**
+ * The name of the listbox item
+ */
+ HBufC* iItemNameTextConv;
+
+ /**
+ * The iUserId of the contact
+ */
+ HBufC* iUserId;
+
+ };
+
+/**
+ * CCAInviteItemPC is a structure that will encapsualte information
+ */
+class CCAInviteItemPC : public MCAArrayItemPC, public CBase
+ {
+
+ public:
+ // symbain way of construction
+
+ static CCAInviteItemPC* NewL( const TDesC& aUserId,
+ const TDesC& aInviteId );
+ void ConstructL();
+ virtual ~CCAInviteItemPC();
+ private:
+
+ /*
+ * C++ default constructor
+ */
+ CCAInviteItemPC( const TDesC& aUserId, const TDesC& aInviteId );
+
+ public: //From CCAArrayItemPC
+
+ /**
+ * Returns the name of the contact item
+ * @return TPtrC: name of the contact item to be displayed
+ */
+ TPtrC GetItemNameText();
+
+ /**
+ * Sets the name of the contact item
+ * @param aName: Name of the contact item to be set
+ * @return void
+ */
+ void SetItemNameText( const TDesC& aName ) ;
+
+ /**
+ * Returns the default type of the contact item
+ * @return TEnumsPC::TItem: type of the contact item as either
+ * EContactitem, EContactListItem etc
+ */
+ TEnumsPC::TItem Type();
+
+ MCAInvitation* GetInvitation();
+
+ void SetInvitation( const MCAInvitation* aInvitation );
+
+ /**
+ * Get the index of the contact item from engine side model
+ * @return TInt: index
+ */
+ inline TInt GetItemEngineIndex()
+ {
+ return iEngineIndex;
+ }
+
+ /**
+ * Set the index of the contact item from engine side model
+ * @param TInt: aIndex
+ */
+ inline void SetItemEngineIndex( TInt aIndex )
+ {
+ iEngineIndex = aIndex;
+ }
+
+ public:
+
+
+ /**
+ * Returns the UserId of the invitation item
+ * @return TPtrC: UserId to be displayed
+ */
+ const TDesC& UserId() const;
+
+ /**
+ * Returns the UserId of the invitation item
+ * @return TPtrC: UserId to be displayed
+ */
+ const TDesC& GetInviteID() const;
+ /**
+ * Returns the identification of the invitation item
+ * @return TPtrC: identification to be displayed
+ */
+ const TDesC& Identification() const;
+
+ private:
+
+ // Flag for telling if invitation is opened.
+
+ /*
+ * Index of the item in mainviewitemarray
+ */
+ int iMainViewArrayIndex;
+
+ /*
+ * Index of the item in engines model class
+ */
+ int iEngineIndex;
+
+ //The buffer has been changed to a heap buffer for optimization
+
+ /**
+ * The name of the listbox item
+ */
+ HBufC* iItemNameTextInvite;
+
+ /**
+ * The iUserId of the contact
+ */
+ const TDesC& iUserId;
+ /**
+ * The InviteId of the invitation
+ */
+ const TDesC& iInviteID;
+
+ const MCAInvitation* iInvitation;
+
+ };
+
+
+/**
+ * CCAGroupItemPC will encapsualte information
+ * about a group item
+ */
+class CCAGroupItemPC : public CBase, public MCAArrayItemPC
+ {
+
+ public:
+ /**
+ * Two-phased constructor.
+ * @param aEngine - Reference to chat engine component
+ */
+ static CCAGroupItemPC* NewL( const TDesC& aGroupId );
+
+ /*
+ * Symbian second phased constructor
+ */
+ void ConstructL( const TDesC& aGroupId );
+
+ /*
+ * Destructor
+ */
+ virtual ~CCAGroupItemPC();
+
+ private:
+
+ /*
+ * C++ default constructor
+ */
+ CCAGroupItemPC();
+
+ public:
+
+ /**
+ * Returns the pending messages status of the contact item
+ * @return bool: true if the contact item has pending messages
+ * else return false
+ */
+ TBool IsMsgPending();
+
+ /**
+ * Sets the messages pending status of the contact item
+ * @param aPendingMessageStatus: true if the contact has pending messages
+ * else false
+ */
+ void SetMsgPending( TBool aPendingMessageStatus );
+
+ public: //From CCAArrayItemPC
+
+ /**
+ * Returns the name of the group item
+ * @return TPtrC: name of the contact item to be displayed
+ */
+ TPtrC GetItemNameText();
+
+ /**
+ * Sets the name of the group item
+ * @param aName: Name of the contact item to be set
+ * @return void
+ */
+ void SetItemNameText( const TDesC& aName ) ;
+
+ /**
+ * Returns the default type of the group item
+ * @return TEnumsPC::TItem: type of the item as either
+ * EContactitem, EContactListItem etc
+ */
+ TEnumsPC::TItem Type();
+
+ /**
+ * Get the index of the group item from engine side model
+ * @return TInt: index
+ */
+ inline TInt GetItemEngineIndex()
+ {
+ return iEngineIndex;
+ }
+
+ /**
+ * Set the index of the group item from engine side model
+ * @param TInt: aIndex
+ */
+ inline void SetItemEngineIndex( TInt aIndex )
+ {
+ iEngineIndex = aIndex;
+ }
+
+ /**
+ * Returns the GroupId of the conversation item
+ * @return TPtrC: GroupId to be displayed
+ */
+ const TDesC& GroupId() const;
+
+ /**
+ * Returns the identification of the invitation item
+ * @return TPtrC: identification to be displayed
+ */
+ const TDesC& Identification() const;
+ private:
+
+ /*
+ * Pending messages status of contact
+ */
+ TBool iUnreadmsgFlag;
+
+ /*
+ * Index of the item in mainviewitemarray
+ */
+ TInt iMainViewArrayIndex;
+
+ /*
+ * Index of the item in engines model class
+ */
+ TInt iEngineIndex;
+
+ /**
+ * The name of the group item
+ */
+ HBufC* iItemNameTextGroup;
+
+ /**
+ * Owns the iGroupID
+ */
+ HBufC* iGroupId;
+
+ };
+
+/**
+* CCAContactListItemPC is a structure that will encapsualte information on a contact
+* list in the single array on the process component side.
+*/
+class CCAContactListItemPC : public MCAArrayItemPC, public CBase
+ {
+
+ public:
+ // symbain way of construction
+
+ static CCAContactListItemPC* NewL();
+ void ConstructL();
+ virtual ~CCAContactListItemPC();
+
+ private:
+
+ /*
+ * C++ default constructor
+ */
+ CCAContactListItemPC();
+
+ 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();
+
+ /**
+ * Returns the pending messages status for the contacts in the contact list
+ * @return bool: true if the contacts int he contact list has pending messages
+ * else return false
+ */
+ TBool IsMsgPending();
+
+ /**
+ * 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 );
+
+ /**
+ * Sets the message pending status of the contacts in the contact list
+ * @param aMessagePending: true if the contacts in the contact list have
+ * pending messages else false
+ */
+ void SetMsgPending( TBool aMessagePending );
+
+ public: //From CCAArrayItemPC
+
+ /**
+ * 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
+ */
+ TEnumsPC::TItem Type();
+
+ /**
+ * Get the index of the contact item from engine side model
+ * @return TInt: index
+ */
+ inline TInt GetItemEngineIndex()
+ {
+ return iEngineIndex;
+ }
+
+ /**
+ * Set the index of the contact item from engine side model
+ * @param TInt: aIndex
+ */
+ inline void SetItemEngineIndex( TInt aIndex )
+ {
+ iEngineIndex = aIndex;
+ }
+
+ private:
+
+ /*
+ * collapsed/expanded status of the contact list
+ */
+ TBool iCollapsedStatus;
+
+ /*
+ * Pending messages status for contacts in the list
+ */
+ TBool iUnreadmsgFlag;
+
+ /*
+ * 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 mainviewitemarray
+ */
+ int iMainViewArrayIndex;
+
+ /*
+ * Index of the item in engines model class
+ */
+ int iEngineIndex;
+
+
+ /**
+ * The name of the listbox item
+ */
+ HBufC* iItemNameTextList;
+ };
+
+/**
+* CCAOwnDataItemPC is a structure that will encapsualte information on Own data
+* item in the single array on the process component side.
+*/
+class CCAOwnDataItemPC : public MCAArrayItemPC, public CBase
+ {
+
+ public:
+ // symbain way of construction
+
+ static CCAOwnDataItemPC* NewL();
+ void ConstructL();
+ virtual ~CCAOwnDataItemPC();
+
+ private:
+
+ // C++ default constructor
+
+ CCAOwnDataItemPC();
+
+ public:
+
+ /**
+ * Returns the online status of the own data item
+ * @return TEnumsPC::TOnlineStatus: online status of own data item
+ */
+ TEnumsPC::TOnlineStatus GetOwnStatus();
+
+ /**
+ * Set the online status of the own data item
+ * @param aOnlineStatus: online status of own data item
+ */
+ void SetOwnStatus( TEnumsPC::TOnlineStatus aOnlineStatus );
+
+ public: //From CCAArrayItemPC
+
+ /**
+ * 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
+ */
+ TEnumsPC::TItem Type();
+
+ /**
+ * Get the index of the contact item from engine side model
+ * @return TInt: index
+ */
+ inline TInt GetItemEngineIndex()
+ {
+ return iEngineIndex;
+ }
+
+ /**
+ * Set the index of the contact item from engine side model
+ * @param TInt: aIndex
+ */
+ inline void SetItemEngineIndex( TInt aIndex )
+ {
+ iEngineIndex = aIndex;
+ }
+
+ private:
+ /*
+ * online status of own data item
+ */
+ TEnumsPC::TOnlineStatus iOwnStatus;
+
+
+ /*
+ * Index of the item in mainviewitemarray
+ */
+ int iMainViewArrayIndex;
+
+ /*
+ * Index of the item in engines model class
+ */
+ int iEngineIndex;
+
+
+ /**
+ * The name of the listbox item
+ */
+ HBufC* iItemNameTextOwnData;
+
+
+ };
+
+#endif //CCAArrayItemPC_H
\ No newline at end of file