signals.h

Go to the documentation of this file.
00001 
00025 #ifndef _GAIM_SIGNALS_H_
00026 #define _GAIM_SIGNALS_H_
00027 
00028 #include <glib.h>
00029 #include "value.h"
00030 
00031 #define GAIM_CALLBACK(func) ((GaimCallback)func)
00032 
00033 typedef void (*GaimCallback)(void);
00034 typedef void (*GaimSignalMarshalFunc)(GaimCallback cb, va_list args,
00035                                       void *data, void **return_val);
00036 
00037 #ifdef __cplusplus
00038 extern "C" {
00039 #endif
00040 
00041 /**************************************************************************/
00043 /**************************************************************************/
00049 #define GAIM_SIGNAL_PRIORITY_DEFAULT     0
00050 #define GAIM_SIGNAL_PRIORITY_HIGHEST  9999
00051 #define GAIM_SIGNAL_PRIORITY_LOWEST  -9999
00052 
00068 gulong gaim_signal_register(void *instance, const char *signal,
00069                             GaimSignalMarshalFunc marshal,
00070                             GaimValue *ret_value, int num_values, ...);
00071 
00078 void gaim_signal_unregister(void *instance, const char *signal);
00079 
00085 void gaim_signals_unregister_by_instance(void *instance);
00086 
00096 void gaim_signal_get_values(void *instance, const char *signal,
00097                             GaimValue **ret_value,
00098                             int *num_values, GaimValue ***values);
00099 
00117 gulong gaim_signal_connect_priority(void *instance, const char *signal,
00118                    void *handle, GaimCallback func, void *data, int priority);
00119 
00137 gulong gaim_signal_connect(void *instance, const char *signal,
00138                            void *handle, GaimCallback func, void *data);
00139 
00160 gulong gaim_signal_connect_priority_vargs(void *instance, const char *signal,
00161                     void *handle, GaimCallback func, void *data, int priority);
00162 
00182 gulong gaim_signal_connect_vargs(void *instance, const char *signal,
00183                                  void *handle, GaimCallback func, void *data);
00184 
00195 void gaim_signal_disconnect(void *instance, const char *signal,
00196                             void *handle, GaimCallback func);
00197 
00203 void gaim_signals_disconnect_by_handle(void *handle);
00204 
00214 void gaim_signal_emit(void *instance, const char *signal, ...);
00215 
00226 void gaim_signal_emit_vargs(void *instance, const char *signal, va_list args);
00227 
00236 void *gaim_signal_emit_return_1(void *instance, const char *signal, ...);
00237 
00247 void *gaim_signal_emit_vargs_return_1(void *instance, const char *signal,
00248                                       va_list args);
00249 
00253 void gaim_signals_init();
00254 
00258 void gaim_signals_uninit();
00259 
00262 /**************************************************************************/
00264 /**************************************************************************/
00267 void gaim_marshal_VOID(
00268         GaimCallback cb, va_list args, void *data, void **return_val);
00269 void gaim_marshal_VOID__INT(
00270         GaimCallback cb, va_list args, void *data, void **return_val);
00271 void gaim_marshal_VOID__INT_INT(
00272         GaimCallback cb, va_list args, void *data, void **return_val);
00273 void gaim_marshal_VOID__POINTER(
00274         GaimCallback cb, va_list args, void *data, void **return_val);
00275 void gaim_marshal_VOID__POINTER_UINT(
00276         GaimCallback cb, va_list args, void *data, void **return_val);
00277 void gaim_marshal_VOID__POINTER_POINTER(
00278         GaimCallback cb, va_list args, void *data, void **return_val);
00279 void gaim_marshal_VOID__POINTER_POINTER_UINT(
00280         GaimCallback cb, va_list args, void *data, void **return_val);
00281 void gaim_marshal_VOID__POINTER_POINTER_UINT_UINT(
00282         GaimCallback cb, va_list args, void *data, void **return_val);
00283 void gaim_marshal_VOID__POINTER_POINTER_POINTER(
00284         GaimCallback cb, va_list args, void *data, void **return_val);
00285 void gaim_marshal_VOID__POINTER_POINTER_POINTER_POINTER(
00286         GaimCallback cb, va_list args, void *data, void **return_val);
00287 void gaim_marshal_VOID__POINTER_POINTER_POINTER_POINTER_POINTER(
00288         GaimCallback cb, va_list args, void *data, void **return_val);
00289 void gaim_marshal_VOID__POINTER_POINTER_POINTER_UINT(
00290         GaimCallback cb, va_list args, void *data, void **return_val);
00291 void gaim_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT(
00292         GaimCallback cb, va_list args, void *data, void **return_val);
00293 
00294 void gaim_marshal_INT__INT(
00295         GaimCallback cb, va_list args, void *data, void **return_val);
00296 void gaim_marshal_INT__INT_INT(
00297         GaimCallback cb, va_list args, void *data, void **return_val);
00298 
00299 void gaim_marshal_BOOLEAN__POINTER(
00300         GaimCallback cb, va_list args, void *data, void **return_val);
00301 void gaim_marshal_BOOLEAN__POINTER_POINTER(
00302         GaimCallback cb, va_list args, void *data, void **return_val);
00303 void gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER(
00304         GaimCallback cb, va_list args, void *data, void **return_val);
00305 void gaim_marshal_BOOLEAN__POINTER_POINTER_UINT(
00306         GaimCallback cb, va_list args, void *data, void **return_val);
00307 void gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER_UINT(
00308         GaimCallback cb, va_list args, void *data, void **return_val);
00309 void gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER(
00310         GaimCallback cb, va_list args, void *data, void **return_val);
00311 void gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER(
00312         GaimCallback cb, va_list args, void *data, void **return_val);
00313 
00316 #ifdef __cplusplus
00317 }
00318 #endif
00319 
00320 #endif /* _GAIM_SIGNALS_H_ */

Generated on Sun Feb 18 07:36:17 2007 for gaim by  doxygen 1.5.1