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 }