X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fhelp-menu.c;h=403e5950581eaf01d2536620fa8e03b2edb1f4c5;hb=37c21ba9301956091823dea7d84ff0400330bd4b;hp=94c16843180bd78671941ab94e2ee3d848d84321;hpb=66206e014864cacf1ce620d4e095707efc3fd2b8;p=pspp diff --git a/src/ui/gui/help-menu.c b/src/ui/gui/help-menu.c index 94c1684318..403e595058 100644 --- a/src/ui/gui/help-menu.c +++ b/src/ui/gui/help-menu.c @@ -24,7 +24,9 @@ #include "libpspp/copyleft.h" #include "libpspp/message.h" #include "libpspp/version.h" +#include "ui/gui/executor.h" #include "ui/gui/help-menu.h" +#include "ui/gui/psppire-data-window.h" #include "gl/configmake.h" #include "gl/relocatable.h" @@ -45,53 +47,6 @@ static const gchar *artists[] = { "Bastián Díaz", "Hugo Alejandro", NULL}; -static void -about_new (GtkMenuItem *mmm, GtkWindow *parent) -{ - GtkWidget *about = gtk_about_dialog_new (); - - gtk_about_dialog_set_logo_icon_name (GTK_ABOUT_DIALOG (about), "pspp"); - - gtk_window_set_icon_name (GTK_WINDOW (about), "pspp"); - - gtk_about_dialog_set_website (GTK_ABOUT_DIALOG (about), PACKAGE_URL); - - gtk_about_dialog_set_version (GTK_ABOUT_DIALOG (about), - announced_version); - - gtk_about_dialog_set_authors (GTK_ABOUT_DIALOG (about), - (const gchar **) authors); - - gtk_about_dialog_set_artists (GTK_ABOUT_DIALOG (about), - artists); - - gtk_about_dialog_set_license (GTK_ABOUT_DIALOG (about), - copyleft); - - gtk_about_dialog_set_comments (GTK_ABOUT_DIALOG (about), - _("A program for the analysis of sampled data")); - - gtk_about_dialog_set_copyright (GTK_ABOUT_DIALOG (about), - "Free Software Foundation"); - - gtk_about_dialog_set_translator_credits - ( - GTK_ABOUT_DIALOG (about), - /* TRANSLATORS: Do not translate this string. Instead, put the names of the people - who have helped in the translation. */ - _("translator-credits") -); - - gtk_window_set_transient_for (GTK_WINDOW (about), parent); - - gtk_window_set_modal (GTK_WINDOW (about), TRUE); - - gtk_dialog_run (GTK_DIALOG (about)); - - gtk_widget_hide (about); -} - - /* Opening the htmluri in windows via cmd /start uri opens the windows command shell for a moment. The alternative is to start a script via wscript. This will not be visible*/ @@ -162,8 +117,75 @@ open_windows_help (const gchar *helpuri, GError **err) return FALSE; } + +static gboolean +on_activate_link (GtkAboutDialog *label, + gchar *uri, + gpointer user_data) +{ + return open_windows_help (uri, NULL); +} +#endif + +static void +about_system_info (GtkMenuItem *mmm, GtkWindow *parent) +{ + execute_const_syntax_string (psppire_default_data_window (), "SHOW SYSTEM."); +} + +static void +about_new (GtkMenuItem *mmm, GtkWindow *parent) +{ + GtkWidget *about = gtk_about_dialog_new (); + +#ifdef _WIN32 + /* The default handler for Windows doesn't appear to work. */ + g_signal_connect (about, "activate-link", G_CALLBACK (on_activate_link), parent); #endif + gtk_about_dialog_set_logo_icon_name (GTK_ABOUT_DIALOG (about), "org.gnu.pspp"); + + gtk_window_set_icon_name (GTK_WINDOW (about), "org.gnu.pspp"); + + gtk_about_dialog_set_website (GTK_ABOUT_DIALOG (about), PACKAGE_URL); + + gtk_about_dialog_set_version (GTK_ABOUT_DIALOG (about), + announced_version); + + gtk_about_dialog_set_authors (GTK_ABOUT_DIALOG (about), + (const gchar **) authors); + + gtk_about_dialog_set_artists (GTK_ABOUT_DIALOG (about), + artists); + + gtk_about_dialog_set_license (GTK_ABOUT_DIALOG (about), + copyleft); + + gtk_about_dialog_set_comments (GTK_ABOUT_DIALOG (about), + _("A program for the analysis of sampled data")); + + gtk_about_dialog_set_copyright (GTK_ABOUT_DIALOG (about), + "Free Software Foundation"); + + gtk_about_dialog_set_translator_credits + ( + GTK_ABOUT_DIALOG (about), + /* TRANSLATORS: Do not translate this string. Instead, put the names of the people + who have helped in the translation. */ + _("translator-credits") +); + + gtk_window_set_transient_for (GTK_WINDOW (about), parent); + + gtk_window_set_modal (GTK_WINDOW (about), TRUE); + + gtk_dialog_run (GTK_DIALOG (about)); + + gtk_widget_hide (about); +} + + + /* Open the manual at PAGE with the following priorities First: local yelp help system Second: browser with local html doc dir in path pspp.html/.html @@ -251,6 +273,7 @@ create_help_menu (GtkWindow *toplevel) GtkWidget *menu = gtk_menu_new (); GtkWidget *help_about = gtk_menu_item_new_with_mnemonic (_("_About")); + GtkWidget *help_system_info = gtk_menu_item_new_with_mnemonic (_("_System Information")); GtkWidget *help_ref = gtk_menu_item_new_with_mnemonic (_("_Reference Manual")); GtkAccelGroup *accel_group = gtk_accel_group_new (); @@ -263,9 +286,11 @@ create_help_menu (GtkWindow *toplevel) GTK_ACCEL_VISIBLE); gtk_menu_attach (GTK_MENU (menu), help_ref, 0, 1, 0, 1); - gtk_menu_attach (GTK_MENU (menu), help_about, 0, 1, 1, 2); + gtk_menu_attach (GTK_MENU (menu), help_system_info, 0, 1, 1, 2); + gtk_menu_attach (GTK_MENU (menu), help_about, 0, 1, 2, 3); g_signal_connect (help_about, "activate", G_CALLBACK (about_new), toplevel); + g_signal_connect (help_system_info, "activate", G_CALLBACK (about_system_info), toplevel); g_signal_connect (help_ref, "activate", G_CALLBACK (reference_manual), NULL); g_object_set (menuitem, "submenu", menu, NULL);