view plugins/gaiminc.c @ 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 8f94cce8faa5
children 70d5122bc3ff
line wrap: on
line source

//#include <gtk/gtk.h>
#include <time.h>
#include <stdio.h>
#include <fcntl.h>
#include <string.h>
#include "gaim.h"

#define GAIMINC_PLUGIN_ID "core-gaiminc"

void echo_hi(void *m) {
	/* this doesn't do much, just lets you know who we are :) */
	show_about(NULL, NULL);
}

void reverse(struct gaim_connection *gc, char **who, char **message, void *m) {
	/* this will drive you insane. whenever you receive a message,
	 * the text of the message (HTML and all) will be reversed. */
	int i, l;
	char tmp;

	/* this check is necessary in case bad plugins do bad things */
	if (message == NULL || *message == NULL)
		return;

	l = strlen(*message);

	if (!strcmp(*who, gc->username))
		return;

	for (i = 0; i < l/2; i++) {
		tmp = (*message)[i];
		(*message)[i] = (*message)[l - i - 1];
		(*message)[l - i - 1] = tmp;
	}
}

void bud(struct gaim_connection *gc, char *who, void *m) {
	/* whenever someone comes online, it sends them a message. if i
	 * cared more, i'd make it so it popped up on your screen too */
	serv_send_im(gc, who, "Hello!", -1, 0);
}

/*
 *  EXPORTED FUNCTIONS
 */

static gboolean
plugin_load(GaimPlugin *plugin)
{
	/* this is for doing something fun when we sign on */
	gaim_signal_connect(plugin, event_signon, echo_hi, NULL);

	/* this is for doing something fun when we get a message */
	gaim_signal_connect(plugin, event_im_recv, reverse, NULL);

	/* this is for doing something fun when a buddy comes online */
	gaim_signal_connect(plugin, event_buddy_signon, bud, NULL);

	return TRUE;
}

static GaimPluginInfo info =
{
	2,                                                /**< api_version    */
	GAIM_PLUGIN_STANDARD,                             /**< type           */
	NULL,                                             /**< ui_requirement */
	0,                                                /**< flags          */
	NULL,                                             /**< dependencies   */
	GAIM_PRIORITY_DEFAULT,                            /**< priority       */

	GAIMINC_PLUGIN_ID,                                /**< id             */
	N_("Gaim Demonstration Plugin"),                  /**< name           */
	VERSION,                                          /**< version        */
	                                                  /**  summary        */
	N_("An example plugin that does stuff - see the description."),
	                                                  /**  description    */
	N_("This is a really cool plugin that does a lot of stuff:\n"
	   "- It tells you who wrote the program when you log in\n"
	   "- It reverses all incoming text\n"
	   "- It sends a message to people on your list immediately"
	   " when they sign on"),
	"Eric Warmenhoven <eric@warmenhoven.org>",        /**< author         */
	GAIM_WEBSITE,                                          /**< homepage       */

	plugin_load,                                      /**< load           */
	NULL,                                    /**< unload         */
	NULL,                                             /**< destroy        */

	NULL,                                             /**< ui_info        */
	NULL                                              /**< extra_info     */
};

static void
init_plugin(GaimPlugin *plugin)
{
}

GAIM_INIT_PLUGIN(gaiminc, init_plugin, info)