view plugins/autorecon.c @ 606:eaab8abda2c0

[gaim-migrate @ 616] ok, a few changes. 1) --enable-gnome (which is the default) can make sounds go through gnome, which means they're configurable. they can still go through gaim. 2) --enable-gnome will also install the necessary files to make sounds through gnome work. 3) the rpm will be built without gnome; if a distributor later wants to require gnome that's up to them. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Fri, 04 Aug 2000 17:13:54 +0000
parents c754e5ae442a
children d96b511972fe
line wrap: on
line source

#define GAIM_PLUGINS
#include "gaim.h"
#include <gtk/gtk.h>

extern GtkWidget *imaway;

static int recon;
static int away_state;
static int forced_off = 0;
static struct away_message *last_away;

char *name() {
	return "Auto Reconnect";
}

char *description() {
	return "When AOL kicks you off, this auto-reconnects you.";
}

extern void dologin(GtkWidget *, GtkWidget *);

void do_signon() {
	dologin(NULL, NULL);
	if (blist) {
		gtk_timeout_remove(recon);
		forced_off = 0;
		if (away_state)
			do_away_message(NULL, last_away);
		return;
	}
}

void reconnect(void *m) {
	recon = gtk_timeout_add(2000, (GtkFunction)do_signon, NULL);
	forced_off = 1;
}

void away_toggle(void *m) {
	if ((int)m == 1) {
		last_away = awaymessage;
		away_state = 1;
	} else if (!forced_off)
		away_state = 0;
}

void gaim_plugin_init(void *handle) {
	if (imaway) {
		away_state = 1;
		last_away = awaymessage;
	} else
		away_state = 0;

	gaim_signal_connect(handle, event_away, away_toggle, (void *)1);
	gaim_signal_connect(handle, event_back, away_toggle, (void *)0);
	gaim_signal_connect(handle, event_signoff, reconnect, NULL);
}