X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fmessages.h;h=a063170e046c0d96ae688b75555f1e36bed785a8;hb=4b4dc864ede7c5d8d956febe4a0afb422b78e7c4;hp=387cbccff50bbac66b42389f5ca4f7472eaae463;hpb=1a9e08616fa839db9a46a4f2c6d9e34420150b81;p=citadel.git diff --git a/webcit/messages.h b/webcit/messages.h index 387cbccff..a063170e0 100644 --- a/webcit/messages.h +++ b/webcit/messages.h @@ -25,10 +25,13 @@ struct wc_mime_attachment { }; void DestroyMime(void *vMime); +#define MSGFLAG_READ (1<<0) typedef struct _message_summary { - time_t date; /* its creation date */ long msgnum; /* the message number on the citadel server */ + int Flags; + + time_t date; /* its creation date */ int nhdr; int format_type; StrBuf *euid; @@ -37,7 +40,6 @@ typedef struct _message_summary { StrBuf *subj; /* the title / subject */ StrBuf *reply_inreplyto; StrBuf *reply_references; - StrBuf *reply_to; StrBuf *cccc; StrBuf *hnod; StrBuf *AllRcpt; @@ -52,7 +54,6 @@ typedef struct _message_summary { HashList *AllAttach; - int is_new; int hasattachments; @@ -60,7 +61,20 @@ typedef struct _message_summary { wc_mime_attachment *MsgBody; } message_summary; void DestroyMessageSummary(void *vMsg); -inline message_summary* GetMessagePtrAt(int n, HashList *Summ); + + + +static inline message_summary* GetMessagePtrAt(int n, HashList *Summ) +{ + const char *Key; + long HKLen; + void *vMsg; + + if (Summ == NULL) + return NULL; + GetHashAt(Summ, n, &HKLen, &Key, &vMsg); + return (message_summary*) vMsg; +} typedef void (*ExamineMsgHeaderFunc)(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset); @@ -133,7 +147,8 @@ typedef struct _SharedMessageStatus { } SharedMessageStatus; -int load_msg_ptrs(const char *servcmd, +int load_msg_ptrs(const char *servcmd, + const char *filter, SharedMessageStatus *Stat, load_msg_ptrs_detailheaders LH); @@ -141,7 +156,9 @@ typedef int (*GetParamsGetServerCall_func)(SharedMessageStatus *Stat, void **ViewSpecific, long oper, char *cmd, - long len); + long len, + char *filter, + long flen); typedef int (*PrintViewHeader_func)(SharedMessageStatus *Stat, void **ViewSpecific); @@ -174,6 +191,13 @@ void RegisterReadLoopHandlerset( */ GetParamsGetServerCall_func GetParamsGetServerCall, + /** + * PrintpageHeader prints the surrounding information like iconbar, header etc. + * by default, output_headers() is called. + * + */ + PrintViewHeader_func PrintPageHeader, + /** * PrintViewHeader is here to print informations infront of your messages. * The message list is already loaded & sorted (if) so you can evaluate @@ -228,3 +252,17 @@ int ParseMessageListHeaders_Detail(StrBuf *Line, const char **pos, message_summary *Msg, StrBuf *ConversionBuffer); + + + +/** + * @brief function to register the availability to render a specific message + * @param HeaderName Mimetype we know howto display + * @param HdrNLen length... + * @param InlineRenderable Should we announce to citserver that we want to receive these mimeparts immediately? + * @param Priority if multipart/alternative; which mimepart/Renderer should be prefered? (only applies if InlineRenderable) + */ +void RegisterMimeRenderer(const char *HeaderName, long HdrNLen, + RenderMimeFunc MimeRenderer, + int InlineRenderable, + int Priority);