annotate plugins/autorecon.c @ 148:c09b48f8f7f4

[gaim-migrate @ 158] Added notes for how to do save-state in the autoreconnect plugin. If no one implements it before I get back home, I'll do it myself; feel free to try it on your own though. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Sun, 23 Apr 2000 00:11:04 +0000
parents f810fc7d423f
children c754e5ae442a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
148
c09b48f8f7f4 [gaim-migrate @ 158]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 99
diff changeset
1 /* TODO: save state
c09b48f8f7f4 [gaim-migrate @ 158]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 99
diff changeset
2 * I'm not at my computer right now, so I'm not going to bother
c09b48f8f7f4 [gaim-migrate @ 158]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 99
diff changeset
3 * writing it, but if someone wants to before I get back (hint,
c09b48f8f7f4 [gaim-migrate @ 158]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 99
diff changeset
4 * hint), go for it. Here's how to do it.
c09b48f8f7f4 [gaim-migrate @ 158]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 99
diff changeset
5 *
c09b48f8f7f4 [gaim-migrate @ 158]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 99
diff changeset
6 * First, add a global "state", which is either 'away' or not.
c09b48f8f7f4 [gaim-migrate @ 158]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 99
diff changeset
7 *
c09b48f8f7f4 [gaim-migrate @ 158]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 99
diff changeset
8 * In gaim_plugin_init, set state, and add two more signal
c09b48f8f7f4 [gaim-migrate @ 158]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 99
diff changeset
9 * handlers: event_away and event_back, and if you can't figure
c09b48f8f7f4 [gaim-migrate @ 158]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 99
diff changeset
10 * out what you're supposed to do for them, you shouldn't be
c09b48f8f7f4 [gaim-migrate @ 158]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 99
diff changeset
11 * editing this plugin.
c09b48f8f7f4 [gaim-migrate @ 158]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 99
diff changeset
12 *
c09b48f8f7f4 [gaim-migrate @ 158]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 99
diff changeset
13 * In the reconnect function, if "state" was away, then reset
c09b48f8f7f4 [gaim-migrate @ 158]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 99
diff changeset
14 * the away message. You may have to remember the away message
c09b48f8f7f4 [gaim-migrate @ 158]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 99
diff changeset
15 * on your own; I haven't checked yet to see if there's a global
c09b48f8f7f4 [gaim-migrate @ 158]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 99
diff changeset
16 * that remembers it that isn't erased on signoff/signon.
c09b48f8f7f4 [gaim-migrate @ 158]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 99
diff changeset
17 *
c09b48f8f7f4 [gaim-migrate @ 158]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 99
diff changeset
18 * Anyway, that should be it.
c09b48f8f7f4 [gaim-migrate @ 158]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 99
diff changeset
19 */
c09b48f8f7f4 [gaim-migrate @ 158]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 99
diff changeset
20
99
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
21 #define GAIM_PLUGINS
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
22 #include "gaim.h"
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
23 #include <gtk/gtk.h>
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
24
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
25 static int recon;
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
26
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
27 char *name() {
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
28 return "Auto Reconnect";
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
29 }
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
30
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
31 char *description() {
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
32 return "When AOL kicks you off, this auto-reconnects you.";
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
33 }
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
34
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
35 extern void dologin(GtkWidget *, GtkWidget *);
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
36
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
37 void do_signon() {
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
38 dologin(NULL, NULL);
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
39 if (query_state() != STATE_OFFLINE) {
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
40 gtk_timeout_remove(recon);
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
41 return;
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
42 }
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
43 }
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
44
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
45 void reconnect(void *m) {
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
46 recon = gtk_timeout_add(2000, (GtkFunction)do_signon, NULL);
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
47 }
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
48
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
49 void gaim_plugin_init(void *handle) {
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
50 gaim_signal_connect(handle, event_signoff, reconnect, NULL);
f810fc7d423f [gaim-migrate @ 109]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
51 }