2007-06-03 Christian Kellner <ckellner@openismus.com>
[modest] / src / modest-search.h
1 #ifndef MODEST_SEARCH_H
2 #define MODEST_SEARCH_H
3
4 #include <glib.h>
5 #include <tny-folder.h>
6
7 #define _GNU_SOURCE
8
9 #ifdef HAVE_CONFIG_H
10 #include <config.h>
11 #endif
12
13 #ifdef MODEST_HAVE_OGS
14 #include <libogs/ogs-text-searcher.h>
15 #endif
16
17 G_BEGIN_DECLS
18
19 typedef enum {
20         MODEST_SEARCH_SUBJECT   = (1 << 0),
21         MODEST_SEARCH_SENDER    = (1 << 1),
22         MODEST_SEARCH_RECIPIENT = (1 << 2),
23         MODEST_SEARCH_SIZE      = (1 << 3),
24         MODEST_SEARCH_BEFORE    = (1 << 4),
25         MODEST_SEARCH_AFTER     = (1 << 5),
26         MODEST_SEARCH_BODY      = (1 << 6),
27         MODEST_SEARCH_USE_OGS   = (1 << 7),
28 } ModestSearchFlags;
29
30 typedef struct {
31         gchar *subject, *from, *recipient, *body;
32         time_t before, after;
33         guint32 minsize;
34         ModestSearchFlags flags;
35 #ifdef MODEST_HAVE_OGS
36         const gchar     *query;
37         OgsTextSearcher *text_searcher; 
38 #endif
39 } ModestSearch;
40
41 GList * modest_search_folder (TnyFolder *folder, ModestSearch *search);
42 GList * modest_search_all_accounts (ModestSearch *search);
43 GList * modest_search_account (TnyAccount *account, ModestSearch *search);
44 G_END_DECLS
45
46 #endif
47