Mercurial > pidgin.yaz
comparison plugins/chkmail.c @ 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 | 668727c82810 |
children | b4cd83f1d0b8 |
comparison
equal
deleted
inserted
replaced
123:f7a5f376f54e | 124:5f294f7c4f2e |
---|---|
20 char mailhost[] = ""; | 20 char mailhost[] = ""; |
21 int mailport = 110; | 21 int mailport = 110; |
22 | 22 |
23 static void *handle = NULL; | 23 static void *handle = NULL; |
24 extern GtkWidget *blist; | 24 extern GtkWidget *blist; |
25 GtkWidget *maily; | 25 extern GtkWidget *buddies; |
26 GtkWidget *vbox2; | |
27 GtkWidget *yo; | |
28 | 26 |
29 GList *tmp; | 27 GList *tmp; |
30 int lastnum = 0; | 28 int lastnum = 0; |
31 int orig = 0; | 29 int orig = 0; |
32 int mytimer; | 30 int mytimer; |
75 } | 73 } |
76 close(fd); | 74 close(fd); |
77 return 0; | 75 return 0; |
78 } | 76 } |
79 | 77 |
78 void destroy_mail_list() | |
79 { | |
80 GList *list; | |
81 GtkWidget *w; | |
82 | |
83 list = GTK_TREE(buddies)->children; | |
84 | |
85 while (list) { | |
86 w = (GtkWidget *)list->data; | |
87 if (!strcmp(GTK_LABEL(GTK_BIN(w)->child)->label, "Mail Server")) { | |
88 gtk_tree_remove_items(GTK_TREE(buddies), list); | |
89 if (!list) | |
90 break; | |
91 } | |
92 list = list->next; | |
93 } | |
94 } | |
95 | |
96 | |
97 void setup_mail_list() | |
98 { | |
99 GList *list; | |
100 GtkWidget *w; | |
101 GtkWidget *item; | |
102 GtkWidget *tree; | |
103 gchar *buf; | |
104 | |
105 list = GTK_TREE(buddies)->children; | |
106 | |
107 while (list) { | |
108 w = (GtkWidget *)list->data; | |
109 if (!strcmp(GTK_LABEL(GTK_BIN(w)->child)->label, "Mail Server")) { | |
110 gtk_tree_remove_items(GTK_TREE(buddies), list); | |
111 if (!list) | |
112 break; | |
113 } | |
114 list = list->next; | |
115 } | |
116 | |
117 item = gtk_tree_item_new_with_label("Mail Server"); | |
118 tree = gtk_tree_new(); | |
119 gtk_widget_show(item); | |
120 gtk_widget_show(tree); | |
121 gtk_tree_append(GTK_TREE(buddies), item); | |
122 gtk_tree_item_set_subtree(GTK_TREE_ITEM(item), tree); | |
123 gtk_tree_item_expand(GTK_TREE_ITEM(item)); | |
124 | |
125 buf = g_malloc(BUF_LONG); | |
126 | |
127 g_snprintf(buf, BUF_LONG, "%s (%d/%d)", mailhost, lastnum - orig, orig); | |
128 item = gtk_tree_item_new_with_label(buf); | |
129 g_free(buf); | |
130 | |
131 gtk_tree_append(GTK_TREE(tree), item); | |
132 gtk_widget_show(item); | |
133 } | |
134 | |
80 void gaim_plugin_init(void *h) { | 135 void gaim_plugin_init(void *h) { |
81 handle = h; | 136 handle = h; |
82 tmp = gtk_container_children(GTK_CONTAINER(blist)); | 137 tmp = gtk_container_children(GTK_CONTAINER(blist)); |
83 | 138 |
84 maily = gtk_label_new("You have no new email"); | |
85 vbox2 = (GtkWidget *)tmp->data; | |
86 | |
87 yo = gtk_frame_new(NULL); | |
88 gtk_frame_set_shadow_type(GTK_FRAME(yo), GTK_SHADOW_IN ); | |
89 gtk_widget_show(yo); | |
90 | |
91 gtk_box_pack_start(GTK_BOX(vbox2), yo, FALSE, FALSE, 5); | |
92 gtk_box_reorder_child(GTK_BOX(vbox2), yo, 2); | |
93 gtk_container_add(GTK_CONTAINER(yo), maily); | |
94 | |
95 gtk_widget_show(maily); | |
96 | |
97 orig = num_msgs(); | 139 orig = num_msgs(); |
98 lastnum = orig; | 140 lastnum = orig; |
99 | 141 |
142 gaim_signal_connect(handle, event_blist_update, setup_mail_list, NULL); | |
143 setup_mail_list(); | |
144 | |
100 mytimer = gtk_timeout_add(30000, (GtkFunction)update_mail, NULL); | 145 mytimer = gtk_timeout_add(30000, (GtkFunction)update_mail, NULL); |
101 } | 146 } |
102 | 147 |
103 void update_mail () { | 148 void update_mail () { |
104 int newnum; | 149 int newnum; |
105 gchar *buf; | |
106 | 150 |
107 gtk_timeout_remove(mytimer); | 151 gtk_timeout_remove(mytimer); |
108 | 152 |
109 newnum = num_msgs(); | 153 newnum = num_msgs(); |
110 | 154 |
111 buf = g_malloc(BUF_LONG); | |
112 | |
113 if ( (newnum >= lastnum) && (newnum > 0)) { | 155 if ( (newnum >= lastnum) && (newnum > 0)) { |
114 g_snprintf(buf, BUF_LONG, "You have %d new e-mail(s)", newnum - orig); | 156 newnum = newnum - orig; |
115 } else { | 157 } else { |
116 g_snprintf(buf, BUF_LONG, "You have no new email"); | 158 newnum = 0; |
117 } | 159 } |
118 | |
119 gtk_widget_destroy(maily); | |
120 maily = gtk_label_new(buf); | |
121 g_free(buf); | |
122 | |
123 gtk_container_add(GTK_CONTAINER(yo), maily); | |
124 | |
125 gtk_widget_show(maily); | |
126 | 160 |
127 if (newnum < lastnum) { | 161 if (newnum < lastnum) { |
128 orig = 0; | 162 orig = 0; |
129 } | 163 } |
130 | 164 |
131 lastnum = newnum; | 165 lastnum = newnum; |
132 mytimer = gtk_timeout_add(30000, (GtkFunction)update_mail, NULL); | 166 mytimer = gtk_timeout_add(30000, (GtkFunction)update_mail, NULL); |
167 setup_mail_list(); | |
133 } | 168 } |
134 | 169 |
135 | 170 |
136 void gaim_plugin_remove() { | 171 void gaim_plugin_remove() { |
172 gtk_timeout_remove(mytimer); | |
173 destroy_mail_list(); | |
137 handle = NULL; | 174 handle = NULL; |
138 gtk_widget_hide(maily); | |
139 gtk_widget_destroy(yo); | |
140 gtk_timeout_remove(mytimer); | |
141 } | 175 } |
142 | 176 |
143 char *name() { | 177 char *name() { |
144 return "Check Mail"; | 178 return "Check Mail"; |
145 } | 179 } |