From a689ebb776c6c95ae806e6449e0c90019fbb8a17 Mon Sep 17 00:00:00 2001
From: Cyrille Bagard <nocbos@gmail.com>
Date: Mon, 1 Jun 2020 23:00:45 +0200
Subject: Populated the help menu.

---
 src/gui/menus/help.c    | 112 +++++++++++++++++++++++++++++++++++++++++++++---
 src/gui/menus/help.h    |   2 +-
 src/gui/menus/menubar.c |   2 +-
 3 files changed, 107 insertions(+), 9 deletions(-)

diff --git a/src/gui/menus/help.c b/src/gui/menus/help.c
index 34c1107..c265703 100644
--- a/src/gui/menus/help.c
+++ b/src/gui/menus/help.c
@@ -28,19 +28,29 @@
 #include <i18n.h>
 
 
+#include "../core/global.h"
 #include "../dialogs/about.h"
 #include "../../gtkext/easygtk.h"
 
 
 
+/* Réagit avec le menu "Aide -> Site Web". */
+static void mcb_help_website(GtkMenuItem *, gpointer);
+
+/* Réagit avec le menu "Aide -> Documentation de l'API Python". */
+static void mcb_help_python_api_documentation(GtkMenuItem *, gpointer);
+
+/* Réagit avec le menu "Aide -> Rapport d'anomalie". */
+static void mcb_help_bug_report(GtkMenuItem *, gpointer);
+
 /* Réagit avec le menu "Aide -> A propos de...". */
-static void mcb_help_about(GtkMenuItem *, GObject *);
+static void mcb_help_about(GtkMenuItem *, gpointer);
 
 
 
 /******************************************************************************
 *                                                                             *
-*  Paramètres  : ref = espace de référencement global.                        *
+*  Paramètres  : -                                                            *
 *                                                                             *
 *  Description : Construit le menu "Aide".                                    *
 *                                                                             *
@@ -50,7 +60,7 @@ static void mcb_help_about(GtkMenuItem *, GObject *);
 *                                                                             *
 ******************************************************************************/
 
-GtkWidget *build_menu_help(GObject *ref)
+GtkWidget *build_menu_help(void)
 {
     GtkWidget *result;                      /* Support à retourner         */
     GtkWidget *menubar;                     /* Support pour éléments       */
@@ -61,7 +71,20 @@ GtkWidget *build_menu_help(GObject *ref)
 
     menubar = qck_create_menu(GTK_MENU_ITEM(result));
 
-    submenuitem = qck_create_menu_item(NULL, NULL, _("About"), G_CALLBACK(mcb_help_about), ref);
+    submenuitem = qck_create_menu_item(NULL, NULL, _("Website"), G_CALLBACK(mcb_help_website), NULL);
+    gtk_container_add(GTK_CONTAINER(menubar), submenuitem);
+
+    submenuitem = qck_create_menu_item(NULL, NULL, _("Python API documentation"),
+                                       G_CALLBACK(mcb_help_python_api_documentation), NULL);
+    gtk_container_add(GTK_CONTAINER(menubar), submenuitem);
+
+    submenuitem = qck_create_menu_item(NULL, NULL, _("Bug report"), G_CALLBACK(mcb_help_bug_report), NULL);
+    gtk_container_add(GTK_CONTAINER(menubar), submenuitem);
+
+    submenuitem = qck_create_menu_separator();
+    gtk_container_add(GTK_CONTAINER(menubar), submenuitem);
+
+    submenuitem = qck_create_menu_item(NULL, NULL, _("About"), G_CALLBACK(mcb_help_about), NULL);
     gtk_container_add(GTK_CONTAINER(menubar), submenuitem);
 
     return result;
@@ -72,7 +95,79 @@ GtkWidget *build_menu_help(GObject *ref)
 /******************************************************************************
 *                                                                             *
 *  Paramètres  : menuitem = élément de menu sélectionné.                      *
-*                ref      = adresse de l'espace de référencement global.      *
+*                unused   = adresse non utilisée ici.                         *
+*                                                                             *
+*  Description : Réagit avec le menu "Aide -> Site Web".                      *
+*                                                                             *
+*  Retour      : -                                                            *
+*                                                                             *
+*  Remarques   : -                                                            *
+*                                                                             *
+******************************************************************************/
+
+static void mcb_help_website(GtkMenuItem *menuitem, gpointer unused)
+{
+    GtkWindow *parent;                      /* Fenêtre principale          */
+
+    parent = get_editor_window();
+
+    gtk_show_uri_on_window(parent, "https://www.chrysalide.re/", GDK_CURRENT_TIME, NULL);
+
+}
+
+
+/******************************************************************************
+*                                                                             *
+*  Paramètres  : menuitem = élément de menu sélectionné.                      *
+*                unused   = adresse non utilisée ici.                         *
+*                                                                             *
+*  Description : Réagit avec le menu "Aide -> Documentation de l'API Python". *
+*                                                                             *
+*  Retour      : -                                                            *
+*                                                                             *
+*  Remarques   : -                                                            *
+*                                                                             *
+******************************************************************************/
+
+static void mcb_help_python_api_documentation(GtkMenuItem *menuitem, gpointer unused)
+{
+    GtkWindow *parent;                      /* Fenêtre principale          */
+
+    parent = get_editor_window();
+
+    gtk_show_uri_on_window(parent, "https://www.chrysalide.re/api/python/pychrysalide", GDK_CURRENT_TIME, NULL);
+
+}
+
+
+/******************************************************************************
+*                                                                             *
+*  Paramètres  : menuitem = élément de menu sélectionné.                      *
+*                unused   = adresse non utilisée ici.                         *
+*                                                                             *
+*  Description : Réagit avec le menu "Aide -> Rapport d'anomalie".            *
+*                                                                             *
+*  Retour      : -                                                            *
+*                                                                             *
+*  Remarques   : -                                                            *
+*                                                                             *
+******************************************************************************/
+
+static void mcb_help_bug_report(GtkMenuItem *menuitem, gpointer unused)
+{
+    GtkWindow *parent;                      /* Fenêtre principale          */
+
+    parent = get_editor_window();
+
+    gtk_show_uri_on_window(parent, "https://bugs.chrysalide.re/", GDK_CURRENT_TIME, NULL);
+
+}
+
+
+/******************************************************************************
+*                                                                             *
+*  Paramètres  : menuitem = élément de menu sélectionné.                      *
+*                unused   = adresse non utilisée ici.                         *
 *                                                                             *
 *  Description : Réagit avec le menu "Aide -> A propos de...".                *
 *                                                                             *
@@ -82,11 +177,14 @@ GtkWidget *build_menu_help(GObject *ref)
 *                                                                             *
 ******************************************************************************/
 
-static void mcb_help_about(GtkMenuItem *menuitem, GObject *ref)
+static void mcb_help_about(GtkMenuItem *menuitem, gpointer unused)
 {
+    GtkWindow *parent;                      /* Fenêtre principale          */
     GtkWidget *dialog;                      /* Boîte de dialogue à montrer */
 
-    dialog = create_about_dialog(GTK_WINDOW(ref));
+    parent = get_editor_window();
+
+    dialog = create_about_dialog(parent);
     gtk_widget_show(dialog);
 
 }
diff --git a/src/gui/menus/help.h b/src/gui/menus/help.h
index 72fcc2c..1deeb5a 100644
--- a/src/gui/menus/help.h
+++ b/src/gui/menus/help.h
@@ -31,7 +31,7 @@
 
 
 /* Construit le menu "Aide". */
-GtkWidget *build_menu_help(GObject *);
+GtkWidget *build_menu_help(void);
 
 
 
diff --git a/src/gui/menus/menubar.c b/src/gui/menus/menubar.c
index a6bfbcc..08e9e5e 100644
--- a/src/gui/menus/menubar.c
+++ b/src/gui/menus/menubar.c
@@ -254,7 +254,7 @@ GEditorItem *g_menu_bar_new(GObject *ref)
 
     /* Aide */
 
-    result->help = build_menu_help(ref);
+    result->help = build_menu_help();
     gtk_container_add(GTK_CONTAINER(item->widget), result->help);
 
     return G_EDITOR_ITEM(result);
-- 
cgit v0.11.2-87-g4458