1 /* -*-mode:c; c-style:k&r; c-basic-offset:4; -*- */
2 /* Balsa E-Mail Client
3  * Copyright (C) 1997-2013 Stuart Parmenter and others,
4  *                         See the file AUTHORS for a list.
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 2, or (at your option)
9  * 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, write to the Free Software
18  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19  * 02111-1307, USA.
20  */
21 
22 #ifndef __AB_WINDOW_H__
23 #define __AB_WINDOW_H__
24 
25 #include <gtk/gtk.h>
26 #include <libbalsa.h>
27 
28 #define BALSA_TYPE_AB_WINDOW            (balsa_ab_window_get_type ())
29 #define BALSA_AB_WINDOW(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), BALSA_TYPE_AB_WINDOW, BalsaAbWindow))
30 #define BALSA_AB_WINDOW_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), BALSA_TYPE_AB_WINDOW, BalsaAbWindowClass))
31 #define BALSA_IS_AB_WINDOW(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BALSA_TYPE_AB_WINDOW))
32 #define BALSA_IS_AB_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BALSA_TYPE_AB_WINDOW))
33 
34 
35 typedef struct _BalsaAbWindow BalsaAbWindow;
36 typedef struct _BalsaAbWindowClass BalsaAbWindowClass;
37 
38 struct _BalsaAbWindow
39 {
40     GtkDialog parent;
41 
42     /* Are we composing? */
43     gboolean composing;
44 
45     /* The current address book */
46     LibBalsaAddressBook *current_address_book;
47 
48     /* the filter entry */
49     GtkWidget *filter_entry;
50 
51     /* The address list */
52     GtkWidget *address_list;
53 
54     /* The send to list */
55     GtkWidget *recipient_list;
56 
57     /* Radio buttons for dist list mode */
58     GtkWidget *single_address_mode_radio;
59     GtkWidget *dist_address_mode_radio;
60     guint      toggle_handler_id;
61 
62     /* Stuff to hide when not in compose mode */
63     GtkWidget *send_to_label;
64     GtkWidget *send_to_list;
65     GtkWidget *arrow_box;
66 
67     /* The address book list */
68     GtkWidget *combo_box;
69 };
70 
71 GType balsa_ab_window_get_type(void);
72 GtkWidget *balsa_ab_window_new(gboolean composing, GtkWindow* parent);
73 
74 gchar *balsa_ab_window_get_recipients(BalsaAbWindow *ab);
75 
76 
77 #endif				/* __ADDRESS_BOOK_H__ */
78