Mercurial > pidgin.yaz
annotate plugins/idle.c @ 4344:d6f1086d52a6
[gaim-migrate @ 4609]
A few small changes...
The "orphans" groups should stop reappearing every time you sign
online. Twas a case of too much error checking.
Buddies, permits, and denies with empty names will all be deleted
automatically by the cleaning function. This should never really
happen, but somehow one of my accounts had some empty-named permit
buddies, so I threw it in here.
I also took out some BR tags before some HR tags. I really really
really think it looks better this way. Feel free to disagree.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Sun, 19 Jan 2003 07:35:18 +0000 |
parents | cddb50734169 |
children | 2427d847e39c |
rev | line source |
---|---|
4103 | 1 /* a nifty little plugin to set your idle time to whatever you want it to be. |
2 * useful for almost nothing. mostly just a demo plugin. but it's fun to have | |
3 * 40-day idle times. | |
4 */ | |
5 | |
4202
59751fe608c5
[gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents:
4165
diff
changeset
|
6 #include "config.h" |
59751fe608c5
[gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents:
4165
diff
changeset
|
7 |
59751fe608c5
[gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents:
4165
diff
changeset
|
8 #ifndef GAIM_PLUGINS |
4103 | 9 #define GAIM_PLUGINS |
4202
59751fe608c5
[gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents:
4165
diff
changeset
|
10 #endif |
59751fe608c5
[gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents:
4165
diff
changeset
|
11 |
4103 | 12 #include "multi.h" |
13 #include "gaim.h" | |
14 #include <sys/time.h> | |
15 | |
16 static struct gaim_connection *gc = NULL; | |
17 | |
4287
f98e27e2cb10
[gaim-migrate @ 4539]
Christian Hammond <chipx86@chipx86.com>
parents:
4260
diff
changeset
|
18 const char *name() { |
f98e27e2cb10
[gaim-migrate @ 4539]
Christian Hammond <chipx86@chipx86.com>
parents:
4260
diff
changeset
|
19 return _("I'dle Mak'er"); |
4103 | 20 } |
21 | |
4287
f98e27e2cb10
[gaim-migrate @ 4539]
Christian Hammond <chipx86@chipx86.com>
parents:
4260
diff
changeset
|
22 const char *description() { |
f98e27e2cb10
[gaim-migrate @ 4539]
Christian Hammond <chipx86@chipx86.com>
parents:
4260
diff
changeset
|
23 return _("Allows you to hand-configure how long you've been idle for"); |
4103 | 24 } |
25 | |
26 char *gaim_plugin_init(GModule *module) { | |
27 return NULL; | |
28 } | |
29 | |
30 static void set_idle(GtkWidget *button, GtkWidget *spinner) { | |
31 time_t t; | |
32 int tm = CLAMP(gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spinner)), 0, G_MAXINT); | |
33 if (!gc) { | |
34 return; | |
35 } | |
36 debug_printf("setting idle time for %s to %d\n", gc->username, tm); | |
37 time(&t); | |
38 t -= 60 * tm; | |
39 gc->lastsent = t; | |
40 serv_set_idle(gc, 60 * tm); | |
41 gc->is_idle = 0; | |
42 } | |
43 | |
44 static void sel_gc(GtkWidget *opt, struct gaim_connection *g) { | |
45 gc = g; | |
46 } | |
47 | |
48 static void make_connect_menu(GtkWidget *box) { | |
49 GtkWidget *optmenu, *menu, *opt; | |
50 GSList *c = connections; | |
51 struct gaim_connection *g; | |
52 | |
53 optmenu = gtk_option_menu_new(); | |
54 gtk_box_pack_start(GTK_BOX(box), optmenu, FALSE, FALSE, 5); | |
55 | |
56 menu = gtk_menu_new(); | |
57 | |
58 while (c) { | |
59 g = (struct gaim_connection *)c->data; | |
60 opt = gtk_menu_item_new_with_label(g->username); | |
4165
07a3d1fae88f
[gaim-migrate @ 4394]
Christian Hammond <chipx86@chipx86.com>
parents:
4103
diff
changeset
|
61 g_signal_connect(GTK_OBJECT(opt), "activate", |
07a3d1fae88f
[gaim-migrate @ 4394]
Christian Hammond <chipx86@chipx86.com>
parents:
4103
diff
changeset
|
62 G_CALLBACK(sel_gc), g); |
4103 | 63 gtk_menu_append(GTK_MENU(menu), opt); |
64 gtk_widget_show(opt); | |
65 c = g_slist_next(c); | |
66 } | |
67 | |
68 gtk_option_menu_remove_menu(GTK_OPTION_MENU(optmenu)); | |
69 gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), menu); | |
70 gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu), 0); | |
71 | |
72 if (connections) | |
73 gc = connections->data; | |
74 else | |
75 gc = NULL; | |
76 } | |
77 | |
78 struct gaim_plugin_description desc; | |
79 struct gaim_plugin_description *gaim_plugin_desc() { | |
80 desc.api_version = PLUGIN_API_VERSION; | |
4260 | 81 desc.name = g_strdup("I'dle Mak'er"); |
4103 | 82 desc.version = g_strdup(VERSION); |
4287
f98e27e2cb10
[gaim-migrate @ 4539]
Christian Hammond <chipx86@chipx86.com>
parents:
4260
diff
changeset
|
83 desc.description = g_strdup(_("Allows you to hand-configure how long you've been idle for")); |
4103 | 84 desc.authors = g_strdup("Eric Warmenhoven <eric@warmenhoven.org>"); |
85 desc.url = g_strdup(WEBSITE); | |
86 return &desc; | |
87 } | |
88 | |
89 GtkWidget *gaim_plugin_config_gtk() { | |
90 GtkWidget *ret; | |
91 GtkWidget *frame, *label; | |
92 GtkWidget *vbox, *hbox; | |
93 GtkAdjustment *adj; | |
94 GtkWidget *spinner, *button; | |
95 | |
96 ret = gtk_vbox_new(FALSE, 18); | |
97 gtk_container_set_border_width(GTK_CONTAINER(ret), 12); | |
98 | |
99 frame = make_frame(ret, _("Idle Time")); | |
100 | |
101 vbox = gtk_vbox_new(FALSE, 5); | |
102 gtk_container_add(GTK_CONTAINER(frame), vbox); | |
103 | |
104 hbox = gtk_hbox_new(FALSE, 5); | |
105 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); | |
106 | |
4287
f98e27e2cb10
[gaim-migrate @ 4539]
Christian Hammond <chipx86@chipx86.com>
parents:
4260
diff
changeset
|
107 label = gtk_label_new(_("Set")); |
4103 | 108 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); |
109 | |
110 make_connect_menu(hbox); | |
111 | |
4287
f98e27e2cb10
[gaim-migrate @ 4539]
Christian Hammond <chipx86@chipx86.com>
parents:
4260
diff
changeset
|
112 label = gtk_label_new(_("idle for")); |
4103 | 113 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); |
114 | |
115 adj = (GtkAdjustment *)gtk_adjustment_new(10, 0, G_MAXINT, 1, 0, 0); | |
116 spinner = gtk_spin_button_new(adj, 0, 0); | |
117 gtk_box_pack_start(GTK_BOX(hbox), spinner, TRUE, TRUE, 0); | |
118 | |
4287
f98e27e2cb10
[gaim-migrate @ 4539]
Christian Hammond <chipx86@chipx86.com>
parents:
4260
diff
changeset
|
119 label = gtk_label_new(_("minutes.")); |
4103 | 120 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); |
121 | |
122 hbox = gtk_hbox_new(TRUE, 5); | |
123 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); | |
124 | |
125 button = gtk_button_new_with_mnemonic(_("_Set")); | |
126 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 5); | |
4165
07a3d1fae88f
[gaim-migrate @ 4394]
Christian Hammond <chipx86@chipx86.com>
parents:
4103
diff
changeset
|
127 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(set_idle), spinner); |
4103 | 128 |
129 gtk_widget_show_all(ret); | |
130 | |
131 return ret; | |
132 } |