aboutsummaryrefslogtreecommitdiffstats
path: root/mail/em-format.h
diff options
context:
space:
mode:
authorNot Zed <NotZed@Ximian.com>2004-01-14 10:58:24 +0800
committerMichael Zucci <zucchi@src.gnome.org>2004-01-14 10:58:24 +0800
commitdf12f97f295e461187793034557ef9d8787ffa4b (patch)
tree06f0a69306c896b875b8ae2b5b1e3b78a7cb0dec /mail/em-format.h
parentb7d6b7be91f2348427d1900b011b069abd0fa40a (diff)
downloadgsoc2013-evolution-df12f97f295e461187793034557ef9d8787ffa4b.tar.gz
gsoc2013-evolution-df12f97f295e461187793034557ef9d8787ffa4b.tar.zst
gsoc2013-evolution-df12f97f295e461187793034557ef9d8787ffa4b.zip
** See bug 51660.
2004-01-14 Not Zed <NotZed@Ximian.com> ** See bug 51660. * em-format-html-quote.c (efhq_multipart_related): setup part_id appropriately. * em-format-html-display.c (efhd_output_secure): use part_id in classid, and add .signed to part_id for subpart. (efhd_bonobo_unknown): use part_id in classid. (efhd_format_attachment): use part_id in classid's. * em-format-html.c (efh_multipart_related) (emfh_multipart_related_check): setup part_id for each subpart. (efh_output_secure): as above, and use the part_id for the classid. (em_format_html_add_pobject): use part_id for a generated classid. (efh_text_plain): setup pseudo-parts into part_id. * em-format.c (emf_format_clone): setup the part_id base, folder + uid. (emf_finalise): free the part_id gstring. (emf_init): allocate the part_id gstring. (em_format_add_puri): build the cid from the part_id rather than an arbitrary number, so it is more persistent. Also save the part_id in the puri for multipart/related use. (emf_multipart_mixed, emf_multipart_alternative) (emf_multipart_appledouble, emf_multipart_encrypted) (emf_multipart_related, emf_multipart_signed): Set the part_id for each subpart. (emf_clear_puri_node): free part_id. 2004-01-13 Not Zed <NotZed@Ximian.com> ** See bug 51660. * em-format-html-print.c (em_format_html_print_print): dont take message, get the message from the source formatter. * em-format.c (emf_format_clone): Added folder and uid parameters, changed camelmedium to a mimemessage. * em-format-html-display.c (efhd_attachment_button): check the icon image cache and if the image is there use it. * em-icon-stream.c (em_icon_stream_get_image): api to lookup finished images in cache. (em_icon_stream_new): add a cache key arg. (emis_sync_close): store the image in the cache once its completed. svn path=/trunk/; revision=24210
Diffstat (limited to 'mail/em-format.h')
-rw-r--r--mail/em-format.h20
1 files changed, 16 insertions, 4 deletions
diff --git a/mail/em-format.h b/mail/em-format.h
index f4cbb3fbbc..d01b50bc7e 100644
--- a/mail/em-format.h
+++ b/mail/em-format.h
@@ -36,6 +36,7 @@ struct _CamelMedium;
struct _CamelSession;
struct _CamelURL;
struct _CamelDataWrapper;
+struct _CamelMimeMessage;
typedef struct _EMFormat EMFormat;
typedef struct _EMFormatClass EMFormatClass;
@@ -68,6 +69,7 @@ struct _EMFormatPURI {
char *uri; /* will be the location of the part, may be empty */
char *cid; /* will always be set, a fake one created if needed */
+ char *part_id; /* will always be set, emf->part_id->str for this part */
EMFormatPURIFunc func;
struct _CamelMimePart *part;
@@ -98,7 +100,12 @@ struct _EMFormat {
struct _EMFormatPrivate *priv;
- struct _CamelMedium *message; /* the current message */
+ struct _CamelMimeMessage *message; /* the current message */
+
+ struct _CamelFolder *folder;
+ char *uid;
+
+ GString *part_id; /* current part id prefix, for identifying parts directly */
EDList header_list; /* if empty, then all */
@@ -130,7 +137,7 @@ struct _EMFormatClass {
const EMFormatHandler *(*find_handler)(EMFormat *, const char *mime_type);
/* start formatting a message */
- void (*format_clone)(EMFormat *, struct _CamelMedium *, EMFormat *);
+ void (*format_clone)(EMFormat *, struct _CamelFolder *, const char *uid, struct _CamelMimeMessage *, EMFormat *);
/* some internel error/inconsistency */
void (*format_error)(EMFormat *, struct _CamelStream *, const char *msg);
@@ -186,9 +193,14 @@ void em_format_push_level(EMFormat *emf);
void em_format_pull_level(EMFormat *emf);
/* clones inline state/view and format, or use to redraw */
-#define em_format_format_clone(emf, msg, src) ((EMFormatClass *)G_OBJECT_GET_CLASS(emf))->format_clone((emf), (msg), (src))
+#define em_format_format_clone(emf, folder, uid, msg, src) ((EMFormatClass *)G_OBJECT_GET_CLASS(emf))->format_clone((emf), (folder), (uid), (msg), (src))
/* formats a new message */
-#define em_format_format(emf, msg) ((EMFormatClass *)G_OBJECT_GET_CLASS(emf))->format_clone((emf), (msg), NULL)
+#define em_format_format(emf, folder, uid, msg) ((EMFormatClass *)G_OBJECT_GET_CLASS(emf))->format_clone((emf), (folder), (uid), (msg), NULL)
+#define em_format_redraw(emf) ((EMFormatClass *)G_OBJECT_GET_CLASS(emf))->format_clone((emf), \
+ ((EMFormat *)(emf))->folder, \
+ ((EMFormat *)(emf))->uid, \
+ ((EMFormat *)(emf))->message, \
+ (emf))
#define em_format_format_error(emf, stream, txt) ((EMFormatClass *)G_OBJECT_GET_CLASS(emf))->format_error((emf), (stream), (txt))
#define em_format_format_attachment(emf, stream, msg, type, info) ((EMFormatClass *)G_OBJECT_GET_CLASS(emf))->format_attachment((emf), (stream), (msg), (type), (info))
#define em_format_format_message(emf, stream, msg) ((EMFormatClass *)G_OBJECT_GET_CLASS(emf))->format_message((emf), (stream), (msg))