GType modest_formatter_get_type (void);
-ModestFormatter* modest_formatter_new (const gchar *content_type);
+ModestFormatter* modest_formatter_new (const gchar *content_type, const gchar *signature);
/**
* modest_formatter_cite:
* Original message
* ----------------
* Date: 1970/01/01
- * From: somemail@modest.org
+ * From: somemailATmodest.org
* Body: "This is the body of the text"
* </para><para>
* Cited message
* -------------
* Body:
- * On 1970/01/01 somemail@modest.org wrote:
+ * On 1970/01/01 somemailATmodest.org wrote:
* This is the body of the text
* </para></programlisting>
*
* @self: a #ModestFormatter
* @part: a non-NULL #TnyMimePart with the body of the original message
* @header: a non-NULL #TnyHeader of the original message
+ * @attachments: a #GList of attachments in original message
*
* Creates a new message with a text body made from the body of the
* original message quoted. This function is locale-sensitive.
* Original message
* ----------------
* Date: 1970/01/01
- * From: somemail@modest.org
+ * From: somemailATmodest.org
* Body: "This is the body of the text"
* </para><para>
* Quoted message
* -------------
* Body:
- * On 1970/01/01 somemail@modest.org wrote:
+ * ------ Original message -----
* > This is the body of the text
+ * > Attachment: file1.txt
* </para></programlisting>
*
* Returns: a newly formatted #TnyMsg or NULL in case of error
**/
-TnyMsg * modest_formatter_quote (ModestFormatter *self, TnyMimePart *part, TnyHeader *header);
+TnyMsg * modest_formatter_quote (ModestFormatter *self, TnyMimePart *part, TnyHeader *header, GList *attachments);
/**
* @self: a #ModestFormatter
* @part: a non-NULL #TnyMimePart with the body of the original message
* @header: a non-NULL #TnyHeader of the original message
+ * @attachments: a #GList of attachments
*
* Creates a new message with a text body made from the body of the
* original message inlined ready to be forwarded. This function is
* Original message
* ----------------
* Date: 1970/01/01
- * From: somemail@modest.org
- * To: mymail@modest.org
+ * From: somemailATmodest.org
+ * To: mymailATmodest.org
* Subject: Mail subject
* Body: "This is the body of the text"
* </para><para>
* -------------
* Body:
* -----Forwarded Message-----
- * From: somemail@modest.org
+ * From: somemailATmodest.org
* Sent: 1970/01/01
- * To: mymail@modest.org
+ * To: mymailATmodest.org
* Subject: Fw: Mail subject
- * On 1970/01/01 somemail@modest.org wrote:
+ * On 1970/01/01 somemailATmodest.org wrote:
* This is the body of the text
* </para></programlisting>
*
* Returns: a newly formatted #TnyMsg or NULL in case of error
**/
-TnyMsg * modest_formatter_inline (ModestFormatter *self, TnyMimePart *part, TnyHeader *header);
+TnyMsg * modest_formatter_inline (ModestFormatter *self, TnyMimePart *part, TnyHeader *header, GList *attachments);
/**
* modest_formatter_attach:
*
* Returns: a newly formatted #TnyMsg or NULL in case of error
**/
-TnyMsg * modest_formatter_attach (ModestFormatter *self, TnyMimePart *part, TnyHeader *header);
+TnyMsg * modest_formatter_attach (ModestFormatter *self, TnyMsg *msg, TnyHeader *header);
+/**
+ * modest_formatter_create_message:
+ * @self: a #ModestFormatter
+ * @single_body: a #gboolean
+ * @has_attachments: a #gboolean
+ * @has_images: a #gboolean
+ *
+ * Creates an empty #TnyMsg with the expected parts for Modest
+ * formatters and body embedders.
+ *
+ * If @has_attachments is %TRUE, the mail will be formatted as
+ * "multipart/mixed", and attachments will be stored as parts
+ * of it. The body will be just another multipart. If %FALSE,
+ * the bodies will be stored directly as the message.
+ *
+ * If @single_body is %TRUE, the body will be stored as a
+ * "multipart/alternative", and the parts will be the different
+ * alternatives. If %FALSE, this body will be stored directly.
+ *
+ * If @has_images is %TRUE, the body will be embedded in a
+ * multipart/related, that will also host attached images.
+ */
+TnyMsg * modest_formatter_create_message (ModestFormatter *self, gboolean single_body,
+ gboolean has_attachments, gboolean has_images);
+
+/**
+ * modest_formatter_create_body_part:
+ * @self: a #ModestFormatter
+ *
+ * Obtains a new formatted body part for @msg, or
+ * @msg itself if the body is intended to be stored directly
+ * in it.
+ */
+TnyMimePart * modest_formatter_create_body_part (ModestFormatter *self, TnyMsg *msg);
G_END_DECLS