Mercurial > pidgin.yaz
comparison src/away.c @ 3517:6b0cb60162f4
[gaim-migrate @ 3590]
Rob McQueen added a mute feature to his nice little docklet. I added a
queuing feature. Configure the docklet in the plugins dialog to queue
unread messages, and when you receive a message the docklet will eat it up
and show a little message pending icon. Click on it, and read your message.
ICQ people will like it.
I also made plugin_event use a va_list.
I bet this breaks perl.
committer: Tailor Script <tailor@pidgin.im>
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Mon, 16 Sep 2002 08:35:24 +0000 |
parents | b1ebeecfd2aa |
children | bdd0bebd2d04 |
comparison
equal
deleted
inserted
replaced
3516:db00eb77997d | 3517:6b0cb60162f4 |
---|---|
51 clistqueue = NULL; | 51 clistqueue = NULL; |
52 clistqueuesw = NULL; | 52 clistqueuesw = NULL; |
53 imaway = NULL; | 53 imaway = NULL; |
54 } | 54 } |
55 | 55 |
56 void purge_away_queue() | 56 void purge_away_queue(GSList *queue) |
57 { | 57 { |
58 struct conversation *cnv; | 58 struct conversation *cnv; |
59 | 59 |
60 gtk_clist_freeze(GTK_CLIST(clistqueue)); | 60 gtk_clist_freeze(GTK_CLIST(clistqueue)); |
61 gtk_clist_clear(GTK_CLIST(clistqueue)); | 61 gtk_clist_clear(GTK_CLIST(clistqueue)); |
62 | 62 |
63 while (message_queue) { | 63 while (queue) { |
64 struct queued_message *qm = message_queue->data; | 64 struct queued_message *qm = queue->data; |
65 | 65 |
66 cnv = find_conversation(qm->name); | 66 cnv = find_conversation(qm->name); |
67 if (!cnv) | 67 if (!cnv) |
68 cnv = new_conversation(qm->name); | 68 cnv = new_conversation(qm->name); |
69 if (g_slist_index(connections, qm->gc) >= 0) | 69 if (g_slist_index(connections, qm->gc) >= 0) |
70 set_convo_gc(cnv, qm->gc); | 70 set_convo_gc(cnv, qm->gc); |
71 write_to_conv(cnv, qm->message, qm->flags, NULL, qm->tm, qm->len); | 71 write_to_conv(cnv, qm->message, qm->flags, NULL, qm->tm, qm->len); |
72 | 72 |
73 message_queue = g_slist_remove(message_queue, qm); | 73 queue = g_slist_remove(queue, qm); |
74 | 74 |
75 g_free(qm->message); | 75 g_free(qm->message); |
76 g_free(qm); | 76 g_free(qm); |
77 } | 77 } |
78 | 78 |
132 gtk_widget_show(clistqueue); | 132 gtk_widget_show(clistqueue); |
133 gtk_widget_show(clistqueuesw); | 133 gtk_widget_show(clistqueuesw); |
134 } else { | 134 } else { |
135 gtk_widget_hide(clistqueue); | 135 gtk_widget_hide(clistqueue); |
136 gtk_widget_hide(clistqueuesw); | 136 gtk_widget_hide(clistqueuesw); |
137 purge_away_queue(); | 137 purge_away_queue(message_queue); |
138 } | 138 } |
139 } | 139 } |
140 | 140 |
141 void do_im_back(GtkWidget *w, GtkWidget *x) | 141 void do_im_back(GtkWidget *w, GtkWidget *x) |
142 { | 142 { |
143 if (imaway) { | 143 if (imaway) { |
144 GtkWidget *tmp = imaway; | 144 GtkWidget *tmp = imaway; |
145 | 145 |
146 purge_away_queue(); | 146 purge_away_queue(message_queue); |
147 | 147 |
148 imaway = NULL; | 148 imaway = NULL; |
149 gtk_widget_destroy(tmp); | 149 gtk_widget_destroy(tmp); |
150 if (w != tmp) | 150 if (w != tmp) |
151 return; | 151 return; |