Create new method in ModestMsgView and ModestMsgViewWindow for setting a msg
authorJose Dapena Paz <jdapena@igalia.com>
Fri, 22 May 2009 09:04:30 +0000 (11:04 +0200)
committerJose Dapena Paz <jdapena@igalia.com>
Fri, 22 May 2009 10:48:44 +0000 (12:48 +0200)
with a different body.

src/gnome/modest-msg-view-window.c
src/hildon2/modest-msg-view-window.c
src/maemo/modest-msg-view-window.c
src/widgets/modest-gtkhtml-msg-view.c
src/widgets/modest-gtkhtml-msg-view.h
src/widgets/modest-mozembed-msg-view.c
src/widgets/modest-mozembed-msg-view.h
src/widgets/modest-msg-view-window.h
src/widgets/modest-msg-view.c
src/widgets/modest-msg-view.h

index ec9c4d8..cd2ff16 100644 (file)
@@ -157,7 +157,7 @@ modest_msg_view_window_init (ModestMsgViewWindow *obj)
 
 
 static void
-init_window (ModestMsgViewWindow *obj, TnyMsg *msg)
+init_window (ModestMsgViewWindow *obj, TnyMsg *msg, TnyMimePart *other_body)
 {
        GtkWidget *main_vbox, *scrolled_window;
        ModestMsgViewWindowPrivate *priv;
@@ -167,7 +167,11 @@ init_window (ModestMsgViewWindow *obj, TnyMsg *msg)
        parent_priv = MODEST_WINDOW_GET_PRIVATE(obj);
 
        priv->msg_view = GTK_WIDGET (tny_platform_factory_new_msg_view (modest_tny_platform_factory_get_instance ()));
-       tny_msg_view_set_msg (TNY_MSG_VIEW (priv->msg_view), msg);
+       if (other_body) {
+               modest_msg_view_set_msg_with_other_body (MODEST_MSG_VIEW (priv->msg_view), msg, other_body);
+       } else {
+               tny_msg_view_set_msg (TNY_MSG_VIEW (priv->msg_view), msg);
+       }
        main_vbox = gtk_vbox_new  (FALSE, 0);
        
        gtk_box_pack_start (GTK_BOX(main_vbox), priv->menubar, FALSE, FALSE, 0);
@@ -205,10 +209,11 @@ on_delete_event (GtkWidget *widget, GdkEvent *event, ModestMsgViewWindow *self)
 
 
 ModestWindow *
-modest_msg_view_window_new_for_attachment (TnyMsg *msg, 
-                                          const gchar *modest_account_name, 
-                                          const gchar *mailbox, /* ignored */
-                                          const gchar *msg_uid)
+modest_msg_view_window_new_with_other_body (TnyMsg *msg, 
+                                           TnyMimePart *other_body,
+                                           const gchar *modest_account_name, 
+                                           const gchar *mailbox, /* ignored */
+                                           const gchar *msg_uid)
 {
        GObject *obj;
        ModestMsgViewWindowPrivate *priv;
@@ -280,7 +285,7 @@ modest_msg_view_window_new_for_attachment (TnyMsg *msg,
        gtk_toolbar_set_tooltips (GTK_TOOLBAR (priv->toolbar), TRUE);
 
        /* Init window */
-       init_window (MODEST_MSG_VIEW_WINDOW(obj), msg);
+       init_window (MODEST_MSG_VIEW_WINDOW(obj), msg, other_body);
        restore_settings (MODEST_WINDOW(obj));
 
        header = tny_msg_get_header (msg);
@@ -331,6 +336,17 @@ modest_msg_view_window_new_for_attachment (TnyMsg *msg,
        return MODEST_WINDOW(obj);
 }
 
+ModestWindow *
+modest_msg_view_window_new_for_attachment (TnyMsg *msg, 
+                                          const gchar *modest_account_name, 
+                                          const gchar *mailbox, /* ignored */
+                                          const gchar *msg_uid)
+{
+
+       return modest_msg_view_new_with_other_body (msg, NULL, modest_account_name, mailbox, msg_uid);
+
+}
+
 
 TnyMsg*
 modest_msg_view_window_get_message (ModestMsgViewWindow *self)
index 0d0e0ae..044c85e 100644 (file)
@@ -1041,10 +1041,11 @@ modest_msg_view_window_new_for_search_result (TnyMsg *msg,
 }
 
 ModestWindow *
-modest_msg_view_window_new_for_attachment (TnyMsg *msg, 
-                                          const gchar *modest_account_name,
-                                          const gchar *mailbox,
-                                          const gchar *msg_uid)
+modest_msg_view_window_new_with_other_body (TnyMsg *msg, 
+                                           TnyMimePart *other_body,
+                                           const gchar *modest_account_name,
+                                           const gchar *mailbox,
+                                           const gchar *msg_uid)
 {
        GObject *obj = NULL;
        ModestMsgViewWindowPrivate *priv;       
@@ -1057,7 +1058,11 @@ modest_msg_view_window_new_for_attachment (TnyMsg *msg,
        modest_msg_view_window_construct (MODEST_MSG_VIEW_WINDOW (obj), 
                                          modest_account_name, mailbox, msg_uid);
 
-       tny_msg_view_set_msg (TNY_MSG_VIEW (priv->msg_view), msg);
+       if (other_body) {
+               modest_msg_view_set_msg_with_other_body (MODEST_MSG_VIEW (priv->msg_view), msg, other_body);
+       } else {
+               tny_msg_view_set_msg (TNY_MSG_VIEW (priv->msg_view), msg);
+       }
        update_window_title (MODEST_MSG_VIEW_WINDOW (obj));
 
        /* gtk_widget_show_all (GTK_WIDGET (obj)); */
@@ -1070,6 +1075,15 @@ modest_msg_view_window_new_for_attachment (TnyMsg *msg,
        return MODEST_WINDOW(obj);
 }
 
+ModestWindow *
+modest_msg_view_window_new_for_attachment (TnyMsg *msg, 
+                                          const gchar *modest_account_name,
+                                          const gchar *mailbox,
+                                          const gchar *msg_uid)
+{
+       return modest_msg_view_window_new_with_other_body (msg, NULL, modest_account_name, mailbox, msg_uid);
+}
+
 static void
 modest_msg_view_window_on_row_changed (GtkTreeModel *header_model,
                                       GtkTreePath *arg1,
index 165dc80..6681d22 100644 (file)
@@ -1066,10 +1066,11 @@ modest_msg_view_window_new_for_search_result (TnyMsg *msg,
 }
 
 ModestWindow *
-modest_msg_view_window_new_for_attachment (TnyMsg *msg, 
-                                          const gchar *modest_account_name,
-                                          const gchar *mailbox, /* ignored */
-                                          const gchar *msg_uid)
+modest_msg_view_window_new_with_other_body (TnyMsg *msg, 
+                                           TnyMimePart *part,
+                                           const gchar *modest_account_name,
+                                           const gchar *mailbox, /* ignored */
+                                           const gchar *msg_uid)
 {
        GObject *obj = NULL;
        ModestMsgViewWindowPrivate *priv;       
@@ -1082,7 +1083,11 @@ modest_msg_view_window_new_for_attachment (TnyMsg *msg,
        modest_msg_view_window_construct (MODEST_MSG_VIEW_WINDOW (obj), 
                modest_account_name, msg_uid);
 
-       tny_msg_view_set_msg (TNY_MSG_VIEW (priv->msg_view), msg);
+       if (other_body) {
+               modest_msg_view_set_msg_with_other_body (TNY_MSG_VIEW (priv->msg_view), msg, other_body);
+       } else {
+               tny_msg_view_set_msg (TNY_MSG_VIEW (priv->msg_view), msg);
+       }
        update_window_title (MODEST_MSG_VIEW_WINDOW (obj));
 
        gtk_widget_show_all (GTK_WIDGET (obj));
@@ -1095,6 +1100,16 @@ modest_msg_view_window_new_for_attachment (TnyMsg *msg,
        return MODEST_WINDOW(obj);
 }
 
+ModestWindow *
+modest_msg_view_window_new_for_attachment (TnyMsg *msg, 
+                                          const gchar *modest_account_name,
+                                          const gchar *mailbox, /* ignored */
+                                          const gchar *msg_uid)
+{
+       return modest_msg_view_window_new_with_other_body (msg, NULL, modest_account_name, mailbox, msg_uid);
+
+}
+
 static void
 modest_msg_view_window_on_row_changed (GtkTreeModel *header_model,
                                       GtkTreePath *arg1,
index 4d40ed3..8ca07e3 100644 (file)
@@ -172,6 +172,7 @@ static gboolean modest_msg_view_search_default (ModestISearchView *self, const g
 static gboolean modest_msg_view_search_next (ModestISearchView *self);
 static gboolean modest_msg_view_search_next_default (ModestISearchView *self);
 /* ModestMsgView implementation */
+static void modest_gtkhtml_msg_view_set_msg_with_other_body (ModestMsgView *self, TnyMsg *msg, TnyMimePart *other_body);
 static GtkAdjustment *modest_gtkhtml_msg_view_get_vadjustment (ModestMsgView *self);
 static GtkAdjustment *modest_gtkhtml_msg_view_get_hadjustment (ModestMsgView *self);
 static void modest_gtkhtml_msg_view_set_vadjustment (ModestMsgView *self, GtkAdjustment *vadj);
@@ -186,6 +187,7 @@ static void modest_gtkhtml_msg_view_grab_focus (ModestMsgView *self);
 static void modest_gtkhtml_msg_view_remove_attachment (ModestMsgView *view, TnyMimePart *attachment);
 static void modest_gtkhtml_msg_view_request_fetch_images (ModestMsgView *view);
 static gboolean modest_gtkhtml_msg_view_has_blocked_external_images (ModestMsgView *view);
+static void modest_gtkhtml_msg_view_set_msg_with_other_body_default (ModestMsgView *view, TnyMsg *msg, TnyMimePart *part);
 static GtkAdjustment *modest_gtkhtml_msg_view_get_vadjustment_default (ModestMsgView *self);
 static GtkAdjustment *modest_gtkhtml_msg_view_get_hadjustment_default (ModestMsgView *self);
 static void modest_gtkhtml_msg_view_set_vadjustment_default (ModestMsgView *self, GtkAdjustment *vadj);
@@ -204,7 +206,7 @@ static void modest_gtkhtml_msg_view_request_fetch_images_default (ModestMsgView
 /* internal api */
 static void     set_header     (ModestGtkhtmlMsgView *self, TnyHeader *header);
 static TnyMsg   *get_message   (ModestGtkhtmlMsgView *self);
-static void     set_message    (ModestGtkhtmlMsgView *self, TnyMsg *tny_msg);
+static void     set_message    (ModestGtkhtmlMsgView *self, TnyMsg *tny_msg, TnyMimePart *other_body);
 static gboolean is_empty       (ModestGtkhtmlMsgView *self); 
 static void     set_zoom       (ModestGtkhtmlMsgView *self, gdouble zoom);
 static gdouble  get_zoom       (ModestGtkhtmlMsgView *self);
@@ -417,6 +419,7 @@ modest_gtkhtml_msg_view_class_init (ModestGtkhtmlMsgViewClass *klass)
        klass->zoom_plus_func = modest_msg_view_zoom_plus_default;
        klass->search_func = modest_msg_view_search_default;
        klass->search_next_func = modest_msg_view_search_next_default;
+       klass->set_msg_with_other_body_func = modest_gtkhtml_msg_view_set_msg_with_other_body_default;
        klass->get_vadjustment_func = modest_gtkhtml_msg_view_get_vadjustment_default;
        klass->get_hadjustment_func = modest_gtkhtml_msg_view_get_hadjustment_default;
        klass->set_vadjustment_func = modest_gtkhtml_msg_view_set_vadjustment_default;
@@ -1661,7 +1664,7 @@ on_fetch_url (GtkWidget *widget, const gchar *uri,
 }
 
 static void
-set_message (ModestGtkhtmlMsgView *self, TnyMsg *msg)
+set_message (ModestGtkhtmlMsgView *self, TnyMsg *msg, TnyMimePart *other_body)
 {
        TnyMimePart *body;
        ModestGtkhtmlMsgViewPrivate *priv;
@@ -1708,12 +1711,17 @@ set_message (ModestGtkhtmlMsgView *self, TnyMsg *msg)
        tny_header_view_set_header (TNY_HEADER_VIEW (priv->mail_header_view), header);
        g_object_unref (header);
 
-       modest_attachments_view_set_message (MODEST_ATTACHMENTS_VIEW(priv->attachments_view),
-                                            msg);
+       modest_attachments_view_set_message (MODEST_ATTACHMENTS_VIEW (priv->attachments_view),
+                                            other_body?NULL:msg);
 
        modest_mime_part_view_set_view_images (MODEST_MIME_PART_VIEW (priv->body_view), tny_msg_get_allow_external_images (msg));
 
-       body = modest_tny_msg_find_body_part (msg, TRUE);
+       if (other_body) {
+               body = other_body;
+               g_object_ref (body);
+       } else {
+               body = modest_tny_msg_find_body_part (msg, TRUE);
+       }
        if (body) {
                ModestAttachmentsView *widget;
 
@@ -1783,7 +1791,7 @@ set_header (ModestGtkhtmlMsgView *self, TnyHeader *header)
        g_return_if_fail (self);
 
        if (header == NULL) {
-               set_message (self, NULL);
+               set_message (self, NULL, NULL);
                return;
        }
        
@@ -2064,7 +2072,7 @@ modest_msg_view_clear_header (TnyHeaderView *self)
 static void
 modest_msg_view_clear_header_default (TnyHeaderView *self)
 {
-       set_message (MODEST_GTKHTML_MSG_VIEW (self), NULL);
+       set_message (MODEST_GTKHTML_MSG_VIEW (self), NULL, NULL);
 }
 
 /* TNY MSG IMPLEMENTATION */
@@ -2134,7 +2142,7 @@ modest_msg_view_clear (TnyMsgView *self)
 static void
 modest_msg_view_clear_default (TnyMsgView *self)
 {
-       set_message (MODEST_GTKHTML_MSG_VIEW (self), NULL);
+       set_message (MODEST_GTKHTML_MSG_VIEW (self), NULL, NULL);
 }
 
 static TnyMimePartView*
@@ -2204,7 +2212,7 @@ modest_msg_view_mp_set_part_default (TnyMimePartView *self,
 {
        g_return_if_fail ((part == NULL) || TNY_IS_MSG (part));
 
-       set_message (MODEST_GTKHTML_MSG_VIEW (self), TNY_MSG (part));
+       set_message (MODEST_GTKHTML_MSG_VIEW (self), TNY_MSG (part), NULL);
 }
 
 static void
@@ -2343,6 +2351,7 @@ modest_msg_view_init (gpointer g, gpointer iface_data)
 {
        ModestMsgViewIface *klass = (ModestMsgViewIface *)g;
 
+       klass->set_msg_with_other_body_func = modest_gtkhtml_msg_view_set_msg_with_other_body;
        klass->get_vadjustment_func = modest_gtkhtml_msg_view_get_vadjustment;
        klass->get_hadjustment_func = modest_gtkhtml_msg_view_get_hadjustment;
        klass->set_vadjustment_func = modest_gtkhtml_msg_view_set_vadjustment;
@@ -2361,6 +2370,18 @@ modest_msg_view_init (gpointer g, gpointer iface_data)
        return;
 }
 
+static void
+modest_gtkhtml_msg_view_set_msg_with_other_body (ModestMsgView *self, TnyMsg *msg, TnyMimePart *other_body)
+{
+       MODEST_GTKHTML_MSG_VIEW_GET_CLASS (self)->set_msg_with_other_body_func (self, msg, other_body);
+}
+
+static void
+modest_gtkhtml_msg_view_set_msg_with_other_body_default (ModestMsgView *self, TnyMsg *msg, TnyMimePart *other_body)
+{
+       set_message (MODEST_GTKHTML_MSG_VIEW (self), msg, other_body);
+}
+
 static GtkAdjustment*
 modest_gtkhtml_msg_view_get_vadjustment (ModestMsgView *self)
 {
index 9bab604..64d31e6 100644 (file)
@@ -83,6 +83,7 @@ struct _ModestGtkhtmlMsgViewClass {
        gboolean (*search_func)             (ModestISearchView *self, const gchar *string);
        gboolean (*search_next_func)        (ModestISearchView *self);
        /* ModestMsgView interface methods */
+       void (*set_msg_with_other_body_func) (ModestMsgView *self, TnyMsg *msg, TnyMimePart *other_body);
        GtkAdjustment* (*get_vadjustment_func) (ModestMsgView *self);
        GtkAdjustment* (*get_hadjustment_func) (ModestMsgView *self);
        void (*set_vadjustment_func) (ModestMsgView *self, GtkAdjustment *vadj);
index c398a9a..fb22106 100644 (file)
@@ -118,6 +118,7 @@ static gboolean modest_msg_view_search_default (ModestISearchView *self, const g
 static gboolean modest_msg_view_search_next (ModestISearchView *self);
 static gboolean modest_msg_view_search_next_default (ModestISearchView *self);
 /* ModestMsgView implementation */
+static void modest_mozembed_msg_view_set_msg_with_other_body (ModestMsgView *self, TnyMsg *msg, TnyMimePart *part);
 static GtkAdjustment *modest_mozembed_msg_view_get_vadjustment (ModestMsgView *self);
 static GtkAdjustment *modest_mozembed_msg_view_get_hadjustment (ModestMsgView *self);
 static void modest_mozembed_msg_view_set_vadjustment (ModestMsgView *self, GtkAdjustment *vadj);
@@ -132,6 +133,7 @@ static void modest_mozembed_msg_view_grab_focus (ModestMsgView *self);
 static void modest_mozembed_msg_view_remove_attachment (ModestMsgView *view, TnyMimePart *attachment);
 static void modest_mozembed_msg_view_request_fetch_images (ModestMsgView *view);
 static gboolean modest_mozembed_msg_view_has_blocked_external_images (ModestMsgView *view);
+static void modest_mozembed_msg_view_set_msg_with_other_body_default (ModestMsgView *self, TnyMsg *msg, TnyMimePart *part);
 static GtkAdjustment *modest_mozembed_msg_view_get_vadjustment_default (ModestMsgView *self);
 static GtkAdjustment *modest_mozembed_msg_view_get_hadjustment_default (ModestMsgView *self);
 static void modest_mozembed_msg_view_set_vadjustment_default (ModestMsgView *self, GtkAdjustment *vadj);
@@ -150,7 +152,7 @@ static void modest_mozembed_msg_view_request_fetch_images_default (ModestMsgView
 /* internal api */
 static void     set_header     (ModestMozembedMsgView *self, TnyHeader *header);
 static TnyMsg   *get_message   (ModestMozembedMsgView *self);
-static void     set_message    (ModestMozembedMsgView *self, TnyMsg *tny_msg);
+static void     set_message    (ModestMozembedMsgView *self, TnyMsg *msg, TnyMimePart *other_body);
 static gboolean is_empty       (ModestMozembedMsgView *self); 
 static void     set_zoom       (ModestMozembedMsgView *self, gdouble zoom);
 static gdouble  get_zoom       (ModestMozembedMsgView *self);
@@ -326,6 +328,7 @@ modest_mozembed_msg_view_class_init (ModestMozembedMsgViewClass *klass)
        klass->zoom_plus_func = modest_msg_view_zoom_plus_default;
        klass->search_func = modest_msg_view_search_default;
        klass->search_next_func = modest_msg_view_search_next_default;
+       klass->set_msg_with_other_body_func = modest_mozembed_msg_view_set_msg_with_other_body_default;
        klass->get_vadjustment_func = modest_mozembed_msg_view_get_vadjustment_default;
        klass->get_hadjustment_func = modest_mozembed_msg_view_get_hadjustment_default;
        klass->set_vadjustment_func = modest_mozembed_msg_view_set_vadjustment_default;
@@ -689,7 +692,7 @@ on_fetch_url (GtkWidget *widget, const gchar *uri,
 }
 
 static void
-set_message (ModestMozembedMsgView *self, TnyMsg *msg)
+set_message (ModestMozembedMsgView *self, TnyMsg *msg, TnyMimePart *other_body)
 {
        TnyMimePart *body;
        ModestMozembedMsgViewPrivate *priv;
@@ -723,9 +726,15 @@ set_message (ModestMozembedMsgView *self, TnyMsg *msg)
        g_object_unref (header);
 
        modest_attachments_view_set_message (MODEST_ATTACHMENTS_VIEW(priv->attachments_view),
-                                            msg);
+                                            other_body?NULL:msg);
        
-       body = modest_tny_msg_find_body_part (msg, TRUE);
+       if (other_body) {
+               body = other_body;
+               g_object_ref (body);
+       } else {
+               body = modest_tny_msg_find_body_part (msg, TRUE);
+       }
+
        if (body) {
                tny_mime_part_view_set_part (TNY_MIME_PART_VIEW (priv->body_view), body);
 
@@ -754,7 +763,7 @@ set_header (ModestMozembedMsgView *self, TnyHeader *header)
        g_return_if_fail (self);
 
        if (header == NULL)
-               set_message (self, NULL);
+               set_message (self, NULL, NULL);
        
        priv = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE(self);
        gtk_widget_set_no_show_all (priv->mail_header_view, FALSE);
@@ -958,7 +967,7 @@ modest_msg_view_clear_header (TnyHeaderView *self)
 static void
 modest_msg_view_clear_header_default (TnyHeaderView *self)
 {
-       set_message (MODEST_MOZEMBED_MSG_VIEW (self), NULL);
+       set_message (MODEST_MOZEMBED_MSG_VIEW (self), NULL, NULL);
 }
 
 /* TNY MSG IMPLEMENTATION */
@@ -1028,7 +1037,7 @@ modest_msg_view_clear (TnyMsgView *self)
 static void
 modest_msg_view_clear_default (TnyMsgView *self)
 {
-       set_message (MODEST_MOZEMBED_MSG_VIEW (self), NULL);
+       set_message (MODEST_MOZEMBED_MSG_VIEW (self), NULL, NULL);
 }
 
 static TnyMimePartView*
@@ -1098,7 +1107,7 @@ modest_msg_view_mp_set_part_default (TnyMimePartView *self,
 {
        g_return_if_fail ((part == NULL) || TNY_IS_MSG (part));
 
-       set_message (MODEST_MOZEMBED_MSG_VIEW (self), TNY_MSG (part));
+       set_message (MODEST_MOZEMBED_MSG_VIEW (self), TNY_MSG (part), NULL);
 }
 
 static void
@@ -1237,6 +1246,7 @@ modest_msg_view_init (gpointer g, gpointer iface_data)
 {
        ModestMsgViewIface *klass = (ModestMsgViewIface *)g;
 
+       klass->set_msg_with_other_body_func = modest_mozembed_msg_view_set_msg_with_other_body;
        klass->get_vadjustment_func = modest_mozembed_msg_view_get_vadjustment;
        klass->get_hadjustment_func = modest_mozembed_msg_view_get_hadjustment;
        klass->set_vadjustment_func = modest_mozembed_msg_view_set_vadjustment;
@@ -1255,6 +1265,18 @@ modest_msg_view_init (gpointer g, gpointer iface_data)
        return;
 }
 
+static void
+modest_mozembed_msg_view_set_msg_with_other_body (ModestMsgView *self, TnyMsg *msg, TnyMimePart *other_body)
+{
+       MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->set_msg_with_other_body_func (self, msg, other_body);
+}
+
+static void
+modest_mozembed_msg_view_set_msg_with_other_body_default (ModestMsgView *self, TnyMsg *msg, TnyMimePart *other_body)
+{
+       set_message (MODEST_MOZEMBED_MSG_VIWE (self), msg, other_body);
+}
+
 static GtkAdjustment*
 modest_mozembed_msg_view_get_vadjustment (ModestMsgView *self)
 {
index ec69e09..acd22d4 100644 (file)
@@ -83,6 +83,7 @@ struct _ModestMozembedMsgViewClass {
        gboolean (*search_func)             (ModestISearchView *self, const gchar *string);
        gboolean (*search_next_func)        (ModestISearchView *self);
        /* ModestMsgView interface methods */
+       void (*set_msg_with_other_body) (ModestMsgView *self, TnyMsg *msg, TnyMimePart *part);
        GtkAdjustment* (*get_vadjustment_func) (ModestMsgView *self);
        GtkAdjustment* (*get_hadjustment_func) (ModestMsgView *self);
        void (*set_vadjustment_func) (ModestMsgView *self, GtkAdjustment *vadj);
index ba812b3..a3d9cdd 100644 (file)
@@ -106,6 +106,25 @@ ModestWindow*   modest_msg_view_window_new_for_attachment         (TnyMsg *msg,
                                                                   const gchar *msg_uid);
 
 /**
+ * modest_msg_view_window_new_with_other_body:
+ * @msg: an #TnyMsg instance
+ * @modest_account_name: the account name 
+ * @mailbox: the mailbox (if any)
+ * 
+ * instantiates a new #ModestMsgViewWindow widget to view a message that is a different body
+ * in another message.
+ * The account name is used to
+ * set the proper account when choosing reply/forward from the msg view window
+ *
+ * Returns: a new #ModestMsgViewWindow, or NULL in case of error
+ */
+ModestWindow*   modest_msg_view_window_new_with_other_body         (TnyMsg *msg,
+                                                                  TnyMimePart *other_body,
+                                                                  const gchar *modest_account_name,
+                                                                  const gchar *mailbox,
+                                                                  const gchar *msg_uid);
+
+/**
  * modest_msg_view_window_new_with_header_model:
  * @msg: an #TnyMsg instance
  * @modest_account_name: the account name 
index ac28fa5..ebdf402 100644 (file)
@@ -43,6 +43,12 @@ enum {
 };
 static guint signals[LAST_SIGNAL] = {0};
 
+void
+modest_msg_view_set_msg_with_other_body (ModestMsgView *self, TnyMsg *msg, TnyMimePart *part)
+{
+       return MODEST_MSG_VIEW_GET_IFACE (self)->set_msg_with_other_body_func (self, msg, part);
+}
+
 GtkAdjustment*
 modest_msg_view_get_vadjustment (ModestMsgView *self)
 {
index 2edea8c..f59080d 100644 (file)
@@ -54,6 +54,7 @@ typedef struct _ModestMsgViewIface ModestMsgViewIface;
 struct _ModestMsgViewIface {
        GTypeInterface parent;
 
+       void (*set_msg_with_other_body_func) (ModestMsgView *self, TnyMsg *msg, TnyMimePart *other_body);
        GtkAdjustment* (*get_vadjustment_func) (ModestMsgView *self);
        GtkAdjustment* (*get_hadjustment_func) (ModestMsgView *self);
        void (*set_vadjustment_func) (ModestMsgView *self, GtkAdjustment *vadj);
@@ -98,7 +99,7 @@ struct _ModestMsgViewIface {
  */
 GType        modest_msg_view_get_type    (void) G_GNUC_CONST;
 
-
+void modest_msg_view_set_msg_with_other_body (ModestMsgView *self, TnyMsg *msg, TnyMimePart *part);
 GtkAdjustment *modest_msg_view_get_vadjustment (ModestMsgView *self);
 GtkAdjustment *modest_msg_view_get_hadjustment (ModestMsgView *self);
 void modest_msg_view_set_vadjustment (ModestMsgView *self, GtkAdjustment *vadj);