--- /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