diff -r 000000000000 -r 094583676ce7 wvuing/wvuiave/AppSrc/CCAInviteEditor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wvuing/wvuiave/AppSrc/CCAInviteEditor.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,148 @@ +/* +* 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: Editor for invite creation +* +*/ + + +#ifndef CCAINVITEEDITOR_H +#define CCAINVITEEDITOR_H + +// INCLUDES +#include +#include + +// FORWARD DECLARATIONS +class MCAInviteConflictResolver; +class MCAServerContactsArrayPC; +class MCAInviteEditorPC; + + +// CLASS DECLARATION + +/** +* Editor for invite creation. +* +* @lib chatng.app +* @since 1.2 +*/ +class CCAInviteEditor : public CBase + { + public: // Enums + + enum TInviteResult // result of invitation + { + ECreationCancelled = 1, + EInviteCancelled, + ERecipientAcceptedInvite, + ERecipientCancelledInvite + }; + + public: // Constructors and destructor + + /** + * Two-phased constructor. + * @param aGroup Reference of GroupId + * @return Instance of this class + */ + static CCAInviteEditor* NewL( const TDesC& aGroup ); + + /** + * Two-phased constructor. + * @param aGroup Reference of GroupId + * @return Instance of this class + */ + static CCAInviteEditor* NewLC( const TDesC& aGroup ); + + /** + * Destructor. + */ + virtual ~CCAInviteEditor(); + + public: // New methods + + /** + * Creates and sends invitation + * @param aResolver for conflicts with banned users. + * @param aReceiver Receiver of invitation. If not given, then user + * will be asked for recipient. + * @return Did system managed to create and send invitation + */ + TBool CreateAndSendInvitation( MCAInviteConflictResolver& aResolver, + const TDesC& aReceiver = KNullDesC + ); + + private: + + /** + * Populates list of wvids to whom user can send invitation + * @param aInviteList List of user-ids + * @param aRawOnlineList Raw data online-list + * @param aSelectionArray Array of selected indexes + */ + void PopulateInviteListL( CDesCArray& aInviteList, + const MCAServerContactsArrayPC& aRawOnlineList, + const CArrayFixFlat& aSelectionArray ); + + /** + * Gets online friends from Presence API and fetch nicknames also + * for contact ID's from Storage. + * @return contacts array with wvid's and nicknames + */ + MCAServerContactsArrayPC* GetOnlineFriendsLC(); + + /** + * Queries invitation message + * Ownership is transferred to caller + * @return Message + */ + HBufC* QueryInviteMessageL(); + + /** + * Shows error note + */ + void ShowErrorNoteL(); + + private: + /** + * C++ default constructor. + * @param aInviteAPI Reference to invite API + * @param aPresenceAPI Reference to presence API + */ + CCAInviteEditor( ); + + /** + * By default Symbian OS constructor is private. + * @param aGroup GroupId + */ + void ConstructL( const TDesC& aGroup ); + + /** + * "Real" logic for creating and sending invitation + */ + void CreateAndSendInvitationL( MCAInviteConflictResolver& aResolver, + const TDesC& aReceiver = KNullDesC + ); + + private: // Data + // Owns. + HBufC* iGroupID; + + // Own's iInviteEditorPC + MCAInviteEditorPC* iInviteEditorPC; + }; + +#endif // CCAINVITEEDITOR_H + +// End of File