annotate plugins/lagmeter.c @ 1106:5bc8fdacd2cb

[gaim-migrate @ 1116] lots of changes. buddy.c: just in general tried to get things to work better. moving things in the edit list window and signing off should be handled better in the main buddy list window (watch out for flashes). gaim.h: removed toc-specific things and moved them to toc.c and rvous.c as needed. gtkhtml.c: possible fix for AOL 6.0 problems (I wasn't able to reproduce the problem before or after the fix, but i fixed what i think might have been causing the problem). multi.c: moved LOGIN_STEPS from gaim.h here and actually use it now oscar.c: moved an oscar-specific struct definition from gaim.h here and also handle problems better perl.c: fix for stupid problem rvous.c: first pass at attempt to be able to remove toc.c and rvous.c (though this will never happen; gaim will support toc as long as aol does) without cruft. gaim is now only dependent on toc.c and rvous.c for toc_build_config and parse_toc_buddy_list, which gaim needs to save and read its buddy list. toc.c: rewrote the signin process so that the read()'s won't block. it's not actually a non-blocking read; it's just that it won't ever get to the read until there's data to be read (thanks to the gdk_input watcher). this means the cancel button should work after it's connected, but it's still not a non-blocking connect. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Mon, 20 Nov 2000 07:24:18 +0000
parents 6b013aff4de3
children 889ca2b8697b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
193
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1 /* KNOWN BUGS:
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2 * if you are also using notify.so, it will open a new window to yourself.
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3 * it will not, however, write anything in that window. this is a problem
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
4 * with notify.c. maybe one day i'll modify notify.c so that these two
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
5 * plugins are more compatible. we'll see.
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
6 *
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
7 * This lagometer has a tendency to not at all show the same lag that the
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
8 * built-in lagometer shows. My guess as to why this is (because they use the
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
9 * exact same code) is because it sends the string more often. That's why I
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
10 * included the configuration option to set the delay between updates.
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
11 *
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
12 * You can load this plugin even when you're not signed on, even though it
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
13 * modifies the buddy list. This is because it checks to see that the buddy
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
14 * list is actually there. In every case that I've been able to think of so
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
15 * far, it does the right thing (tm).
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
16 */
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
17
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
18 #define GAIM_PLUGINS
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
19 #include "gaim.h"
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
20
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
21 #include <time.h>
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
22 #include <sys/types.h>
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
23 #include <sys/time.h>
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
24 #include <unistd.h>
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
25 #include <math.h>
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
26
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
27 #define MY_LAG_STRING "ZYXCHECKLAGXYZ"
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
28
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
29 void *handle;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
30 GtkWidget *lagbox;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
31 GtkWidget *my_lagometer;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
32 struct timeval my_lag_tv;
848
5f19ec4a91f7 [gaim-migrate @ 858]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 193
diff changeset
33 int check_timeout = -1;
193
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
34 guint delay = 10;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
35 static GtkWidget *confdlg;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
36
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
37 void update_lag(int us) {
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
38 double pct;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
39
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
40 if (lagbox == NULL) {
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
41 /* guess we better build it then :P */
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
42 GtkWidget *label = gtk_label_new("Lag-O-Meter: ");
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
43 GList *tmp = gtk_container_children(GTK_CONTAINER(blist));
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
44 GtkWidget *vbox2 = (GtkWidget *)tmp->data;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
45 lagbox = gtk_hbox_new(FALSE, 0);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
46 my_lagometer = gtk_progress_bar_new();
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
47
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
48 gtk_box_pack_start(GTK_BOX(lagbox), label, FALSE, FALSE, 5);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
49 gtk_box_pack_start(GTK_BOX(lagbox), my_lagometer, TRUE, TRUE, 5);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
50 gtk_widget_set_usize(my_lagometer, 5, 5);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
51
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
52 gtk_widget_show(label);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
53 gtk_widget_show(my_lagometer);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
54
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
55 gtk_box_pack_start(GTK_BOX(vbox2), lagbox, FALSE, TRUE, 0);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
56 gtk_box_reorder_child(GTK_BOX(vbox2), lagbox, 1);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
57 gtk_widget_show(lagbox);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
58 }
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
59
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
60 pct = us/100000;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
61 if (pct > 0)
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
62 pct = 25 * log(pct);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
63 if (pct < 0)
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
64 pct = 0;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
65 if (pct > 100)
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
66 pct = 100;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
67 pct /= 100;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
68
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
69 gtk_progress_bar_update(GTK_PROGRESS_BAR(my_lagometer), pct);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
70 }
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
71
1000
91b7377e7b45 [gaim-migrate @ 1010]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 983
diff changeset
72 void check_lag(struct gaim_connection *gc, char **who, char **message, void *m) {
193
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
73 char *name = g_strdup(normalize(*who));
1000
91b7377e7b45 [gaim-migrate @ 1010]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 983
diff changeset
74 if (!strcasecmp(normalize(gc->username), name) &&
983
a05ad732b613 [gaim-migrate @ 993]
Rob Flynn <gaim@robflynn.com>
parents: 848
diff changeset
75 (*message != NULL) &&
193
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
76 !strcmp(*message, MY_LAG_STRING)) {
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
77 struct timeval tv;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
78 int ms;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
79
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
80 gettimeofday(&tv, NULL);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
81
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
82 ms = 1000000 * (tv.tv_sec - my_lag_tv.tv_sec);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
83
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
84 ms += tv.tv_usec - my_lag_tv.tv_usec;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
85
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
86 update_lag(ms);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
87 *message = NULL;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
88 }
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
89 g_free(name);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
90 }
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
91
1000
91b7377e7b45 [gaim-migrate @ 1010]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 983
diff changeset
92 void send_lag(struct gaim_connection *gc) {
193
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
93 gettimeofday(&my_lag_tv, NULL);
1000
91b7377e7b45 [gaim-migrate @ 1010]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 983
diff changeset
94 serv_send_im(gc, gc->username, MY_LAG_STRING, 1);
193
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
95 }
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
96
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
97 void gaim_plugin_remove() {
848
5f19ec4a91f7 [gaim-migrate @ 858]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 193
diff changeset
98 if (check_timeout != -1)
5f19ec4a91f7 [gaim-migrate @ 858]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 193
diff changeset
99 gtk_timeout_remove(check_timeout);
193
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
100 if (confdlg)
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
101 gtk_widget_destroy(confdlg);
983
a05ad732b613 [gaim-migrate @ 993]
Rob Flynn <gaim@robflynn.com>
parents: 848
diff changeset
102 if (lagbox)
a05ad732b613 [gaim-migrate @ 993]
Rob Flynn <gaim@robflynn.com>
parents: 848
diff changeset
103 gtk_widget_destroy(lagbox);
a05ad732b613 [gaim-migrate @ 993]
Rob Flynn <gaim@robflynn.com>
parents: 848
diff changeset
104
193
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
105 confdlg = NULL;
983
a05ad732b613 [gaim-migrate @ 993]
Rob Flynn <gaim@robflynn.com>
parents: 848
diff changeset
106 lagbox = NULL;
193
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
107 }
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
108
1000
91b7377e7b45 [gaim-migrate @ 1010]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 983
diff changeset
109 void avail_now(struct gaim_connection *gc, void *m) {
193
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
110 update_lag(0);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
111 gaim_signal_connect(handle, event_im_recv, check_lag, NULL);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
112 gaim_signal_connect(handle, event_signoff, gaim_plugin_remove, NULL);
1000
91b7377e7b45 [gaim-migrate @ 1010]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 983
diff changeset
113 check_timeout = gtk_timeout_add(1000 * delay, (GtkFunction)send_lag, gc);
193
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
114 }
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
115
1047
ece2d1543b20 [gaim-migrate @ 1057]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1000
diff changeset
116 char *gaim_plugin_init(GModule *h) {
193
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
117 handle = h;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
118
983
a05ad732b613 [gaim-migrate @ 993]
Rob Flynn <gaim@robflynn.com>
parents: 848
diff changeset
119 confdlg = NULL;
a05ad732b613 [gaim-migrate @ 993]
Rob Flynn <gaim@robflynn.com>
parents: 848
diff changeset
120 lagbox = NULL;
a05ad732b613 [gaim-migrate @ 993]
Rob Flynn <gaim@robflynn.com>
parents: 848
diff changeset
121
193
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
122 if (!blist)
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
123 gaim_signal_connect(handle, event_signon, avail_now, NULL);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
124 else
1000
91b7377e7b45 [gaim-migrate @ 1010]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 983
diff changeset
125 avail_now(connections->data, NULL);
1073
6b013aff4de3 [gaim-migrate @ 1083]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1047
diff changeset
126
6b013aff4de3 [gaim-migrate @ 1083]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1047
diff changeset
127 return NULL;
193
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
128 }
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
129
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
130 void adjust_timeout(GtkWidget *button, GtkWidget *spinner) {
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
131 delay = CLAMP(gtk_spin_button_get_value_as_int(
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
132 GTK_SPIN_BUTTON(spinner)), 0, 3600);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
133 sprintf(debug_buff, "new updates: %d\n", delay);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
134 debug_print(debug_buff);
848
5f19ec4a91f7 [gaim-migrate @ 858]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 193
diff changeset
135 if (check_timeout >= 0)
5f19ec4a91f7 [gaim-migrate @ 858]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 193
diff changeset
136 gtk_timeout_remove(check_timeout);
193
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
137 check_timeout = gtk_timeout_add(1000 * delay, (GtkFunction)send_lag, NULL);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
138 gtk_widget_destroy(confdlg);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
139 confdlg = NULL;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
140 }
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
141
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
142 void gaim_plugin_config() {
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
143 GtkWidget *label;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
144 GtkAdjustment *adj;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
145 GtkWidget *spinner;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
146 GtkWidget *button;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
147 GtkWidget *box;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
148
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
149 if (confdlg) {
983
a05ad732b613 [gaim-migrate @ 993]
Rob Flynn <gaim@robflynn.com>
parents: 848
diff changeset
150 gtk_widget_show_all(confdlg);
193
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
151 return;
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
152 }
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
153
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
154 confdlg = gtk_window_new(GTK_WINDOW_DIALOG);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
155 gtk_window_set_title(GTK_WINDOW(confdlg), "Gaim Lag Delay");
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
156
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
157 box = gtk_hbox_new(FALSE, 0);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
158 gtk_container_set_border_width(GTK_CONTAINER(box), 5);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
159 gtk_container_add(GTK_CONTAINER(confdlg), box);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
160
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
161 label = gtk_label_new("Delay between updates: ");
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
162 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
163 gtk_box_pack_start(GTK_BOX(box), label, FALSE, TRUE, 0);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
164
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
165 adj = (GtkAdjustment *)gtk_adjustment_new(delay, 0, 3600, 1, 0, 0);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
166 spinner = gtk_spin_button_new(GTK_ADJUSTMENT(adj), 0, 0);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
167 gtk_box_pack_start(GTK_BOX(box), spinner, TRUE, TRUE, 0);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
168
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
169 button = gtk_button_new_with_label("OK");
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
170 gtk_signal_connect(GTK_OBJECT(button), "clicked",
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
171 (GtkSignalFunc)adjust_timeout, spinner);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
172 gtk_box_pack_start(GTK_BOX(box), button, FALSE, TRUE, 0);
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
173
983
a05ad732b613 [gaim-migrate @ 993]
Rob Flynn <gaim@robflynn.com>
parents: 848
diff changeset
174 gtk_widget_show_all(confdlg);
193
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
175 }
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
176
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
177 char *name() {
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
178 return "Lag-O-Meter, Pluggified";
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
179 }
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
180
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
181 char *description() {
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
182 return "Your old familiar Lag-O-Meter, in a brand new form.";
6af9b88e4f90 [gaim-migrate @ 203]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
183 }