1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
* A wrapper object which exports the GNOME_Evolution_Addressbook_Book CORBA interface
* and which maintains a request queue.
*
* Author:
* Nat Friedman (nat@helixcode.com)
*
* Copyright 2000, Helix Code, Inc.
*/
#ifndef __PAS_BOOK_H__
#define __PAS_BOOK_H__
#include <bonobo/bonobo-object.h>
#include <libgnome/gnome-defs.h>
#include <pas/addressbook.h>
#include <pas/pas-book-view.h>
typedef struct _PASBook PASBook;
typedef struct _PASBookPrivate PASBookPrivate;
#include <pas/pas-backend.h>
#include <pas/pas-card-cursor.h>
typedef enum {
CreateCard,
RemoveCard,
ModifyCard,
GetCursor,
GetBookView,
GetChanges,
CheckConnection
} PASOperation;
typedef struct {
PASOperation op;
char *id;
char *vcard;
char *search;
char *change_id;
GNOME_Evolution_Addressbook_BookViewListener listener;
} PASRequest;
struct _PASBook {
BonoboObject parent_object;
PASBookPrivate *priv;
};
typedef struct {
BonoboObjectClass parent_class;
/* Signals */
void (*requests_queued) (void);
} PASBookClass;
typedef char * (*PASBookGetVCardFn) (PASBook *book, const char *id);
typedef gboolean (*PASBookCanWriteFn) (PASBook *book);
typedef gboolean (*PASBookCanWriteCardFn) (PASBook *book, const char *id);
PASBook *pas_book_new (PASBackend *backend,
GNOME_Evolution_Addressbook_BookListener listener,
PASBookGetVCardFn get_vcard,
PASBookCanWriteFn can_write,
PASBookCanWriteCardFn can_write_card);
PASBackend *pas_book_get_backend (PASBook *book);
GNOME_Evolution_Addressbook_BookListener pas_book_get_listener (PASBook *book);
int pas_book_check_pending (PASBook *book);
PASRequest *pas_book_pop_request (PASBook *book);
void pas_book_respond_open (PASBook *book,
GNOME_Evolution_Addressbook_BookListener_CallStatus status);
void pas_book_respond_create (PASBook *book,
GNOME_Evolution_Addressbook_BookListener_CallStatus status,
const char *id);
void pas_book_respond_remove (PASBook *book,
GNOME_Evolution_Addressbook_BookListener_CallStatus status);
void pas_book_respond_modify (PASBook *book,
GNOME_Evolution_Addressbook_BookListener_CallStatus status);
void pas_book_respond_get_cursor (PASBook *book,
GNOME_Evolution_Addressbook_BookListener_CallStatus status,
PASCardCursor *cursor);
void pas_book_respond_get_book_view (PASBook *book,
GNOME_Evolution_Addressbook_BookListener_CallStatus status,
PASBookView *book_view);
void pas_book_respond_get_changes (PASBook *book,
GNOME_Evolution_Addressbook_BookListener_CallStatus status,
PASBookView *book_view);
void pas_book_report_connection (PASBook *book,
gboolean connected);
gboolean pas_book_can_write (PASBook *book);
gboolean pas_book_can_write_card (PASBook *book,
const char *id);
GtkType pas_book_get_type (void);
#define PAS_BOOK_TYPE (pas_book_get_type ())
#define PAS_BOOK(o) (GTK_CHECK_CAST ((o), PAS_BOOK_TYPE, PASBook))
#define PAS_BOOK_CLASS(k) (GTK_CHECK_CLASS_CAST((k), PAS_BOOK_FACTORY_TYPE, PASBookClass))
#define PAS_IS_BOOK(o) (GTK_CHECK_TYPE ((o), PAS_BOOK_TYPE))
#define PAS_IS_BOOK_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), PAS_BOOK_TYPE))
#endif /* ! __PAS_BOOK_H__ */
|