diff -r 000000000000 -r 094583676ce7 wvuing/wvuiprocess/Inc/CCAArrayItemPC.h --- /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 + +#include "MCAMainViewArrayPC.h" +#include "ChatDefinitions.h" + +/** +* Base class for CCAContactItemPC, CCAContactListItemPC, CCAOwnDataItemPC +* to be stored into an array of 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