Refactor perl code to write file header
[emu8051.git] / src / helpmenu.c
index bd3d4ec..4a8d9dc 100644 (file)
@@ -23,6 +23,8 @@
 #  include "config.h"
 #endif
 
+#include <stdbool.h>
+
 #if STDC_HEADERS
 #  include <string.h>
 #elif HAVE_STRINGS_H
@@ -37,6 +39,8 @@
 #include "messagebox.h"
 #include "helpmenu.h"
 
+#define PACKAGE_COPYRIGHT "(c) Hugo Villeneuve"
+
 static void
 HelpCommandsEvent(gchar *string)
 {
@@ -45,10 +49,45 @@ HelpCommandsEvent(gchar *string)
 }
 
 static void
-HelpAboutEvent(gchar *string)
+HelpAboutEvent(GtkWidget *widget, gpointer data)
 {
-       ShowMessage("About", VERSION_STRING, GTK_JUSTIFY_CENTER,
-                   MESSAGE_DIALOG_NORMAL_FONT);
+       const char *authors[] = {
+               "Hugo Villeneuve <hugo@hugovil.com>",
+               "Jonathan St-AndrĂ©",
+               "Pascal Fecteau",
+               "Jimmy Ringuette",
+               NULL,
+       };
+
+       const char *license =
+               "This program is free software; you can redistribute it"
+               " and/or"
+               " modify it under the terms of the GNU General Public License"
+               " as published by the Free Software Foundation; either"
+               " version 2 of the License, or (at your option) any later"
+               " version.\n\n"
+               "This program is distributed in the hope that it will be"
+               " useful, but WITHOUT ANY WARRANTY; without even the implied"
+               " warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR"
+               " PURPOSE.  See the GNU General Public License for more"
+               " details.\n\n"
+               "You should have received a copy of the GNU General Public"
+               " License along with this program. If not, see\n"
+               "   <http://www.gnu.org/licenses/>";
+
+       gtk_show_about_dialog(
+               NULL,
+               "name", PACKAGE_NAME,
+               "title", "About Dialog",
+               "version", PACKAGE_VERSION,
+               "logo-icon-name", PACKAGE_TARNAME,
+               "comments", get_package_description(),
+               "authors", authors,
+               "website", PACKAGE_URL,
+               "copyright", PACKAGE_COPYRIGHT,
+               "license", license,
+               "wrap-license", true,
+               NULL);
 }
 
 void
@@ -61,24 +100,20 @@ HelpAddMenu(GtkWidget *menu_bar)
 
        /* Create the 'Help Command Line Options' item. */
        item = gtk_menu_item_new_with_label("Command Line Options");
-       gtk_menu_append(GTK_MENU(menu), item);
+       gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
        /* Attach the callback functions to the activate signal. */
-       gtk_signal_connect_object(GTK_OBJECT(item), "activate",
-                                 GTK_SIGNAL_FUNC(HelpCommandsEvent),
-                                 NULL);
+       g_signal_connect(item, "activate", G_CALLBACK(HelpCommandsEvent), NULL);
 
        AddMenuSeparator(menu);
 
        /* Create the 'Help About' item. */
        item = gtk_menu_item_new_with_label("About " PACKAGE);
-       gtk_menu_append(GTK_MENU(menu), item);
+       gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
        /* Attach the callback functions to the activate signal. */
-       gtk_signal_connect_object(GTK_OBJECT(item), "activate",
-                                 GTK_SIGNAL_FUNC(HelpAboutEvent),
-                                 NULL);
+       g_signal_connect(item, "activate", G_CALLBACK(HelpAboutEvent), NULL);
 
        /* Adding submenu title. */
        item = gtk_menu_item_new_with_label("Help");
        gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), menu);
-       gtk_menu_bar_append(GTK_MENU_BAR(menu_bar), item);
+       gtk_menu_shell_append((GtkMenuShell *) menu_bar, item);
 }