| 264 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
265 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 265 |
266 |
| 266 gtk_widget_show_all(dialog); |
267 gtk_widget_show_all(dialog); |
| 267 |
268 |
| 268 return dialog; |
269 return dialog; |
| |
270 } |
| |
271 |
| |
272 static void |
| |
273 selection_changed_cb(GtkTreeSelection *sel, GaimMailDialog *dialog) |
| |
274 { |
| |
275 GtkTreeIter iter; |
| |
276 GtkTreeModel *model; |
| |
277 GaimNotifyMailData *data; |
| |
278 gboolean active = TRUE; |
| |
279 |
| |
280 if (gtk_tree_selection_get_selected(sel, &model, &iter) == FALSE) |
| |
281 active = FALSE; |
| |
282 else |
| |
283 { |
| |
284 gtk_tree_model_get(model, &iter, GAIM_MAIL_DATA, &data, -1); |
| |
285 if (data->url == NULL) |
| |
286 active = FALSE; |
| |
287 } |
| |
288 |
| |
289 gtk_widget_set_sensitive(dialog->open_button, active); |
| 269 } |
290 } |
| 270 |
291 |
| 271 static void * |
292 static void * |
| 272 gaim_gtk_notify_email(GaimConnection *gc, const char *subject, const char *from, |
293 gaim_gtk_notify_email(GaimConnection *gc, const char *subject, const char *from, |
| 273 const char *to, const char *url) |
294 const char *to, const char *url) |
| 299 |
320 |
| 300 if (mail_dialog == NULL || !detailed) |
321 if (mail_dialog == NULL || !detailed) |
| 301 { |
322 { |
| 302 GtkCellRenderer *rend; |
323 GtkCellRenderer *rend; |
| 303 GtkTreeViewColumn *column; |
324 GtkTreeViewColumn *column; |
| |
325 GtkWidget *button = NULL; |
| 304 |
326 |
| 305 dialog = gtk_dialog_new_with_buttons(_("New Mail"), NULL, 0, |
327 dialog = gtk_dialog_new_with_buttons(_("New Mail"), NULL, 0, |
| 306 GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, |
328 GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, |
| 307 NULL); |
329 NULL); |
| 308 if (detailed) |
330 if (detailed) |
| 318 else if (detailed && mail_dialog == NULL) |
340 else if (detailed && mail_dialog == NULL) |
| 319 { |
341 { |
| 320 gtk_dialog_add_button(GTK_DIALOG(dialog), |
342 gtk_dialog_add_button(GTK_DIALOG(dialog), |
| 321 _("Open All Messages"), GTK_RESPONSE_ACCEPT); |
343 _("Open All Messages"), GTK_RESPONSE_ACCEPT); |
| 322 |
344 |
| 323 gtk_dialog_add_button(GTK_DIALOG(dialog), |
345 button = gtk_dialog_add_button(GTK_DIALOG(dialog), |
| 324 GAIM_STOCK_OPEN_MAIL, GTK_RESPONSE_YES); |
346 GAIM_STOCK_OPEN_MAIL, GTK_RESPONSE_YES); |
| 325 } |
347 } |
| 326 |
348 |
| 327 /* Setup the dialog */ |
349 /* Setup the dialog */ |
| 328 gtk_container_set_border_width(GTK_CONTAINER(dialog), GAIM_HIG_BOX_SPACE); |
350 gtk_container_set_border_width(GTK_CONTAINER(dialog), GAIM_HIG_BOX_SPACE); |
| 329 gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), GAIM_HIG_BOX_SPACE); |
351 gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), GAIM_HIG_BOX_SPACE); |
| 356 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
378 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
| 357 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
379 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
| 358 |
380 |
| 359 mail_dialog = g_new0(GaimMailDialog, 1); |
381 mail_dialog = g_new0(GaimMailDialog, 1); |
| 360 mail_dialog->dialog = dialog; |
382 mail_dialog->dialog = dialog; |
| |
383 mail_dialog->open_button = button; |
| 361 |
384 |
| 362 mail_dialog->treemodel = gtk_tree_store_new(COLUMNS_GAIM_MAIL, |
385 mail_dialog->treemodel = gtk_tree_store_new(COLUMNS_GAIM_MAIL, |
| 363 GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER); |
386 GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER); |
| 364 mail_dialog->treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(mail_dialog->treemodel)); |
387 mail_dialog->treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(mail_dialog->treemodel)); |
| 365 |
388 |
| 366 g_signal_connect(G_OBJECT(dialog), "response", |
389 g_signal_connect(G_OBJECT(dialog), "response", |
| 367 G_CALLBACK(email_response_cb), mail_dialog); |
390 G_CALLBACK(email_response_cb), mail_dialog); |
| 368 |
391 g_signal_connect(G_OBJECT(gtk_tree_view_get_selection(GTK_TREE_VIEW(mail_dialog->treeview))), |
| |
392 "changed", G_CALLBACK(selection_changed_cb), mail_dialog); |
| |
393 |
| |
394 /* Account column */ |
| 369 column = gtk_tree_view_column_new(); |
395 column = gtk_tree_view_column_new(); |
| 370 gtk_tree_view_column_set_resizable(column, TRUE); |
396 gtk_tree_view_column_set_resizable(column, TRUE); |
| 371 gtk_tree_view_column_set_title(column, _("Account")); |
397 gtk_tree_view_column_set_title(column, _("Account")); |
| 372 rend = gtk_cell_renderer_pixbuf_new(); |
398 rend = gtk_cell_renderer_pixbuf_new(); |
| 373 gtk_tree_view_column_pack_start(column, rend, FALSE); |
399 gtk_tree_view_column_pack_start(column, rend, FALSE); |
| 375 rend = gtk_cell_renderer_text_new(); |
401 rend = gtk_cell_renderer_text_new(); |
| 376 gtk_tree_view_column_pack_start(column, rend, TRUE); |
402 gtk_tree_view_column_pack_start(column, rend, TRUE); |
| 377 gtk_tree_view_column_set_attributes(column, rend, "markup", GAIM_MAIL_TO, NULL); |
403 gtk_tree_view_column_set_attributes(column, rend, "markup", GAIM_MAIL_TO, NULL); |
| 378 gtk_tree_view_append_column(GTK_TREE_VIEW(mail_dialog->treeview), column); |
404 gtk_tree_view_append_column(GTK_TREE_VIEW(mail_dialog->treeview), column); |
| 379 |
405 |
| |
406 /* From column */ |
| 380 column = gtk_tree_view_column_new(); |
407 column = gtk_tree_view_column_new(); |
| 381 gtk_tree_view_column_set_resizable(column, TRUE); |
408 gtk_tree_view_column_set_resizable(column, TRUE); |
| 382 gtk_tree_view_column_set_title(column, _("From")); |
409 gtk_tree_view_column_set_title(column, _("From")); |
| 383 rend = gtk_cell_renderer_text_new(); |
410 rend = gtk_cell_renderer_text_new(); |
| 384 gtk_tree_view_column_pack_start(column, rend, TRUE); |
411 gtk_tree_view_column_pack_start(column, rend, TRUE); |
| 385 gtk_tree_view_column_set_attributes(column, rend, "markup", GAIM_MAIL_FROM, NULL); |
412 gtk_tree_view_column_set_attributes(column, rend, "markup", GAIM_MAIL_FROM, NULL); |
| 386 gtk_tree_view_append_column(GTK_TREE_VIEW(mail_dialog->treeview), column); |
413 gtk_tree_view_append_column(GTK_TREE_VIEW(mail_dialog->treeview), column); |
| 387 |
414 |
| |
415 /* Subject column */ |
| 388 column = gtk_tree_view_column_new(); |
416 column = gtk_tree_view_column_new(); |
| 389 gtk_tree_view_column_set_resizable(column, TRUE); |
417 gtk_tree_view_column_set_resizable(column, TRUE); |
| 390 gtk_tree_view_column_set_title(column, _("Subject")); |
418 gtk_tree_view_column_set_title(column, _("Subject")); |
| 391 rend = gtk_cell_renderer_text_new(); |
419 rend = gtk_cell_renderer_text_new(); |
| 392 gtk_tree_view_column_pack_start(column, rend, TRUE); |
420 gtk_tree_view_column_pack_start(column, rend, TRUE); |