Mercurial > pidgin
comparison src/dialogs.c @ 1477:1d0fc2622b29
[gaim-migrate @ 1487]
log viewer, courtesy bmiller. still needs work but it's good enough to be in CVS
committer: Tailor Script <tailor@pidgin.im>
| author | Eric Warmenhoven <eric@warmenhoven.org> |
|---|---|
| date | Wed, 07 Feb 2001 21:11:00 +0000 |
| parents | 6650776468b3 |
| children | 934041288fbb |
comparison
equal
deleted
inserted
replaced
| 1476:721cd9b73704 | 1477:1d0fc2622b29 |
|---|---|
| 1834 | 1834 |
| 1835 if (display_options & OPT_DISP_IGNORE_COLOUR) | 1835 if (display_options & OPT_DISP_IGNORE_COLOUR) |
| 1836 options ^= GTK_IMHTML_NO_COLOURS; | 1836 options ^= GTK_IMHTML_NO_COLOURS; |
| 1837 if (display_options & OPT_DISP_IGNORE_FONTS) | 1837 if (display_options & OPT_DISP_IGNORE_FONTS) |
| 1838 options ^= GTK_IMHTML_NO_FONTS; | 1838 options ^= GTK_IMHTML_NO_FONTS; |
| 1839 if (display_options & OPT_DISP_IGNORE_SIZES) | |
| 1840 options ^= GTK_IMHTML_NO_SIZES; | |
| 1839 options ^= GTK_IMHTML_NO_COMMENTS; | 1841 options ^= GTK_IMHTML_NO_COMMENTS; |
| 1840 options ^= GTK_IMHTML_NO_TITLE; | 1842 options ^= GTK_IMHTML_NO_TITLE; |
| 1841 options ^= GTK_IMHTML_NO_NEWLINE; | 1843 options ^= GTK_IMHTML_NO_NEWLINE; |
| 1842 options ^= GTK_IMHTML_NO_SCROLL; | 1844 options ^= GTK_IMHTML_NO_SCROLL; |
| 1843 gtk_imhtml_append_text(GTK_IMHTML(b->text), info, options); | 1845 gtk_imhtml_append_text(GTK_IMHTML(b->text), info, options); |
| 3636 gtk_widget_realize(aliasdlg); | 3638 gtk_widget_realize(aliasdlg); |
| 3637 aol_icon(aliasdlg->window); | 3639 aol_icon(aliasdlg->window); |
| 3638 | 3640 |
| 3639 gtk_widget_show(aliasdlg); | 3641 gtk_widget_show(aliasdlg); |
| 3640 } | 3642 } |
| 3643 | |
| 3644 | |
| 3645 static gboolean dont_destroy(gpointer a, gpointer b, gpointer c) { | |
| 3646 return TRUE; | |
| 3647 } | |
| 3648 | |
| 3649 void | |
| 3650 show_log (char *name) | |
| 3651 { | |
| 3652 gchar filename[256]; | |
| 3653 gchar buf[BUF_LONG]; | |
| 3654 GString *string; | |
| 3655 FILE *fp; | |
| 3656 GtkWidget *window; | |
| 3657 GtkWidget *box; | |
| 3658 GtkWidget *sw; | |
| 3659 GtkWidget *layout; | |
| 3660 int options; | |
| 3661 guint block; | |
| 3662 | |
| 3663 string = g_string_new(""); | |
| 3664 | |
| 3665 g_snprintf(filename, 256, "%s/logs/%s.log", | |
| 3666 gaim_user_dir(), normalize(name)); | |
| 3667 if ((fp = fopen(filename, "r")) == NULL) { | |
| 3668 g_snprintf(buf, BUF_LONG, "Unable to open log file %s", | |
| 3669 filename); | |
| 3670 do_error_dialog(buf, "Error!"); | |
| 3671 return; | |
| 3672 } | |
| 3673 | |
| 3674 options = GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_TITLE | GTK_IMHTML_NO_SCROLL; | |
| 3675 if (display_options & OPT_DISP_IGNORE_COLOUR) | |
| 3676 options ^= GTK_IMHTML_NO_COLOURS; | |
| 3677 if (display_options & OPT_DISP_IGNORE_FONTS) | |
| 3678 options ^= GTK_IMHTML_NO_FONTS; | |
| 3679 if (display_options & OPT_DISP_IGNORE_SIZES) | |
| 3680 options ^= GTK_IMHTML_NO_SIZES; | |
| 3681 | |
| 3682 window = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
| 3683 dialogwindows = g_list_prepend(dialogwindows, window); | |
| 3684 gtk_window_set_wmclass(GTK_WINDOW(window), "log", "Gaim"); | |
| 3685 g_snprintf(buf, BUF_LONG, "Gaim - Conversations with %s", name); | |
| 3686 gtk_window_set_title(GTK_WINDOW(window), buf); | |
| 3687 gtk_container_set_border_width(GTK_CONTAINER(window), 15); | |
| 3688 gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, TRUE); | |
| 3689 block = gtk_signal_connect(GTK_OBJECT(window), "delete_event", | |
| 3690 GTK_SIGNAL_FUNC(dont_destroy), window); | |
| 3691 gtk_widget_realize(window); | |
| 3692 aol_icon(window->window); | |
| 3693 | |
| 3694 box = gtk_vbox_new(FALSE, 0); | |
| 3695 gtk_container_add(GTK_CONTAINER(window), box); | |
| 3696 | |
| 3697 sw = gtk_scrolled_window_new(NULL, NULL); | |
| 3698 gtk_box_pack_start(GTK_BOX(box), sw, TRUE, TRUE, 0); | |
| 3699 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); | |
| 3700 gtk_widget_set_usize(sw, 390, 220); | |
| 3701 | |
| 3702 layout = gtk_imhtml_new(NULL, NULL); | |
| 3703 gtk_signal_connect(GTK_OBJECT(layout), "url_clicked", open_url_nw, NULL); | |
| 3704 gtk_container_add(GTK_CONTAINER(sw), layout); | |
| 3705 gtk_imhtml_show_comments(GTK_IMHTML(layout), TRUE); | |
| 3706 gtk_imhtml_associate_smiley(GTK_IMHTML(layout), "C:)", luke03_xpm); | |
| 3707 gtk_imhtml_associate_smiley(GTK_IMHTML(layout), "C:-)", luke03_xpm); | |
| 3708 gtk_imhtml_associate_smiley(GTK_IMHTML(layout), "O-)", oneeye_xpm); | |
| 3709 | |
| 3710 gtk_widget_show_all(window); | |
| 3711 | |
| 3712 while (fgets (buf, BUF_LONG, fp)) { | |
| 3713 if (strlen (buf) >= 5 && | |
| 3714 (!strncmp (buf+strlen(buf)-5, "<BR>\n", 5))) | |
| 3715 /* take off the \n */ | |
| 3716 buf[strlen(buf)-1] = '\0'; | |
| 3717 if (strlen (buf) >= 21 && | |
| 3718 strstr (buf, "---- New C")) { | |
| 3719 gtk_imhtml_append_text (GTK_IMHTML(layout), string->str, options); | |
| 3720 g_string_free (string, TRUE); | |
| 3721 string = g_string_new (buf); | |
| 3722 } else { | |
| 3723 string = g_string_append (string, buf); | |
| 3724 } | |
| 3725 while (gtk_events_pending()) | |
| 3726 gtk_main_iteration(); | |
| 3727 } | |
| 3728 gtk_imhtml_append_text (GTK_IMHTML(layout), string->str, options); | |
| 3729 | |
| 3730 gtk_signal_disconnect(GTK_OBJECT(window), block); | |
| 3731 gtk_signal_connect(GTK_OBJECT(window), "delete_event", | |
| 3732 GTK_SIGNAL_FUNC(destroy_dialog), window); | |
| 3733 | |
| 3734 fclose(fp); | |
| 3735 g_string_free (string, TRUE); | |
| 3736 | |
| 3737 return; | |
| 3738 } |
