plugins/autorecon.c

Mon, 18 Sep 2000 19:13:27 +0000

author
Rob Flynn <gaim@robflynn.com>
date
Mon, 18 Sep 2000 19:13:27 +0000
changeset 928
ab8804a6ef0d
parent 631
1f80f978e847
child 1000
66436e94d53f
permissions
-rw-r--r--

[gaim-migrate @ 938]
Yo

99
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1 #define GAIM_PLUGINS
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2 #include "gaim.h"
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3 #include <gtk/gtk.h>
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
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
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
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
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
11
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
12 char *name() {
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
13 return "Auto Reconnect";
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
14 }
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
15
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
16 char *description() {
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
17 return "When AOL kicks you off, this auto-reconnects you.";
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
18 }
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
19
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
20 extern void dologin(GtkWidget *, GtkWidget *);
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
21
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
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
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
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
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
37 return;
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
38 }
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
39 }
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
40
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
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
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
52 }
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
53
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
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
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
63 gaim_signal_connect(handle, event_signoff, reconnect, NULL);
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
64 }

mercurial