+ return scrolledwin;
+}
+
+static gboolean release_notes_available(void)
+{
+ gboolean ret = FALSE;
+ gchar *path = NULL;
+
+ path = g_strconcat(DOCDIR, G_DIR_SEPARATOR_S, RELEASE_NOTES_FILE, NULL);
+ ret = (is_file_exist(path));
+ g_free(path);
+
+ return ret;
+}
+
+static GtkWidget *about_create_child_page_release_notes(void)
+{
+ GtkWidget *scrolledwin;
+ GtkWidget *text;
+ GtkTextBuffer *buffer;
+ GtkTextIter iter;
+ gchar *path, buf[1024];
+ FILE *fp;
+
+ scrolledwin = gtk_scrolled_window_new(NULL, NULL);
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin),
+ GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+ gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolledwin),
+ GTK_SHADOW_IN);
+ text = gtk_text_view_new();
+ gtk_text_view_set_editable(GTK_TEXT_VIEW(text), FALSE);
+ gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text), GTK_WRAP_WORD);
+ gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text), 6);
+ gtk_text_view_set_right_margin(GTK_TEXT_VIEW(text), 6);
+ gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(text), FALSE);
+ gtk_container_add(GTK_CONTAINER(scrolledwin), text);
+
+ buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));
+ gtk_text_buffer_get_iter_at_offset(buffer, &iter, 0);
+
+ path = g_strconcat(DOCDIR, G_DIR_SEPARATOR_S, RELEASE_NOTES_FILE, NULL);
+ if ((fp = g_fopen(path, "rb")) == NULL) {
+ if (ENOENT != errno) FILE_OP_ERROR(path, "fopen");
+ g_free(path);
+ return scrolledwin;
+ }
+ g_free(path);
+
+ while (fgets(buf, sizeof(buf), fp) != NULL) {
+ const gchar *src_codeset = conv_get_locale_charset_str();
+ const gchar *dest_codeset = CS_UTF_8;
+ gchar *tmp;
+
+ tmp = conv_codeset_strdup(buf, src_codeset, dest_codeset);
+ if (!tmp) {
+ g_warning("Failed to convert character set of action configuration\n");
+ tmp = g_strdup(buf);
+ }
+
+ gtk_text_buffer_insert(buffer, &iter, tmp, -1);
+ g_free(tmp);
+ }
+ fclose(fp);
+
+ return scrolledwin;
+}
+
+static void about_create(void)
+{
+ GtkWidget *vbox1;
+ GtkWidget *image;
+ GtkWidget *vbox2;
+ GtkWidget *label;
+ GtkWidget *button;
+ GtkWidget *scrolledwin;
+ GtkWidget *notebook;
+ GtkWidget *table;
+ char *markup;
+ GtkWidget *confirm_area;
+ GtkWidget *close_button;
+ static GdkGeometry geometry;
+
+ window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ gtk_window_set_title(GTK_WINDOW(window), _("About Claws Mail"));
+ gtk_container_set_border_width(GTK_CONTAINER(window), 8);
+ gtk_widget_set_size_request(window, -1, -1);
+ g_signal_connect(G_OBJECT(window), "delete_event",
+ G_CALLBACK(gtk_widget_hide_on_delete), NULL);
+ g_signal_connect(G_OBJECT(window), "key_press_event",
+ G_CALLBACK(key_pressed), NULL);
+ gtk_widget_realize(window);
+
+ if (!geometry.min_width) {
+ geometry.min_width = 450;
+ geometry.min_height = 500;
+ }
+
+ gtk_window_set_geometry_hints(GTK_WINDOW(window), NULL, &geometry,
+ GDK_HINT_MIN_SIZE);
+
+ vbox1 = gtk_vbox_new(FALSE, 8);
+ gtk_container_add(GTK_CONTAINER(window), vbox1);
+
+ table = gtk_table_new (2, 1, FALSE);
+ gtk_box_pack_start(GTK_BOX(vbox1), table,
+ FALSE, FALSE, 0);
+ gtk_container_set_border_width (GTK_CONTAINER (table), 8);
+ gtk_table_set_row_spacings (GTK_TABLE (table), 8);
+ gtk_table_set_col_spacings (GTK_TABLE (table), 8);
+
+ image = stock_pixmap_widget(window, STOCK_PIXMAP_CLAWS_MAIL_LOGO);
+ gtk_table_attach (GTK_TABLE (table), image, 0, 1, 0, 1,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (0), 0, 0);
+
+ vbox2 = gtk_vbox_new (FALSE, 4);
+ gtk_table_attach (GTK_TABLE (table), vbox2, 1, 2, 0, 1,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (0), 0, 0);
+
+ label = gtk_label_new("");
+ gtk_label_set_selectable(GTK_LABEL(label), TRUE);
+ gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_CENTER);
+ gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, FALSE, 0);
+ markup = g_markup_printf_escaped
+ ("<span weight=\"bold\" size=\"xx-large\">Claws Mail</span>\nversion %s",
+ VERSION);
+ gtk_label_set_markup(GTK_LABEL(label), markup);
+ g_free(markup);
+
+ button = gtkut_get_link_btn(window, HOMEPAGE_URI, " "HOMEPAGE_URI" ");
+ gtk_box_pack_start(GTK_BOX(vbox2), button, FALSE, FALSE, 0);
+
+ label = gtk_label_new
+ (_("Copyright (C) 1999-2006\nHiroyuki Yamamoto <hiro-y@kcn.ne.jp>\n"
+ "and the Claws Mail team"));
+ gtk_label_set_selectable(GTK_LABEL(label), TRUE);
+ gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_CENTER);
+ gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
+ gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, FALSE, 0);
+
+ notebook = gtk_notebook_new();
+ gtk_widget_set_size_request(notebook, -1, 220);
+ gtk_widget_show(notebook);
+
+ if ((scrolledwin = about_create_child_page_info()) != NULL) {
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook),
+ scrolledwin,
+ gtk_label_new_with_mnemonic(_("_Info")));
+ }
+
+ if ((scrolledwin = about_create_child_page_authors()) != NULL) {
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook),
+ scrolledwin,
+ gtk_label_new_with_mnemonic(_("_Authors")));
+ }
+
+ if ((scrolledwin = about_create_child_page_features()) != NULL) {
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook),
+ scrolledwin,
+ gtk_label_new_with_mnemonic(_("_Features")));
+ }
+
+ if ((scrolledwin = about_create_child_page_license()) != NULL) {
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook),
+ scrolledwin,
+ gtk_label_new_with_mnemonic(_("_License")));
+ }
+
+ if (release_notes_available() &&
+ (scrolledwin = about_create_child_page_release_notes()) != NULL) {
+
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook),
+ scrolledwin,
+ gtk_label_new_with_mnemonic(_("_Release Notes")));
+ }