diff options
Diffstat (limited to 'addressbook/backend/ebook/e-book-listener.h')
-rw-r--r-- | addressbook/backend/ebook/e-book-listener.h | 83 |
1 files changed, 53 insertions, 30 deletions
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 <libgnome/gnome-defs.h> - #include <bonobo/gnome-object.h> #include <e-book.h> - #include <addressbook.h> 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)) |