Mercurial > pidgin.yaz
comparison src/signals.h @ 6564:800ef4a51096
[gaim-migrate @ 7086]
gaim_signal_register now takes a GaimValue return value and param types.
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Thu, 21 Aug 2003 21:54:36 +0000 |
parents | c53a3f0649eb |
children | 41120df7ed94 |
comparison
equal
deleted
inserted
replaced
6563:122cb375be2d | 6564:800ef4a51096 |
---|---|
22 */ | 22 */ |
23 #ifndef _GAIM_SIGNAL_H_ | 23 #ifndef _GAIM_SIGNAL_H_ |
24 #define _GAIM_SIGNAL_H_ | 24 #define _GAIM_SIGNAL_H_ |
25 | 25 |
26 #include <glib.h> | 26 #include <glib.h> |
27 #include "value.h" | |
27 | 28 |
28 #define GAIM_CALLBACK(func) ((GaimCallback)func) | 29 #define GAIM_CALLBACK(func) ((GaimCallback)func) |
29 | 30 |
30 typedef void (*GaimCallback)(void); | 31 typedef void (*GaimCallback)(void); |
31 typedef void (*GaimSignalMarshalFunc)(GaimCallback cb, va_list args, | 32 typedef void (*GaimSignalMarshalFunc)(GaimCallback cb, va_list args, |
41 /*@{*/ | 42 /*@{*/ |
42 | 43 |
43 /** | 44 /** |
44 * Registers a signal in an instance. | 45 * Registers a signal in an instance. |
45 * | 46 * |
46 * @param instance The instance to register the signal for. | 47 * @param instance The instance to register the signal for. |
47 * @param signal The signal name. | 48 * @param signal The signal name. |
48 * @param marshal The marshal function. | 49 * @param marshal The marshal function. |
50 * @param ret_value The return value type, or NULL for no return value. | |
51 * @param num_types The number of values to be passed to the callbacks. | |
52 * @param ... The values to pass to the callbacks. | |
49 * | 53 * |
50 * @return The signal ID local to that instance, or 0 if the signal | 54 * @return The signal ID local to that instance, or 0 if the signal |
51 * couldn't be registered. | 55 * couldn't be registered. |
56 * | |
57 * @see GaimValue | |
52 */ | 58 */ |
53 gulong gaim_signal_register(void *instance, const char *signal, | 59 gulong gaim_signal_register(void *instance, const char *signal, |
54 GaimSignalMarshalFunc marshal); | 60 GaimSignalMarshalFunc marshal, |
61 GaimValue *ret_value, int num_values, ...); | |
55 | 62 |
56 /** | 63 /** |
57 * Unregisters a signal in an instance. | 64 * Unregisters a signal in an instance. |
58 * | 65 * |
59 * @param instance The instance to unregister the signal for. | 66 * @param instance The instance to unregister the signal for. |
65 * Unregisters all signals in an instance. | 72 * Unregisters all signals in an instance. |
66 * | 73 * |
67 * @param instance The instance to unregister the signal for. | 74 * @param instance The instance to unregister the signal for. |
68 */ | 75 */ |
69 void gaim_signals_unregister_by_instance(void *instance); | 76 void gaim_signals_unregister_by_instance(void *instance); |
77 | |
78 /** | |
79 * Returns a list of value types used for a signal. | |
80 * | |
81 * @param instance The instance the signal is registered to. | |
82 * @param signal The signal. | |
83 * @param num_values The returned number of values. | |
84 * @param values The returned list of values. | |
85 */ | |
86 void gaim_signal_get_values(void *instance, const char *signal, | |
87 GaimValue **ret_value, | |
88 int *num_values, GaimValue ***values); | |
70 | 89 |
71 /** | 90 /** |
72 * Connects a signal handler to a signal for a particular object. | 91 * Connects a signal handler to a signal for a particular object. |
73 * | 92 * |
74 * Take care not to register a handler function twice. Gaim will | 93 * Take care not to register a handler function twice. Gaim will |