Mercurial > pidgin
changeset 124:5f294f7c4f2e
[gaim-migrate @ 134]
Whee
committer: Tailor Script <tailor@pidgin.im>
author | Rob Flynn <gaim@robflynn.com> |
---|---|
date | Sun, 16 Apr 2000 02:01:48 +0000 |
parents | f7a5f376f54e |
children | bfe26481cff5 |
files | plugins/Makefile plugins/chkmail.c |
diffstat | 2 files changed, 67 insertions(+), 33 deletions(-) [+] |
line wrap: on
line diff
--- a/plugins/Makefile Sun Apr 16 01:59:17 2000 +0000 +++ b/plugins/Makefile Sun Apr 16 02:01:48 2000 +0000 @@ -1,5 +1,5 @@ CC = gcc -CFLAGS = -Wall `gnome-config --cflags gtk` -I../src +CFLAGS = -Wall `gnome-config --cflags gtk` -I../src -g LDFLAGS = -ggdb `gnome-config --libs gtk` -shared all: simple.so gaiminc.so autorecon.so spellchk.so chkmail.so filectl.so
--- a/plugins/chkmail.c Sun Apr 16 01:59:17 2000 +0000 +++ b/plugins/chkmail.c Sun Apr 16 02:01:48 2000 +0000 @@ -22,9 +22,7 @@ static void *handle = NULL; extern GtkWidget *blist; -GtkWidget *maily; -GtkWidget *vbox2; -GtkWidget *yo; +extern GtkWidget *buddies; GList *tmp; int lastnum = 0; @@ -77,67 +75,103 @@ return 0; } +void destroy_mail_list() +{ + GList *list; + GtkWidget *w; + + list = GTK_TREE(buddies)->children; + + while (list) { + w = (GtkWidget *)list->data; + if (!strcmp(GTK_LABEL(GTK_BIN(w)->child)->label, "Mail Server")) { + gtk_tree_remove_items(GTK_TREE(buddies), list); + if (!list) + break; + } + list = list->next; + } +} + + +void setup_mail_list() +{ + GList *list; + GtkWidget *w; + GtkWidget *item; + GtkWidget *tree; + gchar *buf; + + list = GTK_TREE(buddies)->children; + + while (list) { + w = (GtkWidget *)list->data; + if (!strcmp(GTK_LABEL(GTK_BIN(w)->child)->label, "Mail Server")) { + gtk_tree_remove_items(GTK_TREE(buddies), list); + if (!list) + break; + } + list = list->next; + } + + item = gtk_tree_item_new_with_label("Mail Server"); + tree = gtk_tree_new(); + gtk_widget_show(item); + gtk_widget_show(tree); + gtk_tree_append(GTK_TREE(buddies), item); + gtk_tree_item_set_subtree(GTK_TREE_ITEM(item), tree); + gtk_tree_item_expand(GTK_TREE_ITEM(item)); + + buf = g_malloc(BUF_LONG); + + g_snprintf(buf, BUF_LONG, "%s (%d/%d)", mailhost, lastnum - orig, orig); + item = gtk_tree_item_new_with_label(buf); + g_free(buf); + + gtk_tree_append(GTK_TREE(tree), item); + gtk_widget_show(item); +} + void gaim_plugin_init(void *h) { handle = h; tmp = gtk_container_children(GTK_CONTAINER(blist)); - maily = gtk_label_new("You have no new email"); - vbox2 = (GtkWidget *)tmp->data; - - yo = gtk_frame_new(NULL); - gtk_frame_set_shadow_type(GTK_FRAME(yo), GTK_SHADOW_IN ); - gtk_widget_show(yo); - - gtk_box_pack_start(GTK_BOX(vbox2), yo, FALSE, FALSE, 5); - gtk_box_reorder_child(GTK_BOX(vbox2), yo, 2); - gtk_container_add(GTK_CONTAINER(yo), maily); - - gtk_widget_show(maily); - orig = num_msgs(); lastnum = orig; + gaim_signal_connect(handle, event_blist_update, setup_mail_list, NULL); + setup_mail_list(); + mytimer = gtk_timeout_add(30000, (GtkFunction)update_mail, NULL); } void update_mail () { int newnum; - gchar *buf; gtk_timeout_remove(mytimer); newnum = num_msgs(); - buf = g_malloc(BUF_LONG); - if ( (newnum >= lastnum) && (newnum > 0)) { - g_snprintf(buf, BUF_LONG, "You have %d new e-mail(s)", newnum - orig); + newnum = newnum - orig; } else { - g_snprintf(buf, BUF_LONG, "You have no new email"); + newnum = 0; } - gtk_widget_destroy(maily); - maily = gtk_label_new(buf); - g_free(buf); - - gtk_container_add(GTK_CONTAINER(yo), maily); - - gtk_widget_show(maily); - if (newnum < lastnum) { orig = 0; } lastnum = newnum; mytimer = gtk_timeout_add(30000, (GtkFunction)update_mail, NULL); + setup_mail_list(); } void gaim_plugin_remove() { + gtk_timeout_remove(mytimer); + destroy_mail_list(); handle = NULL; - gtk_widget_hide(maily); - gtk_widget_destroy(yo); - gtk_timeout_remove(mytimer); } char *name() {