From c17032328c39b048a60d9e99cc1c5847717ca7b0 Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Mon, 15 Nov 2010 01:11:42 +0000 Subject: [PATCH] using the libDesktop for the about dialog window --- src/view.c | 192 ++++------------------------------------------------- 1 file changed, 14 insertions(+), 178 deletions(-) diff --git a/src/view.c b/src/view.c index 5738c95..c03ee69 100644 --- a/src/view.c +++ b/src/view.c @@ -446,205 +446,41 @@ static void _on_file_close(gpointer data) /* on_help_about */ static gboolean _about_on_closex(gpointer data); -#if !GTK_CHECK_VERSION(2, 6, 0) -static void _about_on_close(GtkWidget * widget, gpointer data); -static void _about_on_credits(GtkWidget * widget, gpointer data); -static void _about_on_license(GtkWidget * widget, gpointer data); -#endif static void _on_help_about(gpointer data) { View * view = data; - GtkWidget * window; -#if GTK_CHECK_VERSION(2, 6, 0) - gsize cnt = 65536; - gchar * buf; if(view->ab_window != NULL) { gtk_widget_show(view->ab_window); return; } - view->ab_window = gtk_about_dialog_new(); - window = view->ab_window; - gtk_window_set_transient_for(GTK_WINDOW(window), GTK_WINDOW( + view->ab_window = desktop_about_dialog_new(); + gtk_window_set_transient_for(GTK_WINDOW(view->ab_window), GTK_WINDOW( view->window)); - gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(window), _("View")); - gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(window), VERSION); - gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(window), _copyright); - gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(window), _view_authors); - if(g_file_get_contents("/usr/share/common-licenses/GPL-2", &buf, &cnt, - NULL) == TRUE) - gtk_about_dialog_set_license(GTK_ABOUT_DIALOG(window), buf); - else - gtk_about_dialog_set_license(GTK_ABOUT_DIALOG(window), - _license); - free(buf); - g_signal_connect(G_OBJECT(window), "delete-event", G_CALLBACK( - _about_on_closex), window); - g_signal_connect(G_OBJECT(window), "response", G_CALLBACK( - gtk_widget_hide), NULL); - gtk_widget_show(window); + desktop_about_dialog_set_authors(view->ab_window, _view_authors); + desktop_about_dialog_set_copyright(view->ab_window, _copyright); + desktop_about_dialog_set_logo_icon_name(view->ab_window, + "system-file-manager"); + desktop_about_dialog_set_license(view->ab_window, _license); + desktop_about_dialog_set_name(view->ab_window, PACKAGE); + desktop_about_dialog_set_version(view->ab_window, VERSION); + g_signal_connect_swapped(G_OBJECT(view->ab_window), "delete-event", + G_CALLBACK(_about_on_closex), view); + gtk_widget_show(view->ab_window); } -#else /* !GTK_CHECK_VERSION(2, 6, 0) */ - GtkWidget * vbox; - GtkWidget * hbox; - GtkWidget * button; - - if(browser->ab_window != NULL) - { - gtk_widget_show(browser->ab_window); - return; - } - browser->ab_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - window = browser->ab_window; - gtk_container_set_border_width(GTK_CONTAINER(window), 4); - gtk_window_set_title(GTK_WINDOW(window), _("About Browser")); - gtk_window_set_transient_for(GTK_WINDOW(window), GTK_WINDOW( - browser->window)); - g_signal_connect(G_OBJECT(window), "delete-event", G_CALLBACK( - _about_on_closex), window); - vbox = gtk_vbox_new(FALSE, 2); - gtk_box_pack_start(GTK_BOX(vbox), gtk_label_new(PACKAGE " " VERSION), - FALSE, FALSE, 2); - gtk_box_pack_start(GTK_BOX(vbox), gtk_label_new(_copyright), FALSE, - FALSE, 2); - hbox = gtk_hbox_new(TRUE, 4); - button = gtk_button_new_with_mnemonic(_("C_redits")); - g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK( - _about_on_credits), window); - gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, TRUE, 4); - button = gtk_button_new_with_mnemonic(_("_License")); - g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK( - _about_on_license), window); - gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, TRUE, 4); - button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); - g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK( - _about_on_close), window); - gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, TRUE, 4); - gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 4); - gtk_container_add(GTK_CONTAINER(window), vbox); - gtk_widget_show_all(window); -} -#endif static gboolean _about_on_closex(gpointer data) { - GtkWidget * widget = data; + View * view = data; - gtk_widget_hide(widget); + gtk_widget_hide(view->ab_window); return TRUE; } -#if !GTK_CHECK_VERSION(2, 6, 0) -static void _about_on_close(GtkWidget * widget, gpointer data) -{ - GtkWidget * window = data; - gtk_widget_hide(window); -} - -static void _about_on_credits(GtkWidget * widget, gpointer data) -{ - static GtkWidget * window = NULL; - GtkWidget * about = data; - GtkWidget * vbox; - GtkWidget * notebook; - GtkWidget * textview; - GtkTextBuffer * tbuf; - GtkTextIter iter; - GtkWidget * hbox; - size_t i; - - if(window != NULL) - { - gtk_widget_show(window); - return; - } - window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_window_set_default_size(GTK_WINDOW(window), 200, 200); - gtk_container_set_border_width(GTK_CONTAINER(window), 4); - gtk_window_set_title(GTK_WINDOW(window), _("Credits")); - gtk_window_set_transient_for(GTK_WINDOW(window), GTK_WINDOW(about)); - g_signal_connect_swapped(G_OBJECT(window), "delete-event", G_CALLBACK( - _about_on_closex), window); - vbox = gtk_vbox_new(FALSE, 0); - textview = gtk_text_view_new(); - gtk_text_view_set_editable(GTK_TEXT_VIEW(textview), FALSE); - tbuf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview)); - gtk_text_buffer_set_text(tbuf, "", 0); - for(i = 0; _view_authors[i] != NULL; i++) - { - gtk_text_buffer_get_end_iter(tbuf, &iter); - gtk_text_buffer_insert(tbuf, &iter, _view_authors[i], strlen( - _view_authors[i])); - } - widget = gtk_scrolled_window_new(NULL, NULL); - gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(widget), - GTK_SHADOW_IN); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(widget), - GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - gtk_container_add(GTK_CONTAINER(widget), textview); - notebook = gtk_notebook_new(); - gtk_notebook_append_page(GTK_NOTEBOOK(notebook), widget, - gtk_label_new(_("Written by"))); - gtk_box_pack_start(GTK_BOX(vbox), notebook, TRUE, TRUE, 4); - hbox = gtk_hbox_new(FALSE, 0); - widget = gtk_button_new_from_stock(GTK_STOCK_CLOSE); - g_signal_connect(G_OBJECT(widget), "clicked", - G_CALLBACK(_about_on_close), window); - gtk_box_pack_end(GTK_BOX(hbox), widget, FALSE, TRUE, 4); - gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 4); - gtk_container_add(GTK_CONTAINER(window), vbox); - gtk_widget_show_all(window); -} - -static void _about_on_license(GtkWidget * widget, gpointer data) -{ - static GtkWidget * window = NULL; - GtkWidget * about = data; - GtkWidget * vbox; - GtkWidget * textview; - GtkTextBuffer * tbuf; - GtkWidget * hbox; - - if(window != NULL) - { - gtk_widget_show(window); - return; - } - window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_window_set_default_size(GTK_WINDOW(window), 200, 200); - gtk_container_set_border_width(GTK_CONTAINER(window), 4); - gtk_window_set_title(GTK_WINDOW(window), _("License")); - gtk_window_set_transient_for(GTK_WINDOW(window), GTK_WINDOW(about)); - g_signal_connect_swapped(G_OBJECT(window), "delete-event", G_CALLBACK( - _about_on_closex), window); - vbox = gtk_vbox_new(FALSE, 0); - textview = gtk_text_view_new(); - gtk_text_view_set_editable(GTK_TEXT_VIEW(textview), FALSE); - tbuf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview)); - gtk_text_buffer_set_text(tbuf, _license, strlen(_license)); - widget = gtk_scrolled_window_new(NULL, NULL); - gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(widget), - GTK_SHADOW_IN); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(widget), - GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - gtk_container_add(GTK_CONTAINER(widget), textview); - gtk_box_pack_start(GTK_BOX(vbox), widget, TRUE, TRUE, 4); - hbox = gtk_hbox_new(FALSE, 0); - widget = gtk_button_new_from_stock(GTK_STOCK_CLOSE); - g_signal_connect(G_OBJECT(widget), "clicked", - G_CALLBACK(_about_on_close), window); - gtk_box_pack_end(GTK_BOX(hbox), widget, FALSE, TRUE, 4); - gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 4); - gtk_container_add(GTK_CONTAINER(window), vbox); - gtk_widget_show_all(window); -} -#endif /* !GTK_CHECK_VERSION(2, 6, 0) */ #else - - /* on_close */ static void _on_close(gpointer data) {