Mercurial > ~mikael > mcabber > hg
diff mcabber/mcabber/events.h @ 1685:1342df44c814
Improved events interface
* User can pass additional arguments to event handler
* MUC invitation reject now can be supplied a reason
author | Myhailo Danylenko <isbear@ukrpost.net> |
---|---|
date | Tue, 02 Feb 2010 22:44:18 +0100 |
parents | 41c26b7d2890 |
children | e6d355e50d7a |
line wrap: on
line diff
--- a/mcabber/mcabber/events.h Tue Jan 19 19:16:38 2010 +0200 +++ b/mcabber/mcabber/events.h Tue Feb 02 22:44:18 2010 +0100 @@ -8,40 +8,18 @@ #define EVS_CONTEXT_TIMEOUT 0U #define EVS_CONTEXT_CANCEL 1U -#define EVS_CONTEXT_USER 2U +#define EVS_CONTEXT_ACCEPT 2U +#define EVS_CONTEXT_REJECT 3U +/* There can be other user-defined contexts */ -typedef enum { - EVS_TYPE_SUBSCRIPTION = 1, - EVS_TYPE_INVITATION = 2, -#ifdef MODULES_ENABLE - EVS_TYPE_USER = 3, -#endif -} evs_type; +typedef gboolean (*evs_callback_t)(guint context, const char *arg, gpointer userdata); -/* Common structure for events (evs) and IQ requests (iqs) */ -typedef struct { - char *id; - time_t ts_create; - time_t ts_expire; - guint8 type; - gpointer data; - int (*callback)(); - char *desc; -} eviqs; - -typedef struct { - char* to; - char* from; - char* passwd; - char* reason; -} event_muc_invitation; - -eviqs *evs_new(guint8 type, time_t timeout); -int evs_del(const char *evid); -int evs_callback(const char *evid, guint evcontext); -gboolean evs_check_timeout(); -void evs_display_list(void); -GSList *evs_geteventslist(int forcompl); +const char *evs_new(const char *description, const char *id, time_t timeout, evs_callback_t callback, gpointer userdata, GDestroyNotify notify); +int evs_del(const char *evid); +int evs_callback(const char *evid, guint evcontext, const char *arg); +void evs_display_list(void); +GSList *evs_geteventslist(void); +void evs_deinit(void); #endif /* __MCABBER_EVENTS_H__ */