meetingui/meetingrequestutils/inc/MMRUtilsUiServices.h
changeset 0 f979ecb2b13e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/meetingui/meetingrequestutils/inc/MMRUtilsUiServices.h	Tue Feb 02 10:12:19 2010 +0200
@@ -0,0 +1,141 @@
+/*
+* Copyright (c) 2005 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:  
+*       UI Extension API for Meeting Request Utils.
+*
+*/
+
+
+
+#ifndef MMRUTILSUISERVICES_H
+#define MMRUTILSUISERVICES_H
+
+// INCLUDES
+#include <e32def.h>
+#include <msvstd.h>
+#include <CMRUtils.h>
+#include <msvids.h>
+#include <CalUser.h>
+#include "CMRUtilsInternal.h"
+
+// FORWARD DECLARATIONS
+class CCalEntry;
+class CCalInstance;
+
+// CLASS DECLARATION
+
+/**
+ * Extension API for CMRUtils. This extension contains UI functionality.
+ */
+class MMRUtilsUiServices
+    {
+    public: // Constructors and destructors
+    
+        /**
+        * Destructor, allows deletion through this interface.
+        */
+        virtual ~MMRUtilsUiServices() {};      
+        
+    public:  // New functions
+    
+        /**
+        * Allows user to set attendee statuses and optionally edit and send
+        * response to aEntries. If array contains multiple entries,
+        * the same response value and information is sent to all given entries.
+        * Cancelled or outdated entries are omitted, and so are those that
+        * don't contain phone user as attendee whose response is requested.
+        * Return values that are used are:
+        * KErrNone if attendee status of one or more entries was set
+        * KErrArgument if couldn't find any valid entry to respond
+        * KErrCancel if user cancels responding (after setting attendee status)
+        * @param aEntries entries belonging to same recurring meeting
+        * @param aResponse responding status
+        * @param aMailbox mailbox to use for sending
+        * @return KErrNone or a system wide error code
+        */
+        virtual TInt RespondWithUiL( const RPointerArray<CCalEntry>& aEntries,
+                                     CCalAttendee::TCalStatus aStatus,
+                                     TMsvId aMailbox ) = 0;
+                            
+        /**
+        * Allows organizer cancel, and optionally to edit and send 
+        * cancellation of aEntries, i.e. recurring meeting or instance(s) of it.
+        * Already cancelled, unsent or outdated entries are omitted,
+        * and so are those attendees that have declined participation
+        * to a particular entry. Return values that are used are:
+        * KErrNone if one or more entries was cancelled
+        * KErrArgument if couldn't find any valid entry to cancel
+        * KErrCancel if user cancels sending (after canceling entry(s))
+        * @param aEntries entries belonging to same recurring meeting
+        * @param aMailbox mailbox to use for sending    
+        * @return KErrNone or a system wide error code    
+        */ 
+        virtual TInt CancelWithUiL(
+            const RPointerArray<CCalEntry>& aEntries,
+            TMsvId aMailbox ) = 0;
+        
+        /**
+        * Deletes given aEntries from the database and possibly allows
+        * user to cancel meeting or decline participation, depending on
+        * participation type.
+        * This method will leave with KErrNotSupported if caller doesn't
+        * have CEikonEnv available.
+        * @param aEntry entry to be deleted
+        * @param aMailbox mailbox to use for possible cancel/response
+        * @return KErrNone or a system wide error code  
+        */
+        virtual TInt DeleteWithUiL( const CCalEntry& aEntry,
+                                    TMsvId aMailbox ) = 0;
+          
+        /**
+        * Deletes given instance from the database and possibly allows
+        * user to cancel meeting or decline participation, depending on
+        * participation type.
+        * This method takes ownership of aInstance.
+        * This method will leave with KErrNotSupported if caller doesn't
+        * have CEikonEnv available.
+        * @param aInstance instance to be deleted, ownership transferred
+        * @param aMailbox mailbox to use for possible cancel/response
+        * @return KErrNone or a system wide error code  
+        */                          
+        virtual TInt DeleteWithUiL( CCalInstance* aInstance,
+                                    TMsvId aMailbox ) = 0;
+    
+        /**
+        * Open SendUI editor for replying to the recipient(s) with an e-mail.
+        * aSenderAddr is omitted if aRecipients does not contain MR sender.
+        * @param aRecipients enumeration determining the recipients
+        * @param aCalEntry entry to be used as a base for sending reply
+        * @param aSenderAddr specifies the sender, if applicable
+        * @param aMailbox mailbox to use for sending    
+        */          
+        virtual void ReplyToL( CMRUtilsInternal::TMailRecipients aRecipients,
+                               const CCalEntry& aCalEntry,
+                               const TDesC& aSenderAddr,
+                               TMsvId aMailbox ) = 0;
+
+        /**
+        * Send given meeting request. Sending recipients are determined based
+        * on the request type, e.g. request, respond, update etc.
+        * This method does not involve an UI editor.
+        * @param aCalEntry entry to be sent
+        * @param aMailbox mailbox to use for sending       
+        */             
+        virtual void SendL( const CCalEntry& aCalEntry,
+                            TMsvId aMailbox ) = 0;
+    };
+
+#endif  // MMRUTILSUISERVICES_H
+
+// End of File