/+junk/libgego

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/%2Bjunk/libgego
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#include <glib-object.h>

#ifndef GEGO_GLOBAL_NOTIFY_HEADER
#define GEGO_GLOBAL_NOTIFY_HEADER

G_BEGIN_DECLS

#define GEGO_TYPE_GLOBEL_NOTIFY (gego_global_notify_get_type ())
#define GEGO_GLOBAL_NOTIFY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEGO_GLOBAL_NOTIFY_TYPE, GegoGlobalNotify))
#define GEGO_IS_GLOBAL_NOTIFY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEGO_GLOBAL_NOTIFY_TYPE))
#define GEGO_GLOBAL_NOTIFY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEGO_GLOBAL_NOTIFY_TYPE, GegoGlobalNotifyClass))
#define GEGO_GLOBAL_IS_NOTIFY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEGO_GLOBAL_NOTIFY))
#define GEGO_GLOBAL_NOTIFY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), G_GLOBEL_NOTIFY_TYPE, GegoGlobalNotifyClass))

typedef struct GegoGlobalNotify GegoGlobalNotify;
typedef struct GegoGlobalNotifyClass GegoGlobalNotifyClass;
typedef struct GegoGlobalNotifyPrivate GegoGlobalNotifyPrivate;

typedef struct GegoGlobalNotifyCallbackItem GegoGlobalNotifyCallbackItem;


struct
GegoGlobalNotify {
  GObject parent_instance;
};

struct
GegoGlobalNotifyClass {
  GObjectClass parent_class;
};

GType
gego_global_notify_get_type (void);

static void
gego_global_notify_init (GegoGlobalNotify * );


gboolean
gego_global_notify_initalize (GError * err);


gboolean
gego_global_notify_uninitalize (GError * err);




gint
gego_global_notify_add_notification (gchar * name, GError * err);


void
gego_global_notify_remove_notification (gchar * name,
                                        gint notification_id,
                                        GError * err);

gint
gego_global_notify_subscribe (gchar * name, GCallback callback,
                              gpointer subscriber_data,
                              GError * err);

void
gego_global_notify_unsubscribe (gchar * name,
                                gint subscription_id,
                                GError * err);

gint
gego_global_notify_call (gchar * name,
                         gpointer caller_data,
                         GError * err);

gboolean
gego_global_notify_is_initialized (void);

/**
 * gego_global_notify_return_not_initialized:
 * @short_description: convinience macro; returns with an error if Global Notify
 * is not initialized.
 *
 * @err: (type GError) An #GError to be passed to the macro.
 */
#define gego_global_notify_return_not_initialized(err)\
  if (!gego_global_notify_is_initialized ()) {\
    err = g_error_new (GEGO_GLOBAL_NOTIFY_ERROR,\
                       GEGO_GLOBAL_NOTIFY_ERROR_NOT_INITIALZED,\
                       "Global Notify is not initialized.");\
    return NULL;\
  }


GQuark
gego_global_notify_error_quark (void);

/**
 * GEGO_GLOBAL_NOTIFY_ERROR:
 * @short_description: A convinience wrapper around #gego_global_notify_error_quark()
 */
#define GEGO_GLOBAL_NOTIFY_ERROR gego_global_notify_error_quark ()

typedef enum {
  GEGO_GLOBAL_NOTIFY_ERROR_NONE,
  GEGO_GLOBAL_NOTIFY_ERROR_ALREADY_INITALIZED,
  GEGO_GLOBAL_NOTIFY_ERROR_NOT_INITIALZED,
  GEGO_GLOBAL_NOTIFY_ERROR_SIGNAL_ALREADY_EXISTS,
  GEGO_GLOBAL_NOTIFY_ERROR_SIGNAL_DOES_NOT_EXIST,
  GEGO_GLOBAL_NOTIFY_ERROR_INVALID_SUBSCRIPTION_ID,
  GEGO_GLOBAL_NOTIFY_ERROR_LAST
} GegoGlobalNotifyError;

/**
 * GegoGlobalNotifyErrorName:
 * @short_description: Get the name of the error.
 */
gchar *
GegoGlobalNotifyErrorName[] __attribute__((unused)) = {
  "NONE",
  "Already initialized",
  "Not initialized",
  "Signal already exists",
  "Signal does not exist",
  "Invalid subscription id",
  0x0
};

/**
 * Macro to get the name of the error.
 */
#define gego_global_notify_error_get_name(k)\
  GegoGlobalNotifyErrorName[k]

G_END_DECLS

#endif /* GEGO_GLOBAL_NOTIFY_HEADER */