emailuis/emailui/sendasmtm/inc/cfssendashelper.h
changeset 0 8466d47a6819
child 8 e1b6206813b4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/emailui/sendasmtm/inc/cfssendashelper.h	Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,179 @@
+/*
+* Copyright (c) 2007 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:  Definition of the class CFsSendAsHelper.
+*
+*/
+
+
+#ifndef CFSSENDASHELPER_H
+#define CFSSENDASHELPER_H
+
+#include <e32base.h>
+#include <apmstd.h>
+
+#include <cmsvrecipientlist.h>
+//<cmail>
+#include "CFSMailCommon.h"
+//</cmail>
+// ---------------------------------------------------------------------------
+
+class CFSMailAddress;
+
+/**
+ * This class is having functions which are used by Integration MTM to create
+ * a message and to launch Freestyle UI editor.
+ *
+ * @since S60 3.1
+ * @lib fssendashelper.lib
+ */
+class CFsSendAsHelper : public CBase
+{
+public: // constructors and destructor
+    /**
+     * Constructs new object.
+     * @return created object.
+    */
+    IMPORT_C static CFsSendAsHelper* NewL();
+
+    /** 
+     * Destructor
+    */
+    IMPORT_C ~CFsSendAsHelper();
+
+public:    
+    /**
+     * Called from MTM when a file is selected to through sendas functionality.
+     * The file full path and mimetype are stored which will be later used to
+     * create mail and launch FS UI.
+     * @param aFileName Filename including full path
+     * @param aMimeType Mime type of the file that need to be attached
+     * @param aCharSet Charcaterset of the file
+    */
+    IMPORT_C void AddAttachmentL(const TDesC& aFileName,
+        const TDesC8& aMimeType, TUint aCharSet);    
+    /**
+     * Called from MTM when a file is selected to through sendas functionality.
+     * The file full path and mimetype are stored which will be later used to
+     * create mail and launch FS UI.
+     * @param aFile Handle to an attachment file. Ownership is transferred
+     * @param aMimeType Mime type of the file that need to be attached
+     * @param aCharSet Charcaterset of the file
+    */
+    IMPORT_C void AddAttachmentL( RFile& aFile,
+        const TDesC8& aMimeType, TUint aCharSet);    
+   
+    /**
+     * Called from MTM when a address is selected to send an e-mail.
+     * The Address and Alias of the address if present are stored 
+     * which will be later used to create mail and launch FS UI
+     * @param aAddress Mail address of the recipient
+     * @param aAlias Alias of the address, this can be NULL
+     * @param aType Type of recipient.
+    */
+    IMPORT_C void AddRecipientL(const TDesC& aAddress, const TDesC& aAlias, 
+        TMsvRecipientType aType);
+    
+    /**
+     * Called from MTM when a subject need to be set for the mail. The subject
+     * will be stored which will be later used to create mail and launch FS UI.
+     * @param aSubject Subject of the mail.
+    */
+    IMPORT_C void SetSubjectL(const TDesC& aSubject);
+
+    /**
+     * Called from MTM when certain text need to be made as body of the mail.
+     * Usually the case when notepad file is selected to send using sendas
+     * functionality. The contents of body will be stored which will be later 
+     * used to create mail while launching FS UI.
+     * @param aBody body part of the mail.
+    */
+    IMPORT_C void SetBodyL(const TDesC& aBody);
+
+    /**
+     * Called from MTM after either of setting subject, recipients,  
+     * attachments or/and body. The message will be created with the right
+     * data and will be stored to drafts of mail box. The messageid of the 
+     * createdmessage will be externalized which is used later to launch UI.
+     *
+     * @param aPluginId Plug-in Id
+     * @param aId Mailbox Id. 
+    */
+    IMPORT_C void StoreDataL( TUint aPluginId, TUint aId );
+
+    /**
+     * Called from MTM either to create empty mail or to create mail with some
+     * contents.
+     * @param aPluginId Plug-in Id
+     * @param aId Mailbox Id.
+     * @param aIsEmptyMail True if empty message need to be created.
+     * @param aIsSettings True if settings view need to be launched.
+    */
+    IMPORT_C void LaunchUiL(TUint aPluginId, TUint aId, 
+        TBool aIsEmptyMail = EFalse, TBool aIsSettings = EFalse );
+
+private: // constructors
+    /**
+     * Constructor
+     */
+    CFsSendAsHelper();
+
+    /**
+     * Second-phase constructor.
+     */
+    void ConstructL();
+
+    /*
+     * Displays mailbox not available note.
+     */
+    void DisplayMailboxNotAvailableNoteL();
+
+    /*
+     * Checks whether the mailbox is available or not
+     * @param aPluginId Plugin ID or the mailbox. 
+     * @return KErrNone if mailbox available, KErrNotSupported otherwise.
+     */
+    TInt IsMailboxAvailable( TInt aPluginId );
+private: // data
+    // Subject of the message
+    HBufC* iSubject;
+
+    // Body of the message    
+    HBufC* iBody;
+
+    // Filehandles that need to be attached.
+    RArray< RFile > iFiles;
+    
+    // Filenames that need to be attached
+    RPointerArray<HBufC> iFileNames;
+
+    // Mimetypes of the attached filehandles
+    RPointerArray<HBufC8> iMimeTypesFile;
+    // Mimetypes of the attached filenames
+    RPointerArray<HBufC8> iMimeTypesFileName;
+
+    // To recipients of the mail
+    RPointerArray<CFSMailAddress> iToAddresses;
+    // Cc recipients of the mail
+    RPointerArray<CFSMailAddress> iCcAddresses;  
+    // Bcc recipients of the mail
+    RPointerArray<CFSMailAddress> iBccAddresses;
+
+    //If Filehandles are passed to the framework (plugin)
+    TBool isPassed;
+    
+    // Message to be displayed when trying to use MfE or Ozone mailbox
+    // while in mass storage mode. Own.
+    HBufC* iMassStorageNote;
+};
+#endif  //CFSSENDASHELPER_H