aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/backend/ebook/e-book-listener.h
diff options
context:
space:
mode:
Diffstat (limited to 'addressbook/backend/ebook/e-book-listener.h')
-rw-r--r--addressbook/backend/ebook/e-book-listener.h83
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))