1
#include <glib-object.h>
3
#ifndef GEGO_GLOBAL_NOTIFY_HEADER
4
#define GEGO_GLOBAL_NOTIFY_HEADER
8
#define GEGO_TYPE_GLOBEL_NOTIFY (gego_global_notify_get_type ())
9
#define GEGO_GLOBAL_NOTIFY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEGO_GLOBAL_NOTIFY_TYPE, GegoGlobalNotify))
10
#define GEGO_IS_GLOBAL_NOTIFY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEGO_GLOBAL_NOTIFY_TYPE))
11
#define GEGO_GLOBAL_NOTIFY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEGO_GLOBAL_NOTIFY_TYPE, GegoGlobalNotifyClass))
12
#define GEGO_GLOBAL_IS_NOTIFY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEGO_GLOBAL_NOTIFY))
13
#define GEGO_GLOBAL_NOTIFY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), G_GLOBEL_NOTIFY_TYPE, GegoGlobalNotifyClass))
15
typedef struct GegoGlobalNotify GegoGlobalNotify;
16
typedef struct GegoGlobalNotifyClass GegoGlobalNotifyClass;
17
typedef struct GegoGlobalNotifyPrivate GegoGlobalNotifyPrivate;
19
typedef struct GegoGlobalNotifyCallbackItem GegoGlobalNotifyCallbackItem;
24
GObject parent_instance;
28
GegoGlobalNotifyClass {
29
GObjectClass parent_class;
33
gego_global_notify_get_type (void);
36
gego_global_notify_init (GegoGlobalNotify * );
40
gego_global_notify_initalize (GError * err);
44
gego_global_notify_uninitalize (GError * err);
50
gego_global_notify_add_notification (gchar * name, GError * err);
54
gego_global_notify_remove_notification (gchar * name,
59
gego_global_notify_subscribe (gchar * name, GCallback callback,
60
gpointer subscriber_data,
64
gego_global_notify_unsubscribe (gchar * name,
69
gego_global_notify_call (gchar * name,
74
gego_global_notify_is_initialized (void);
77
* gego_global_notify_return_not_initialized:
78
* @short_description: convinience macro; returns with an error if Global Notify
81
* @err: (type GError) An #GError to be passed to the macro.
83
#define gego_global_notify_return_not_initialized(err)\
84
if (!gego_global_notify_is_initialized ()) {\
85
err = g_error_new (GEGO_GLOBAL_NOTIFY_ERROR,\
86
GEGO_GLOBAL_NOTIFY_ERROR_NOT_INITIALZED,\
87
"Global Notify is not initialized.");\
93
gego_global_notify_error_quark (void);
96
* GEGO_GLOBAL_NOTIFY_ERROR:
97
* @short_description: A convinience wrapper around #gego_global_notify_error_quark()
99
#define GEGO_GLOBAL_NOTIFY_ERROR gego_global_notify_error_quark ()
102
GEGO_GLOBAL_NOTIFY_ERROR_NONE,
103
GEGO_GLOBAL_NOTIFY_ERROR_ALREADY_INITALIZED,
104
GEGO_GLOBAL_NOTIFY_ERROR_NOT_INITIALZED,
105
GEGO_GLOBAL_NOTIFY_ERROR_SIGNAL_ALREADY_EXISTS,
106
GEGO_GLOBAL_NOTIFY_ERROR_SIGNAL_DOES_NOT_EXIST,
107
GEGO_GLOBAL_NOTIFY_ERROR_INVALID_SUBSCRIPTION_ID,
108
GEGO_GLOBAL_NOTIFY_ERROR_LAST
109
} GegoGlobalNotifyError;
112
* GegoGlobalNotifyErrorName:
113
* @short_description: Get the name of the error.
116
GegoGlobalNotifyErrorName[] __attribute__((unused)) = {
118
"Already initialized",
120
"Signal already exists",
121
"Signal does not exist",
122
"Invalid subscription id",
127
* Macro to get the name of the error.
129
#define gego_global_notify_error_get_name(k)\
130
GegoGlobalNotifyErrorName[k]
134
#endif /* GEGO_GLOBAL_NOTIFY_HEADER */