Do ignore empty recipients when checking names
[modest] / src / modest-address-book.h
1 /* Copyright (c) 2007, Nokia Corporation
2  * All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are
6  * met:
7  *
8  * * Redistributions of source code must retain the above copyright
9  *   notice, this list of conditions and the following disclaimer.
10  * * Redistributions in binary form must reproduce the above copyright
11  *   notice, this list of conditions and the following disclaimer in the
12  *   documentation and/or other materials provided with the distribution.
13  * * Neither the name of the Nokia Corporation nor the names of its
14  *   contributors may be used to endorse or promote products derived from
15  *   this software without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
18  * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
19  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
20  * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
21  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
24  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
25  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  */
29
30 /* modest-address-book.h */
31
32 #ifndef __MODEST_ADDRESS_BOOK_H__
33 #define __MODEST_ADDRESS_BOOK_H__
34
35 #include <gtk/gtkwindow.h>
36 #include <glib.h>
37 #include <widgets/modest-recpt-editor.h>
38
39 /**
40  * modest_address_book_init:
41  *
42  * initializes the addressbook
43  */
44 void
45 modest_address_book_init (void);
46
47 /**
48  * modest_address_book_add_address:
49  * @address: a string
50  *
51  * launches the UI for adding @address to the addressbook
52  */
53 void
54 modest_address_book_add_address (const gchar *address,
55                                  GtkWindow *parent);
56
57 /**
58  * modest_address_book_select_addresses:
59  * 
60  * Shows a dialog to select some addresses from the 
61  * address book. It adds them to the recipient editor
62  *
63  */
64 void
65 modest_address_book_select_addresses (ModestRecptEditor *editor,
66                                       GtkWindow *parent_window);
67
68 /**
69  * modest_address_book_check_names:
70  * @editor: a #ModestRecptEditor
71  * @address_list: if it is not NULL, this list is filled with the
72  * valid addresses ready to be added to the address book
73  *
74  * Performs verification of addresses in a recipient editor.
75  *
76  * Returns: %TRUE if all recipients are valid or there are
77  * no recipients, %FALSE otherwise.
78  */
79 gboolean
80 modest_address_book_check_names (ModestRecptEditor *editor,
81                                  GSList **address_list);
82
83 /**
84  * modest_address_book_has_address:
85  * @address: a string
86  *
87  * Checks if an address is already stored in addressbook.
88  *
89  * Returns: %TRUE is @address is in addressbook. %FALSE otherwise.
90  */
91 gboolean
92 modest_address_book_has_address (const gchar *address);
93
94 /**
95  * modest_address_book_get_my_name:
96  * @:
97  *
98  * Returns user name from user's own vcard
99  *
100  * Returns: the user full name
101  **/
102 const gchar *
103 modest_address_book_get_my_name ();
104
105 /**
106  * modest_address_book_add_address_list:
107  * @address_list: a list of email addresses to add to the addressbook
108  *
109  * Inserts a list of addresses in the addressbook
110  **/
111 void
112 modest_address_book_add_address_list (GSList *address_list);
113
114 /**
115  * modest_address_book_add_address_list_with_selector:
116  * @address_list: a list of email addresses to add to the addressbook
117  * @parent: the parent window. The UI elements shown to the user
118  * (tipically a dialog) will have that window as parent
119  *
120  * Presents some UI to the users to allow them to select and then
121  * insert a list of selected addresses in the addressbook.
122  **/
123 void
124 modest_address_book_add_address_list_with_selector (GSList *address_list,
125                                                     GtkWindow *parent);
126
127 #endif /* __MODEST_ADDRESS_BOOK_H__ */