Mercurial > pidgin.yaz
view plugins/autorecon.c @ 1170:16d748023b2b
[gaim-migrate @ 1180]
You can now choose the sound(s) you want to hear for various events.
It doesnt update the preferences wnidow but it really does save them,
honest!
I'll fix the rest tomrrow. I'm sleepy.
All Work and No play Makes Timmy TIIMMY TIimmMYY GOBBLES!
committer: Tailor Script <tailor@pidgin.im>
author | Rob Flynn <gaim@robflynn.com> |
---|---|
date | Wed, 29 Nov 2000 10:30:56 +0000 |
parents | 3daec853f3c6 |
children | aedeb1218a0a |
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."; } void do_signon(char *name) { struct aim_user *u = find_user(name, -1); g_free(name); gtk_timeout_remove(recon); if (!u) return; serv_login(u); forced_off = 0; if (away_state) do_away_message(NULL, last_away); } void reconnect(struct gaim_connection *gc, void *m) { char *name = g_strdup(gc->username); recon = gtk_timeout_add(8000, (GtkFunction)do_signon, name); 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; } char *gaim_plugin_init(GModule *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); return NULL; }