2006-07-31 [wwp] 2.4.0cvs3
[claws.git] / src / addressbook.h
index d459510dfdd6d410329b87bb3fa73c038c91a1fb..c83fcd10c829ded7a6d618723bb2965ec91a3846 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999,2000 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2006 Hiroyuki Yamamoto and the Sylpheed-Claws team
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -14,7 +14,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
 #ifndef __ADDRESSBOOK_H__
 
 #include <glib.h>
 #include <gtk/gtkwidget.h>
-#include <gtk/gtkitemfactory.h>
-#include <gtk/gtkctree.h>
-
-#include "addressitem.h"
-#include "vcard.h"
-
-#ifdef USE_JPILOT
-#include "jpilot.h"
-#endif
-
-#ifdef USE_LDAP
-#include "syldap.h"
-#endif
-
-#define ADDRESS_GROUP(obj)             ((AddressGroup *)obj)
-#define ADDRESS_FOLDER(obj)            ((AddressFolder *)obj)
-#define ADDRESS_VCARD(obj)             ((AddressVCard *)obj)
-#define ADDRESS_JPILOT(obj)            ((AddressJPilot *)obj)
-#define ADDRESS_CATEGORY(obj)          ((AddressCategory *)obj)
-#define ADDRESS_LDAP(obj)              ((AddressLDAP *)obj)
-
 
 #include "compose.h"
-
-typedef struct _AddressBook    AddressBook;
-struct _AddressBook
-{
-       GtkWidget *window;
-       GtkWidget *menubar;
-       GtkWidget *ctree;
-       GtkWidget *clist;
-       GtkWidget *entry;
-       GtkWidget *statusbar;
-
-       GtkWidget *del_btn;
-       GtkWidget *reg_btn;
-       GtkWidget *lup_btn;
-       GtkWidget *to_btn;
-       GtkWidget *cc_btn;
-       GtkWidget *bcc_btn;
-
-       GtkWidget *tree_popup;
-       GtkWidget *list_popup;
-       GtkItemFactory *tree_factory;
-       GtkItemFactory *list_factory;
-       GtkItemFactory *menu_factory;
-
-       GtkCTreeNode *common;
-       GtkCTreeNode *personal;
-       GtkCTreeNode *vcard;
-       GtkCTreeNode *jpilot;
-       GtkCTreeNode *ldap;
-       GtkCTreeNode *selected;
-       GtkCTreeNode *opened;
-
-       gboolean open_folder;
-
-       Compose *target_compose;
-       gint status_cid;
-};
-
-typedef struct _AddressGroup   AddressGroup;
-struct _AddressGroup
-{
-       AddressObject obj;
-
-       gchar *name;
-
-       /* Group contains only Items */
-       GList *items;
-};
-
-typedef struct _AddressFolder  AddressFolder;
-struct _AddressFolder
-{
-       AddressObject obj;
-
-       gchar *name;
-
-       /* Folder contains Groups and Items */
-       GList *items;
-};
-
-typedef struct _AddressVCard   AddressVCard;
-struct _AddressVCard
-{
-       AddressObject obj;
-
-       gchar *name;
-       VCardFile *cardFile;
-
-       /* Folder contains only VCards */
-       GList *items;
-};
-
-#ifdef USE_JPILOT
-typedef struct _AddressJPilot  AddressJPilot;
-struct _AddressJPilot
-{
-       AddressObject obj;
-
-       gchar *name;
-       JPilotFile *pilotFile;
-
-       /* Folder contains only JPilotFiles */
-       /* Folder contains only Items for each category */
-       GList *items;
-};
-
-typedef struct _AddressCategory        AddressCategory;
-struct _AddressCategory
-{
-       AddressObject obj;
-
-       gchar *name;
-       JPilotFile *pilotFile;
-       AddressItem *category;
-
-       /* Category contains only Items */
-       GList *items;
-};
-#endif
-
-#ifdef USE_LDAP
-typedef struct _AddressLDAP    AddressLDAP;
-struct _AddressLDAP
-{
-       AddressObject obj;
-
-       gchar *name;
-       SyldapServer *ldapServer;
-
-       /* Folder contains only SyldapServers */
-       GList *items;
-};
-#endif
-
-struct _AddressFileSelection {
-       GtkWidget *fileSelector;
-       gboolean cancelled;
-};
-typedef struct _AddressFileSelection AddressFileSelection;
-
-void addressbook_open                  (Compose        *target);
-void addressbook_set_target_compose    (Compose        *target);
-Compose *addressbook_get_target_compose        (void);
-void addressbook_export_to_file                (void);
-
-/* provisional API for accessing the address book */
-
-void addressbook_access (void);
-void addressbook_unaccess (void);
-
-const gchar *addressbook_get_personal_folder_name (void);
-const gchar *addressbook_get_common_folder_name (void);
-
-AddressObject *addressbook_find_group_by_name (const gchar *name);
-AddressObject *addressbook_find_contact (const gchar *name, const gchar *address);
-GList *addressbook_get_group_list (void);
-gint addressbook_add_contact  (const gchar *group, const gchar *name, 
-                               const gchar *address, const gchar *remarks); 
-
-gboolean addressbook_add_submenu(GtkWidget   *submenu,
-                                const gchar *name,
-                                const gchar *address,
-                                const gchar *remarks);
+#include "addritem.h"
+#include "addrindex.h"
+
+void addressbook_open                  ( Compose *target );
+void addressbook_set_target_compose    ( Compose *target );
+Compose *addressbook_get_target_compose        ( void );
+void addressbook_read_file             ( void );
+void addressbook_export_to_file                ( void );
+gint addressbook_obj_name_compare      ( gconstpointer a,
+                                         gconstpointer b );
+void addressbook_destroy               ( void );
+
+gboolean addressbook_add_contact       ( const gchar *name,
+                                         const gchar *address,
+                                         const gchar *remarks );
+                                         
+gboolean addressbook_folder_selection( gchar **folderpath );
+gboolean addressbook_peek_folder_exists( gchar *folderpath,
+                                                                                AddressDataSource **book,
+                                                                                ItemFolder **folder );
+
+gboolean addressbook_load_completion   (gint (*callBackFunc) 
+                                              (const gchar *, 
+                                               const gchar *, 
+                                               const gchar *));
+
+void addressbook_gather                        ( FolderItem *folderItem,
+                                         gboolean sourceInd,
+                                         GList *msgList );
+void addressbook_harvest               ( FolderItem *folderItem,
+                                         gboolean sourceInd,
+                                         GList *msgList);
+
+void addressbook_read_all              ( void );
 
 #endif /* __ADDRESSBOOK_H__ */
+