aboutsummaryrefslogtreecommitdiffstats
path: root/mail/message-thread.h
blob: d5153cbfc0bd63ee9d7f577c2ad8772058a75de8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#ifndef _MESSAGE_THREAD_H
#define _MESSAGE_THREAD_H

#include <gnome.h>
#include "message-list.h"

struct _container {
    struct _container *next,
        *parent,
        *child;
    const CamelMessageInfo *message;
    char *root_subject; /* cached root equivalent subject */
    int re;         /* re version of subject? */
    int order;
};

struct _thread_messages {
    struct _container *tree;
};

struct _thread_messages *thread_messages(CamelFolder *folder, GPtrArray *uids);
void thread_messages_add(struct _thread_messages *thread, CamelFolder *folder, GPtrArray *uids);
void thread_messages_remove(struct _thread_messages *thread, CamelFolder *folder, GPtrArray *uids);
void thread_messages_free(struct _thread_messages *c);

void mail_do_thread_messages (MessageList *ml, GPtrArray *uids, 
                  gboolean use_camel_uidfree,
                  void (*build) (MessageList *,
                         struct _container *));

#endif /* !_MESSAGE_THREAD_H */