3dbdc8ddbac69fe7b2e4721f01b3660f81d0ec96
[claws.git] / src / addr_compl.h
1 /*
2  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
3  * 
4  * Copyright (C) 2000-2012 by Alfons Hoogervorst & The Claws Mail Team.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program. If not, see <http://www.gnu.org/licenses/>.
18  *
19  */
20
21 #ifndef __ADDR_COMPL_H__
22 #define __ADDR_COMPL_H__
23
24 #include <gtk/gtk.h>
25
26 #define ADDDRESS_COMPLETION_BUILD_ADDRESS_LIST_HOOKLIST "address_completion_build_address_list_hooklist"
27
28 /**
29  * address_entry - structure which refers to the original address entry in the
30  * address book .
31  */
32 typedef struct
33 {
34     gchar *name;
35     gchar *address;
36     GList *grp_emails;
37 } address_entry;
38
39 gint start_address_completion           (gchar *folderpath);
40 guint complete_address                  (const gchar *str);
41 guint complete_matches_found                            (const gchar *str);
42 gchar *get_complete_address             (gint index);
43 gint invalidate_address_completion      (void);
44 gint end_address_completion             (void);
45
46 /* ui functions */
47 void address_completion_start           (GtkWidget *mainwindow);
48 void address_completion_register_entry  (GtkEntry  *entry, gboolean allow_commas);
49 void address_completion_unregister_entry(GtkEntry  *entry);
50 void address_completion_end             (GtkWidget *mainwindow);
51
52 void addrcompl_initialize       ( void );
53 void addrcompl_teardown         ( void );
54
55 void addr_compl_add_address1(const char *str, address_entry *ae);
56
57 #endif /* __ADDR_COMPL_H__ */