Mon, 18 Sep 2000 19:13:27 +0000
[gaim-migrate @ 938]
Yo
| 99 | 1 | #define GAIM_PLUGINS |
| 2 | #include "gaim.h" | |
| 3 | #include <gtk/gtk.h> | |
| 4 | ||
|
151
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
5 | extern GtkWidget *imaway; |
|
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
6 | |
| 99 | 7 | static int recon; |
|
151
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
8 | static int away_state; |
|
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
9 | static int forced_off = 0; |
|
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
10 | static struct away_message *last_away; |
| 99 | 11 | |
| 12 | char *name() { | |
| 13 | return "Auto Reconnect"; | |
| 14 | } | |
| 15 | ||
| 16 | char *description() { | |
| 17 | return "When AOL kicks you off, this auto-reconnects you."; | |
| 18 | } | |
| 19 | ||
| 20 | extern void dologin(GtkWidget *, GtkWidget *); | |
| 21 | ||
| 22 | void do_signon() { | |
|
631
1f80f978e847
[gaim-migrate @ 641]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
151
diff
changeset
|
23 | if (!blist) |
|
1f80f978e847
[gaim-migrate @ 641]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
151
diff
changeset
|
24 | dologin(NULL, NULL); |
|
1f80f978e847
[gaim-migrate @ 641]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
151
diff
changeset
|
25 | if (!USE_OSCAR) { |
|
1f80f978e847
[gaim-migrate @ 641]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
151
diff
changeset
|
26 | if (blist) { |
|
1f80f978e847
[gaim-migrate @ 641]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
151
diff
changeset
|
27 | gtk_timeout_remove(recon); |
|
1f80f978e847
[gaim-migrate @ 641]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
151
diff
changeset
|
28 | forced_off = 0; |
|
1f80f978e847
[gaim-migrate @ 641]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
151
diff
changeset
|
29 | if (away_state) |
|
1f80f978e847
[gaim-migrate @ 641]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
151
diff
changeset
|
30 | do_away_message(NULL, last_away); |
|
1f80f978e847
[gaim-migrate @ 641]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
151
diff
changeset
|
31 | return; |
|
1f80f978e847
[gaim-migrate @ 641]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
151
diff
changeset
|
32 | } |
|
1f80f978e847
[gaim-migrate @ 641]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
151
diff
changeset
|
33 | } else { |
| 99 | 34 | gtk_timeout_remove(recon); |
|
151
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
35 | forced_off = 0; |
|
631
1f80f978e847
[gaim-migrate @ 641]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
151
diff
changeset
|
36 | if (blist && away_state) do_away_message(NULL, last_away); |
| 99 | 37 | return; |
| 38 | } | |
| 39 | } | |
| 40 | ||
| 41 | void reconnect(void *m) { | |
|
631
1f80f978e847
[gaim-migrate @ 641]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
151
diff
changeset
|
42 | recon = gtk_timeout_add(8000, (GtkFunction)do_signon, NULL); |
|
151
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
43 | forced_off = 1; |
|
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
44 | } |
|
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
45 | |
|
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
46 | void away_toggle(void *m) { |
|
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
47 | if ((int)m == 1) { |
|
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
48 | last_away = awaymessage; |
|
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
49 | away_state = 1; |
|
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
50 | } else if (!forced_off) |
|
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
51 | away_state = 0; |
| 99 | 52 | } |
| 53 | ||
| 54 | void gaim_plugin_init(void *handle) { | |
|
151
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
55 | if (imaway) { |
|
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
56 | away_state = 1; |
|
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
57 | last_away = awaymessage; |
|
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
58 | } else |
|
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
59 | away_state = 0; |
|
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
60 | |
|
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
61 | gaim_signal_connect(handle, event_away, away_toggle, (void *)1); |
|
aab3cb3cd879
[gaim-migrate @ 161]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
148
diff
changeset
|
62 | gaim_signal_connect(handle, event_back, away_toggle, (void *)0); |
| 99 | 63 | gaim_signal_connect(handle, event_signoff, reconnect, NULL); |
| 64 | } |