view src/event.h @ 6463:eafaf58b61b6

[gaim-migrate @ 6972] (23:03:49) Robot101: LSchiere: GAIM_{ERROR,WARNING,INFO,...} and EDIT_{GC,GROUP,BUDDY} in ui.h are unused and can be garbage collected (23:04:10) Robot101: HEH (23:04:16) Robot101: I never knew core.h had trogdor in it =) (23:04:26) LSchiere: those are semi-namespaced, does ChipX86|Gone have plans for them? (23:04:41) Robot101: they're deprecated. (23:04:46) Robot101: not used anywhere in code (23:05:01) Robot101: left over garbage from a subsystem rewritten years ago... =) (23:05:26) LSchiere: icq.c uses GAIM_ERROR (23:06:05) Robot101: icq.c hasn't had a rat's chance in hell of compiling since about 0.64 =) (23:06:16) LSchiere: lol, yeah that's probly true (23:06:30) Robot101: it still uses do_error_dialog (23:06:35) Robot101: which is, er, gone. =) (23:06:56) LSchiere: GAIM_LOGO is that used? (23:07:04) Robot101: no (23:07:18) Robot101: those 4 were for selecting the icons in the error dialog (23:07:23) Robot101: which is long gone (23:07:34) Robot101: and I have NFI what EDIT_* were, but they're not used either (23:08:06) Robot101: some day soon ui.h will be totally gone (23:08:07) ***Robot101 drools committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Thu, 14 Aug 2003 03:08:25 +0000
parents 5239a3b4ab33
children
line wrap: on
line source

/**
 * @file event.h Event API
 * @ingroup core
 *
 * gaim
 *
 * Copyright (C) 2003 Christian Hammond <chipx86@gnupdate.org>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
#ifndef _GAIM_EVENT_H_
#define _GAIM_EVENT_H_

#include <glib.h>

/**
 * Event types
 */
typedef enum gaim_event
{
	event_signon = 0,
	event_signoff,
	event_away,
	event_back,
	event_im_recv,
	event_im_send,
	event_buddy_signon,
	event_buddy_signoff,
	event_buddy_away,
	event_buddy_back,
	event_buddy_idle,
	event_buddy_unidle,
	event_blist_update,
	event_chat_invited,
	event_chat_join,
	event_chat_leave,
	event_chat_buddy_join,
	event_chat_buddy_leave,
	event_chat_recv,
	event_chat_send,
	event_warned,
	event_error,
	event_quit,
	event_new_conversation,
	event_set_info,
	event_draw_menu,
	event_im_displayed_sent,
	event_im_displayed_rcvd,
	event_chat_send_invite,
	event_got_typing,
	event_del_conversation,
	event_connecting,
	event_conversation_switch
	/* any others? it's easy to add... */

} GaimEvent;

typedef int (*GaimSignalBroadcastFunc)(GaimEvent event, void *data,
									   va_list args);


#ifdef __cplusplus
extern "C" {
#endif

/**************************************************************************/
/** @name  Signal API                                                     */
/**************************************************************************/
/**
 * Connects a signal handler to a gaim event.
 *
 * @param module The optional module handle.
 * @param event  The event to connect to.
 * @param func   The callback function.
 * @param data   The data to pass to the callback function.
 *
 * @see gaim_signal_disconnect()
 */
void gaim_signal_connect(void *module, GaimEvent event,
						 void *func, void *data);

/**
 * Disconnects a signal handler from a gaim event.
 *
 * @param module The optional module handle.
 * @param event  The event to disconnect from.
 * @param func   The registered function to disconnect.
 *
 * @see gaim_signal_connect()
 */
void gaim_signal_disconnect(void *module, GaimEvent event,
							void *func);

/**
 * Removes all callbacks associated with a handle.
 *
 * @param handle The handle.
 */
void gaim_signals_disconnect_by_handle(void *handle);

/**
 * Registers a function that re-broadcasts events.
 *
 * @param func The function.
 * @param data Data to be passed to the callback.
 */
void gaim_signals_register_broadcast_func(GaimSignalBroadcastFunc func,
										  void *data);

/**
 * Unregisters a function that re-broadcasts events.
 *
 * @param func The function.
 */
void gaim_signals_unregister_broadcast_func(GaimSignalBroadcastFunc func);

/**
 * Returns a list of all signal callbacks.
 *
 * @return A list of all signal callbacks.
 */
GList *gaim_signals_get_callbacks(void);

/**
 * Broadcasts an event to all registered signal handlers.
 *
 * @param event The event to broadcast
 *
 * @see gaim_signal_connect()
 * @see gaim_signal_disconnect()
 */
int gaim_event_broadcast(GaimEvent event, ...);

/**
 * Returns a human-readable representation of an event name.
 *
 * @param event The event.
 *
 * @return A human-readable string of the name.
 */
const char *gaim_event_get_name(GaimEvent event);

/*@}*/

#ifdef __cplusplus
}
#endif

#endif /* _GAIM_EVENT_H_ */