static MimeViewer *pgp_viewer_create(void) { PgpViewer *viewer; debug_print("pgp_viewer_create\n"); viewer = g_new0(PgpViewer, 1); viewer->mimeviewer.factory = &pgp_viewer_factory; viewer->mimeviewer.get_widget = pgp_get_widget; viewer->mimeviewer.show_mimepart = pgp_show_mimepart; viewer->mimeviewer.clear_viewer = pgp_clear_viewer; viewer->mimeviewer.destroy_viewer = pgp_destroy_viewer; viewer->mimeviewer.get_selection = NULL; viewer->textview = textview_create(); textview_init(viewer->textview); gtk_widget_show_all(viewer->textview->vbox); return (MimeViewer *) viewer; }
MessageView *messageview_create(void) { MessageView *messageview; GtkWidget *vbox; GtkWidget *notebook; HeaderView *headerview; TextView *textview; MimeView *mimeview; debug_print(_("Creating message view...\n")); messageview = g_new0(MessageView, 1); messageview->type = MVIEW_TEXT; headerview = headerview_create(); textview = textview_create(); textview->messageview = messageview; mimeview = mimeview_create(); mimeview->textview = textview_create(); mimeview->textview->messageview = messageview; mimeview->imageview = imageview_create(); mimeview->imageview->messageview = messageview; mimeview->messageview = messageview; notebook = gtk_notebook_new(); gtk_notebook_set_show_border(GTK_NOTEBOOK(notebook), FALSE); gtk_notebook_set_show_tabs(GTK_NOTEBOOK(notebook), FALSE); gtk_notebook_set_scrollable(GTK_NOTEBOOK(notebook), TRUE); gtk_widget_show(notebook); gtk_container_add(GTK_CONTAINER(notebook), GTK_WIDGET_PTR(textview)); gtk_notebook_set_tab_label_text (GTK_NOTEBOOK(notebook), GTK_WIDGET_PTR(textview), _("Text")); gtk_container_add(GTK_CONTAINER(notebook), GTK_WIDGET_PTR(mimeview)); gtk_notebook_set_tab_label_text(GTK_NOTEBOOK(notebook), GTK_WIDGET_PTR(mimeview), _("Attachments")); gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook), 0); gtk_widget_show_all(notebook); vbox = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET_PTR(headerview), FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), notebook, TRUE, TRUE, 0); gtk_widget_show(vbox); /* to remove without destroyed */ gtk_widget_ref(GTK_WIDGET_PTR(mimeview->textview)); gtk_widget_ref(GTK_WIDGET_PTR(mimeview->imageview)); g_signal_connect(G_OBJECT(notebook), "switch_page", G_CALLBACK(messageview_switch_page_cb), messageview); messageview->vbox = vbox; messageview->notebook = notebook; messageview->new_window = FALSE; messageview->window = NULL; messageview->window_vbox = NULL; messageview->body_vbox = NULL; messageview->headerview = headerview; messageview->textview = textview; messageview->mimeview = mimeview; messageview->statusbar = NULL; messageview->statusbar_cid = 0; messageview->current_page = 0; return messageview; }