Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

signals.h

Go to the documentation of this file.
00001 
00025 #ifndef _GAIM_SIGNAL_H_
00026 #define _GAIM_SIGNAL_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 /**************************************************************************/
00061 gulong gaim_signal_register(void *instance, const char *signal,
00062                             GaimSignalMarshalFunc marshal,
00063                             GaimValue *ret_value, int num_values, ...);
00064 
00071 void gaim_signal_unregister(void *instance, const char *signal);
00072 
00078 void gaim_signals_unregister_by_instance(void *instance);
00079 
00089 void gaim_signal_get_values(void *instance, const char *signal,
00090                             GaimValue **ret_value,
00091                             int *num_values, GaimValue ***values);
00092 
00109 gulong gaim_signal_connect(void *instance, const char *signal,
00110                            void *handle, GaimCallback func, void *data);
00111 
00131 gulong gaim_signal_connect_vargs(void *instance, const char *signal,
00132                                  void *handle, GaimCallback func, void *data);
00133 
00144 void gaim_signal_disconnect(void *instance, const char *signal,
00145                             void *handle, GaimCallback func);
00146 
00152 void gaim_signals_disconnect_by_handle(void *handle);
00153 
00163 void gaim_signal_emit(void *instance, const char *signal, ...);
00164 
00175 void gaim_signal_emit_vargs(void *instance, const char *signal, va_list args);
00176 
00185 void *gaim_signal_emit_return_1(void *instance, const char *signal, ...);
00186 
00196 void *gaim_signal_emit_vargs_return_1(void *instance, const char *signal,
00197                                       va_list args);
00198 
00202 void gaim_signals_init();
00203 
00207 void gaim_signals_uninit();
00208 
00211 /**************************************************************************/
00213 /**************************************************************************/
00216 void gaim_marshal_VOID(
00217         GaimCallback cb, va_list args, void *data, void **return_val);
00218 void gaim_marshal_VOID__INT(
00219         GaimCallback cb, va_list args, void *data, void **return_val);
00220 void gaim_marshal_VOID__INT_INT(
00221         GaimCallback cb, va_list args, void *data, void **return_val);
00222 void gaim_marshal_VOID__POINTER(
00223         GaimCallback cb, va_list args, void *data, void **return_val);
00224 void gaim_marshal_VOID__POINTER_POINTER(
00225         GaimCallback cb, va_list args, void *data, void **return_val);
00226 void gaim_marshal_VOID__POINTER_POINTER_UINT(
00227         GaimCallback cb, va_list args, void *data, void **return_val);
00228 void gaim_marshal_VOID__POINTER_POINTER_POINTER(
00229         GaimCallback cb, va_list args, void *data, void **return_val);
00230 void gaim_marshal_VOID__POINTER_POINTER_POINTER_POINTER(
00231         GaimCallback cb, va_list args, void *data, void **return_val);
00232 void gaim_marshal_VOID__POINTER_POINTER_POINTER_UINT(
00233         GaimCallback cb, va_list args, void *data, void **return_val);
00234 void gaim_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT(
00235         GaimCallback cb, va_list args, void *data, void **return_val);
00236 
00237 void gaim_marshal_INT__INT(
00238         GaimCallback cb, va_list args, void *data, void **return_val);
00239 void gaim_marshal_INT__INT_INT(
00240         GaimCallback cb, va_list args, void *data, void **return_val);
00241 
00242 void gaim_marshal_BOOLEAN__POINTER(
00243         GaimCallback cb, va_list args, void *data, void **return_val);
00244 void gaim_marshal_BOOLEAN__POINTER_POINTER(
00245         GaimCallback cb, va_list args, void *data, void **return_val);
00246 void gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER(
00247         GaimCallback cb, va_list args, void *data, void **return_val);
00248 void gaim_marshal_BOOLEAN__POINTER_POINTER_UINT(
00249         GaimCallback cb, va_list args, void *data, void **return_val);
00250 void gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER_UINT(
00251         GaimCallback cb, va_list args, void *data, void **return_val);
00252 void gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER(
00253         GaimCallback cb, va_list args, void *data, void **return_val);
00254 void gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER(
00255         GaimCallback cb, va_list args, void *data, void **return_val);
00256 
00259 #ifdef __cplusplus
00260 }
00261 #endif
00262 
00263 #endif /* _GAIM_SIGNAL_H_ */

Generated on Sun Aug 29 03:45:05 2004 for gaim by doxygen 1.3.4