Mercurial > pidgin.yaz
comparison src/dialogs.c @ 2602:c9192dea2bb1
[gaim-migrate @ 2615]
desensitises the buttons while conversation is still being parsed..
thanks, BMiller. :)
committer: Tailor Script <tailor@pidgin.im>
| author | Rob Flynn <gaim@robflynn.com> |
|---|---|
| date | Thu, 25 Oct 2001 02:30:12 +0000 |
| parents | b2800bca74fe |
| children | e0d4a23aac89 |
comparison
equal
deleted
inserted
replaced
| 2601:61952dde7677 | 2602:c9192dea2bb1 |
|---|---|
| 3392 } | 3392 } |
| 3393 | 3393 |
| 3394 static void log_show_convo(GtkWidget *w, GtkWidget *layout) | 3394 static void log_show_convo(GtkWidget *w, GtkWidget *layout) |
| 3395 { | 3395 { |
| 3396 gchar buf[BUF_LONG]; | 3396 gchar buf[BUF_LONG]; |
| 3397 long offset = (long)gtk_object_get_user_data(GTK_OBJECT(w)); | 3397 long offset; |
| 3398 int options = (int)gtk_object_get_data(GTK_OBJECT(w), "options"); | 3398 int options; |
| 3399 gchar *name = gtk_object_get_data(GTK_OBJECT(w), "name"); | 3399 gchar *name; |
| 3400 GtkWidget *bbox; | |
| 3401 GtkWidget *window; | |
| 3400 FILE *fp; | 3402 FILE *fp; |
| 3401 char filename[256]; | 3403 char filename[256]; |
| 3402 int i=0; | 3404 int i=0; |
| 3403 GString *string; | 3405 GString *string; |
| 3404 | 3406 guint block; |
| 3407 | |
| 3408 offset = (long)gtk_object_get_user_data(GTK_OBJECT(w)); | |
| 3409 options = (int)gtk_object_get_data(GTK_OBJECT(w), "options"); | |
| 3410 name = gtk_object_get_data(GTK_OBJECT(w), "name"); | |
| 3411 bbox = gtk_object_get_data(GTK_OBJECT(w), "box"); | |
| 3412 window = gtk_object_get_data(GTK_OBJECT(w), "window"); | |
| 3405 string = g_string_new(""); | 3413 string = g_string_new(""); |
| 3406 | 3414 |
| 3407 if (name) { | 3415 if (name) { |
| 3408 char *tmp = gaim_user_dir(); | 3416 char *tmp = gaim_user_dir(); |
| 3409 g_snprintf(filename, 256, "%s/logs/%s.log", tmp, normalize(name)); | 3417 g_snprintf(filename, 256, "%s/logs/%s.log", tmp, normalize(name)); |
| 3416 if ((fp = fopen(filename, "r")) == NULL) { | 3424 if ((fp = fopen(filename, "r")) == NULL) { |
| 3417 g_snprintf(buf, BUF_LONG, "Unable to open log file %s", filename); | 3425 g_snprintf(buf, BUF_LONG, "Unable to open log file %s", filename); |
| 3418 do_error_dialog(buf, "Error!"); | 3426 do_error_dialog(buf, "Error!"); |
| 3419 return; | 3427 return; |
| 3420 } | 3428 } |
| 3429 | |
| 3430 gtk_widget_set_sensitive(bbox, FALSE); | |
| 3431 gtk_signal_disconnect_by_func(GTK_OBJECT(window), GTK_SIGNAL_FUNC(destroy_dialog), window); | |
| 3432 block = gtk_signal_connect(GTK_OBJECT(window), "delete_event", GTK_SIGNAL_FUNC(dont_destroy), window); | |
| 3421 | 3433 |
| 3422 fseek(fp, offset, SEEK_SET); | 3434 fseek(fp, offset, SEEK_SET); |
| 3423 gtk_imhtml_clear(GTK_IMHTML(layout)); | 3435 gtk_imhtml_clear(GTK_IMHTML(layout)); |
| 3424 while (gtk_events_pending()) | 3436 while (gtk_events_pending()) |
| 3425 gtk_main_iteration(); | 3437 gtk_main_iteration(); |
| 3442 } | 3454 } |
| 3443 | 3455 |
| 3444 } | 3456 } |
| 3445 gtk_imhtml_append_text(GTK_IMHTML(layout), string->str, options); | 3457 gtk_imhtml_append_text(GTK_IMHTML(layout), string->str, options); |
| 3446 gtk_imhtml_append_text(GTK_IMHTML(layout), "<BR>", options); | 3458 gtk_imhtml_append_text(GTK_IMHTML(layout), "<BR>", options); |
| 3459 | |
| 3460 gtk_widget_set_sensitive(bbox, TRUE); | |
| 3461 gtk_signal_disconnect(GTK_OBJECT(window), block); | |
| 3462 gtk_signal_connect(GTK_OBJECT(window), "delete_event", GTK_SIGNAL_FUNC(destroy_dialog), window); | |
| 3447 g_string_free(string, TRUE); | 3463 g_string_free(string, TRUE); |
| 3448 fclose(fp); | 3464 fclose(fp); |
| 3449 } | 3465 } |
| 3450 | 3466 |
| 3451 void show_log(char *name) | 3467 void show_log(char *name) |
| 3454 gchar buf[BUF_LONG]; | 3470 gchar buf[BUF_LONG]; |
| 3455 FILE *fp; | 3471 FILE *fp; |
| 3456 GtkWidget *window; | 3472 GtkWidget *window; |
| 3457 GtkWidget *box; | 3473 GtkWidget *box; |
| 3458 GtkWidget *hbox; | 3474 GtkWidget *hbox; |
| 3475 GtkWidget *bbox; | |
| 3459 GtkWidget *sw; | 3476 GtkWidget *sw; |
| 3460 GtkWidget *layout; | 3477 GtkWidget *layout; |
| 3461 GtkWidget *close_button; | 3478 GtkWidget *close_button; |
| 3462 GtkWidget *clear_button; | 3479 GtkWidget *clear_button; |
| 3463 GtkWidget *save_button; | 3480 GtkWidget *save_button; |
| 3493 GTK_SIGNAL_FUNC(dont_destroy), window); | 3510 GTK_SIGNAL_FUNC(dont_destroy), window); |
| 3494 gtk_widget_realize(window); | 3511 gtk_widget_realize(window); |
| 3495 aol_icon(window->window); | 3512 aol_icon(window->window); |
| 3496 | 3513 |
| 3497 layout = gtk_imhtml_new(NULL, NULL); | 3514 layout = gtk_imhtml_new(NULL, NULL); |
| 3515 bbox = gtk_hbox_new(FALSE, 0); | |
| 3516 | |
| 3498 | 3517 |
| 3499 box = gtk_vbox_new(FALSE, 5); | 3518 box = gtk_vbox_new(FALSE, 5); |
| 3500 gtk_container_add(GTK_CONTAINER(window), box); | 3519 gtk_container_add(GTK_CONTAINER(window), box); |
| 3501 | 3520 |
| 3502 hbox = gtk_hbox_new(FALSE, 5); | 3521 hbox = gtk_hbox_new(FALSE, 5); |
| 3539 g_snprintf(convo_start, length, "%s", temp); | 3558 g_snprintf(convo_start, length, "%s", temp); |
| 3540 item = gtk_list_item_new_with_label(convo_start); | 3559 item = gtk_list_item_new_with_label(convo_start); |
| 3541 gtk_object_set_user_data(GTK_OBJECT(item), (gpointer)offset); | 3560 gtk_object_set_user_data(GTK_OBJECT(item), (gpointer)offset); |
| 3542 gtk_object_set_data(GTK_OBJECT(item), "options", (gpointer)options); | 3561 gtk_object_set_data(GTK_OBJECT(item), "options", (gpointer)options); |
| 3543 gtk_object_set_data(GTK_OBJECT(item), "name", (gpointer)name); | 3562 gtk_object_set_data(GTK_OBJECT(item), "name", (gpointer)name); |
| 3563 gtk_object_set_data(GTK_OBJECT(item), "box", (gpointer)bbox); | |
| 3564 gtk_object_set_data(GTK_OBJECT(item), "window", (gpointer)window); | |
| 3544 gtk_signal_connect(GTK_OBJECT(item), "select", GTK_SIGNAL_FUNC(log_show_convo), layout); | 3565 gtk_signal_connect(GTK_OBJECT(item), "select", GTK_SIGNAL_FUNC(log_show_convo), layout); |
| 3545 gtk_container_add(GTK_CONTAINER(list), item); | 3566 gtk_container_add(GTK_CONTAINER(list), item); |
| 3546 gtk_widget_show(item); | 3567 gtk_widget_show(item); |
| 3547 } | 3568 } |
| 3548 } | 3569 } |
| 3549 fclose(fp); | 3570 fclose(fp); |
| 3550 } | 3571 } |
| 3551 | 3572 |
| 3573 gtk_signal_disconnect(GTK_OBJECT(window), block); | |
| 3574 gtk_signal_connect(GTK_OBJECT(window), "delete_event", GTK_SIGNAL_FUNC(destroy_dialog), window); | |
| 3575 | |
| 3552 frame = gtk_frame_new(_("Conversation")); | 3576 frame = gtk_frame_new(_("Conversation")); |
| 3553 gtk_widget_show(frame); | 3577 gtk_widget_show(frame); |
| 3554 | 3578 |
| 3555 sw = gtk_scrolled_window_new(NULL, NULL); | 3579 sw = gtk_scrolled_window_new(NULL, NULL); |
| 3556 gtk_container_set_border_width(GTK_CONTAINER(sw), 5); | 3580 gtk_container_set_border_width(GTK_CONTAINER(sw), 5); |
| 3561 | 3585 |
| 3562 gtk_signal_connect(GTK_OBJECT(layout), "url_clicked", open_url_nw, NULL); | 3586 gtk_signal_connect(GTK_OBJECT(layout), "url_clicked", open_url_nw, NULL); |
| 3563 gtk_container_add(GTK_CONTAINER(sw), layout); | 3587 gtk_container_add(GTK_CONTAINER(sw), layout); |
| 3564 gaim_setup_imhtml(layout); | 3588 gaim_setup_imhtml(layout); |
| 3565 | 3589 |
| 3566 hbox = gtk_hbox_new(FALSE, 0); | 3590 gtk_box_pack_start(GTK_BOX(box), bbox, FALSE, FALSE, 0); |
| 3567 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0); | 3591 gtk_widget_set_sensitive(bbox, FALSE); |
| 3568 | 3592 |
| 3569 close_button = picture_button(window, _("Close"), cancel_xpm); | 3593 close_button = picture_button(window, _("Close"), cancel_xpm); |
| 3570 gtk_box_pack_end(GTK_BOX(hbox), close_button, FALSE, FALSE, 5); | 3594 gtk_box_pack_end(GTK_BOX(bbox), close_button, FALSE, FALSE, 5); |
| 3571 gtk_widget_set_sensitive(close_button, FALSE); | 3595 gtk_signal_connect(GTK_OBJECT(close_button), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), window); |
| 3572 | 3596 |
| 3573 clear_button = picture_button(window, _("Clear"), close_xpm); | 3597 clear_button = picture_button(window, _("Clear"), close_xpm); |
| 3574 gtk_object_set_user_data(GTK_OBJECT(clear_button), window); | 3598 gtk_object_set_user_data(GTK_OBJECT(clear_button), window); |
| 3575 gtk_box_pack_end(GTK_BOX(hbox), clear_button, FALSE, FALSE, 5); | 3599 gtk_box_pack_end(GTK_BOX(bbox), clear_button, FALSE, FALSE, 5); |
| 3576 gtk_widget_set_sensitive(clear_button, FALSE); | 3600 gtk_signal_connect(GTK_OBJECT(clear_button), "clicked", GTK_SIGNAL_FUNC(show_clear_log), name); |
| 3577 | 3601 |
| 3578 save_button = picture_button(window, _("Save"), save_xpm); | 3602 save_button = picture_button(window, _("Save"), save_xpm); |
| 3579 gtk_box_pack_end(GTK_BOX(hbox), save_button, FALSE, FALSE, 5); | 3603 gtk_box_pack_end(GTK_BOX(bbox), save_button, FALSE, FALSE, 5); |
| 3580 gtk_widget_set_sensitive(save_button, FALSE); | 3604 gtk_signal_connect(GTK_OBJECT(save_button), "clicked", GTK_SIGNAL_FUNC(show_save_log), name); |
| 3581 | 3605 |
| 3582 gtk_widget_show_all(window); | 3606 gtk_widget_show_all(window); |
| 3583 | 3607 |
| 3584 if (!name) { | 3608 if (!name) { |
| 3585 gtk_object_set_user_data(GTK_OBJECT(layout), (gpointer)0); | 3609 gtk_object_set_user_data(GTK_OBJECT(layout), (gpointer)0); |
| 3586 gtk_object_set_data(GTK_OBJECT(layout), "options", (gpointer)options); | 3610 gtk_object_set_data(GTK_OBJECT(layout), "options", (gpointer)options); |
| 3587 gtk_object_set_data(GTK_OBJECT(layout), "name", (gpointer)NULL); | 3611 gtk_object_set_data(GTK_OBJECT(layout), "name", (gpointer)NULL); |
| 3612 gtk_object_set_data(GTK_OBJECT(layout), "box", (gpointer)bbox); | |
| 3613 gtk_object_set_data(GTK_OBJECT(layout), "window", (gpointer)window); | |
| 3588 log_show_convo(layout, layout); | 3614 log_show_convo(layout, layout); |
| 3589 } else { | 3615 } else { |
| 3590 gtk_list_select_item(GTK_LIST(list), 0); | 3616 gtk_list_select_item(GTK_LIST(list), 0); |
| 3591 } | 3617 } |
| 3592 | |
| 3593 gtk_signal_disconnect(GTK_OBJECT(window), block); | |
| 3594 gtk_signal_connect(GTK_OBJECT(window), "delete_event", GTK_SIGNAL_FUNC(destroy_dialog), window); | |
| 3595 gtk_signal_connect(GTK_OBJECT(close_button), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), window); | |
| 3596 gtk_signal_connect(GTK_OBJECT(clear_button), "clicked", GTK_SIGNAL_FUNC(show_clear_log), name); | |
| 3597 gtk_signal_connect(GTK_OBJECT(save_button), "clicked", GTK_SIGNAL_FUNC(show_save_log), name); | |
| 3598 | 3618 |
| 3599 gtk_widget_set_sensitive(close_button, TRUE); | 3619 gtk_widget_set_sensitive(bbox, TRUE); |
| 3600 gtk_widget_set_sensitive(clear_button, TRUE); | |
| 3601 gtk_widget_set_sensitive(save_button, TRUE); | |
| 3602 | 3620 |
| 3603 return; | 3621 return; |
| 3604 } | 3622 } |
| 3605 | 3623 |
| 3606 /*------------------------------------------------------------------------*/ | 3624 /*------------------------------------------------------------------------*/ |
