From fd4379ff20fe9c9e3b4f4028095b9659687002ff Mon Sep 17 00:00:00 2001 From: Nat Friedman Date: Tue, 25 Jan 2000 05:28:18 +0000 Subject: More work. svn path=/trunk/; revision=1626 --- addressbook/backend/ebook/e-book-listener.h | 83 ++++++++++++++++++----------- 1 file changed, 53 insertions(+), 30 deletions(-) (limited to 'addressbook/backend/ebook/e-book-listener.h') diff --git a/addressbook/backend/ebook/e-book-listener.h b/addressbook/backend/ebook/e-book-listener.h index 71004a966a..9873edc58c 100644 --- a/addressbook/backend/ebook/e-book-listener.h +++ b/addressbook/backend/ebook/e-book-listener.h @@ -12,47 +12,70 @@ #define __E_BOOK_LISTENER_H__ #include - #include #include - #include BEGIN_GNOME_DECLS -typedef struct _EBookListener EBookListener; - -typedef void (*EBookListenerRespondOpenBookCallback) (EBook *book, - EBookStatus status, - Evolution_Book corba_book, - gpointer closure); - -typedef void (*EBookListenerConnectionStatusCallback) (EBook *book, - gboolean connected, - gpointer closure); - -struct _EBookListener { - GnomeObject parent; - - EBook *book; - - gpointer closure; - - EBookCallback create_response; - EBookCallback remove_response; - EBookCallback modify_response; - - EBookOpenProgressCallback open_progress; - EBookListenerRespondOpenBookCallback open_response; - EBookListenerConnectionStatusCallback connect_status; -}; +typedef struct _EBookListenerPrivate EBookListenerPrivate; + +typedef struct { + GnomeObject parent; + EBookListenerPrivate *priv; +} EBookListener; typedef struct { GnomeObjectClass parent; + + /* + * Signals + */ + void (*responses_queued) (void); } EBookListenerClass; -EBookListener *e_book_listener_new (EBook *book); -GtkType e_book_listener_get_type (void); +typedef enum { + /* Async responses */ + OpenBookResponse, + CreateCardResponse, + RemoveCardResponse, + ModifyCardResponse, + + /* Async events */ + CardAddedEvent, + CardRemovedEvent, + CardModifiedEvent, + LinkStatusEvent, + OpenProgressEvent, +} EBookListenerOperation; + +typedef struct { + EBookListenerOperation op; + + /* For most Response notifications */ + EBookStatus status; + + /* For OpenBookResponse */ + Evolution_Book book; + + /* For OpenProgressEvent */ + char *msg; + short percent; + + /* For LinkStatusEvent */ + gboolean connected; + + /* For Card[Added|Removed|Modified]Event */ + char *id; +} EBookListenerResponse; + +EBookListener *e_book_listener_new (EBook *book); +EBook *e_book_listener_get_book (EBookListener *listener); +int e_book_listener_check_pending (EBookListener *listener); +EBookListenerResponse *e_book_listener_pop_response (EBookListener *listener); +GtkType e_book_listener_get_type (void); + +POA_Evolution_BookListener__epv *e_book_listener_get_epv (void); #define E_BOOK_LISTENER_TYPE (e_book_listener_get_type ()) #define E_BOOK_LISTENER(o) (GTK_CHECK_CAST ((o), E_BOOK_LISTENER_TYPE, EBookListener)) -- cgit v1.2.3