Mercurial > pidgin.yaz
comparison src/away.c @ 2573:fc54c1a070e7
[gaim-migrate @ 2586]
Well, touch my belly and call me Olga!
committer: Tailor Script <tailor@pidgin.im>
author | Rob Flynn <gaim@robflynn.com> |
---|---|
date | Tue, 23 Oct 2001 00:19:38 +0000 |
parents | 227cc42ffa6e |
children | 67f8760f033c |
comparison
equal
deleted
inserted
replaced
2572:ad0d7c423669 | 2573:fc54c1a070e7 |
---|---|
83 } | 83 } |
84 | 84 |
85 gtk_clist_thaw(GTK_CLIST(clistqueue)); | 85 gtk_clist_thaw(GTK_CLIST(clistqueue)); |
86 } | 86 } |
87 | 87 |
88 void dequeue_by_buddy(GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data) { | |
89 char *temp; | |
90 char *name; | |
91 GSList *templist; | |
92 struct conversation *cnv; | |
93 | |
94 if(!(event->type == GDK_2BUTTON_PRESS && event->button == 1)) | |
95 return; /* Double clicking on the clist will unqueue that users messages. */ | |
96 | |
97 gtk_clist_get_text(GTK_CLIST(clist), row, 0, &temp); | |
98 name = g_strdup(temp); | |
99 | |
100 if (!name) | |
101 return; | |
102 debug_printf("Unqueueing messages from %s.\n", name); | |
103 templist = message_queue; | |
104 while (templist) { | |
105 struct queued_message *qm = templist->data; | |
106 if (templist->data) { | |
107 if (!g_strcasecmp(qm->name, name)) { | |
108 cnv = find_conversation(name); | |
109 if (!cnv) | |
110 cnv = new_conversation(qm->name); | |
111 if (g_slist_index(connections, qm->gc) >= 0) | |
112 set_convo_gc(cnv, qm->gc); | |
113 | |
114 write_to_conv(cnv, qm->message, qm->flags, NULL, qm->tm); | |
115 g_free(qm->message); | |
116 g_free(qm); | |
117 templist = message_queue = g_slist_remove(message_queue, qm); | |
118 | |
119 } else { | |
120 templist = templist->next; | |
121 } | |
122 } | |
123 } | |
124 g_free(name); | |
125 gtk_clist_remove(GTK_CLIST(clist), row); | |
126 | |
127 | |
128 } | |
129 | |
130 | |
131 | |
132 | |
88 void toggle_away_queue() | 133 void toggle_away_queue() |
89 { | 134 { |
90 if (!clistqueue || !clistqueuesw) | 135 if (!clistqueue || !clistqueuesw) |
91 return; | 136 return; |
92 | 137 |
185 | 230 |
186 clistqueue = gtk_clist_new(2); | 231 clistqueue = gtk_clist_new(2); |
187 gtk_clist_set_column_width(GTK_CLIST(clistqueue), 0, 100); | 232 gtk_clist_set_column_width(GTK_CLIST(clistqueue), 0, 100); |
188 gtk_widget_set_usize(GTK_WIDGET(clistqueue), -1, 50); | 233 gtk_widget_set_usize(GTK_WIDGET(clistqueue), -1, 50); |
189 gtk_container_add(GTK_CONTAINER(clistqueuesw), clistqueue); | 234 gtk_container_add(GTK_CONTAINER(clistqueuesw), clistqueue); |
235 gtk_signal_connect(GTK_OBJECT(clistqueue), "select_row", GTK_SIGNAL_FUNC(dequeue_by_buddy), NULL); | |
236 | |
237 | |
190 | 238 |
191 if (away_options & OPT_AWAY_QUEUE) { | 239 if (away_options & OPT_AWAY_QUEUE) { |
192 gtk_widget_show(clistqueuesw); | 240 gtk_widget_show(clistqueuesw); |
193 gtk_widget_show(clistqueue); | 241 gtk_widget_show(clistqueue); |
194 } | 242 } |