diff -r 000000000000 -r 094583676ce7 wvuing/wvuiprocess/Src/CCAOpenChatsPC.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wvuing/wvuiprocess/Src/CCAOpenChatsPC.cpp Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,237 @@ +/* +* 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: Implementation for PC Group Interface +* +*/ + + + +// INCLUDE FILES + +#include "CCAOpenChatsPC.h" +#include "CCAArrayItemPC.h" + +// ============================ MEMBER FUNCTIONS =============================== + + +// ----------------------------------------------------------------------------- +// CCAOpenChatsPC : Ctor +// +// ----------------------------------------------------------------------------- +// +CCAOpenChatsPC::CCAOpenChatsPC( const RPointerArray& + aOpenChatsArray ) + : iOpenChatsArray( aOpenChatsArray ), + iActiveItem( -1 ) + { + } + + +// ----------------------------------------------------------------------------- +// CCAOpenChatsPC : NewL +// +// ----------------------------------------------------------------------------- +// +CCAOpenChatsPC* CCAOpenChatsPC::NewL( const RPointerArray& + aOpenChatsArray ) + { + CCAOpenChatsPC* self = new ( ELeave ) CCAOpenChatsPC( aOpenChatsArray ); + return self; + } + +// ----------------------------------------------------------------------------- +// CCAOpenChatsPC : Destructor +// +// ----------------------------------------------------------------------------- +// +CCAOpenChatsPC::~CCAOpenChatsPC() + { + delete iActiveItemId; + } + + +// ----------------------------------------------------------------------------- +// CCAOpenChatsPC: GetIdentification +// ----------------------------------------------------------------------------- +// +const TPtrC CCAOpenChatsPC::GetIdentification( TInt aIndex ) + { + if ( aIndex >= ( iOpenChatsArray.Count() ) || aIndex < 0 ) + { + return TPtrC ( KNullDesC ); + } + else + { + + MCAArrayItemPC *arrayItem = ( MCAArrayItemPC * )iOpenChatsArray[aIndex]; + switch ( arrayItem->Type() ) + { + + case TEnumsPC::EConversationItem: + case TEnumsPC::EGroupItem: + { + return arrayItem->GetItemNameText(); + } + + case TEnumsPC::EInviteItem: + { + return *iInvitationIdentification; + } + default: + break; + + } + } + + return TPtrC ( KNullDesC ); + } + + +// ----------------------------------------------------------------------------- +// CCAOpenChatsPC: GetId +// ----------------------------------------------------------------------------- +// +const TPtrC CCAOpenChatsPC::GetId( TInt aIndex ) + { + if ( aIndex >= ( iOpenChatsArray.Count() ) || aIndex < 0 ) + { + return TPtrC ( KNullDesC ); + } + else + { + + MCAArrayItemPC *arrayItem = ( MCAArrayItemPC * )iOpenChatsArray[aIndex]; + switch ( arrayItem->Type() ) + { + + case TEnumsPC::EConversationItem: + { + CCAConversationItemPC* conversationItem = + dynamic_cast< CCAConversationItemPC* > ( iOpenChatsArray[aIndex] ); + + if ( conversationItem ) + { + return conversationItem->UserId(); + } + break; + + } + case TEnumsPC::EGroupItem: + { + CCAGroupItemPC* groupItem = + dynamic_cast< CCAGroupItemPC* > ( iOpenChatsArray[aIndex] ); + + if ( groupItem ) + { + return groupItem->GroupId(); + } + break; + } + + case TEnumsPC::EInviteItem: + { + CCAInviteItemPC* inviteItem = + dynamic_cast< CCAInviteItemPC* > ( iOpenChatsArray[aIndex] ); + + if ( inviteItem ) + { + return inviteItem->GetInviteID(); + } + break; + } + default: + break; + + } + + return TPtrC ( KNullDesC ); + } + } + +// ----------------------------------------------------------------------------- +// CCAOpenChatsPC: GetType +// ----------------------------------------------------------------------------- +// +TEnumsPC::TItem CCAOpenChatsPC::GetType( TInt aIndex ) + { + + if ( aIndex >= ( iOpenChatsArray.Count() ) || aIndex < 0 ) + { + return TEnumsPC::EInvalid; + } + else + { + MCAArrayItemPC *arrayItem = ( MCAArrayItemPC * )iOpenChatsArray[aIndex]; + return arrayItem->Type(); + } + + } + + + +// ----------------------------------------------------------------------------- +// CCAOpenChatsPC: Count +// ----------------------------------------------------------------------------- +// +TInt CCAOpenChatsPC::Count() const + { + return iOpenChatsArray.Count(); + } + + +// ----------------------------------------------------------------------------- +// CCAOpenChatsPC: SetActiveItem +// ----------------------------------------------------------------------------- +// +void CCAOpenChatsPC::SetActiveItem( const TInt aIndex ) + { + delete iActiveItemId; + iActiveItem = aIndex; + + iActiveItemId = GetId( aIndex ).Alloc(); + + iActiveItemType = GetType( aIndex ); + } + + +// ----------------------------------------------------------------------------- +// CCAOpenChatsPC: GetActiveItem +// ----------------------------------------------------------------------------- +// +void CCAOpenChatsPC::GetActiveItem( TDesC*& aId, TEnumsPC::TItem& aType ) + { + + aId = NULL; + + if ( iActiveItemId ) + { + aId = iActiveItemId; + } + + + aType = iActiveItemType; + + } + +// ----------------------------------------------------------------------------- +// CCAOpenChatsPC: SetInvitationIdentification +// ----------------------------------------------------------------------------- +// +void CCAOpenChatsPC::SetInvitationIdentification( TDesC* aIdentification ) + { + iInvitationIdentification = aIdentification; + } + +// End of File +