1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 3 /* e-destination-store.h - EDestination store with GtkTreeModel interface. 4 * 5 * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) 6 * 7 * This program is free software; you can redistribute it and/or modify it 8 * under the terms of the GNU Lesser General Public License as published by 9 * the Free Software Foundation. 10 * 11 * This program is distributed in the hope that it will be useful, but 12 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 13 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public License 17 * along with this program; if not, see <http://www.gnu.org/licenses/>. 18 * 19 * Authors: Hans Petter Jansson <hpj@novell.com> 20 */ 21 22 #if !defined (__E_UTIL_H_INSIDE__) && !defined (LIBEUTIL_COMPILATION) 23 #error "Only <e-util/e-util.h> should be included directly." 24 #endif 25 26 #ifndef E_DESTINATION_STORE_H 27 #define E_DESTINATION_STORE_H 28 29 #include <gtk/gtk.h> 30 #include <libebook/libebook.h> 31 32 /* Standard GObject macros */ 33 #define E_TYPE_DESTINATION_STORE \ 34 (e_destination_store_get_type ()) 35 #define E_DESTINATION_STORE(obj) \ 36 (G_TYPE_CHECK_INSTANCE_CAST \ 37 ((obj), E_TYPE_DESTINATION_STORE, EDestinationStore)) 38 #define E_DESTINATION_STORE_CLASS(cls) \ 39 (G_TYPE_CHECK_CLASS_CAST \ 40 ((cls), E_TYPE_DESTINATION_STORE, EDestinationStoreClass)) 41 #define E_IS_DESTINATION_STORE(obj) \ 42 (G_TYPE_CHECK_INSTANCE_TYPE \ 43 ((obj), E_TYPE_DESTINATION_STORE)) 44 #define E_IS_DESTINATION_STORE_CLASS(cls) \ 45 (G_TYPE_CHECK_CLASS_TYPE \ 46 ((cls), E_TYPE_DESTINATION_STORE)) 47 #define E_DESTINATION_STORE_GET_CLASS(obj) \ 48 (G_TYPE_INSTANCE_GET_CLASS \ 49 ((obj), E_TYPE_DESTINATION_STORE, EDestinationStoreClass)) 50 51 G_BEGIN_DECLS 52 53 typedef struct _EDestinationStore EDestinationStore; 54 typedef struct _EDestinationStoreClass EDestinationStoreClass; 55 typedef struct _EDestinationStorePrivate EDestinationStorePrivate; 56 57 struct _EDestinationStore { 58 GObject parent; 59 EDestinationStorePrivate *priv; 60 }; 61 62 struct _EDestinationStoreClass { 63 GObjectClass parent_class; 64 }; 65 66 typedef enum { 67 E_DESTINATION_STORE_COLUMN_NAME, 68 E_DESTINATION_STORE_COLUMN_EMAIL, 69 E_DESTINATION_STORE_COLUMN_ADDRESS, 70 E_DESTINATION_STORE_NUM_COLUMNS 71 } EDestinationStoreColumnType; 72 73 GType e_destination_store_get_type (void) G_GNUC_CONST; 74 EDestinationStore * 75 e_destination_store_new (void); 76 EDestination * e_destination_store_get_destination 77 (EDestinationStore *destination_store, 78 GtkTreeIter *iter); 79 80 /* Returns a shallow copy; free the list when done, but don't unref elements */ 81 GList * e_destination_store_list_destinations 82 (EDestinationStore *destination_store); 83 84 void e_destination_store_insert_destination 85 (EDestinationStore *destination_store, 86 gint index, 87 EDestination *destination); 88 void e_destination_store_append_destination 89 (EDestinationStore *destination_store, 90 EDestination *destination); 91 void e_destination_store_remove_destination 92 (EDestinationStore *destination_store, 93 EDestination *destination); 94 void e_destination_store_remove_destination_nth 95 (EDestinationStore *destination_store, 96 gint n); 97 guint e_destination_store_get_destination_count 98 (EDestinationStore *destination_store); 99 GtkTreePath * e_destination_store_get_path (GtkTreeModel *tree_model, 100 GtkTreeIter *iter); 101 gint e_destination_store_get_stamp (EDestinationStore *destination_store); 102 103 G_END_DECLS 104 105 #endif /* E_DESTINATION_STORE_H */ 106