summaryrefslogtreecommitdiff
path: root/src/gui/menus/menubar.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/menus/menubar.c')
-rw-r--r--src/gui/menus/menubar.c47
1 files changed, 38 insertions, 9 deletions
diff --git a/src/gui/menus/menubar.c b/src/gui/menus/menubar.c
index 62a3cbe..a847d40 100644
--- a/src/gui/menus/menubar.c
+++ b/src/gui/menus/menubar.c
@@ -38,6 +38,11 @@ struct _GMenuBar
{
GEditorItem parent; /* A laisser en premier */
+ GtkWidget *file; /* Menu "Fichier" */
+ GtkWidget *view; /* Menu "Affichage" */
+ GtkWidget *debug; /* Menu "Débogage" */
+ GtkWidget *help; /* Menu "Aide" */
+
};
@@ -55,6 +60,9 @@ static void g_menu_bar_class_init(GMenuBarClass *);
/* Initialise une instance de la barre de menus pour l'éditeur. */
static void g_menu_bar_init(GMenuBar *);
+/* Lance une actualisation du fait d'un changement de vue. */
+static void update_menu_bar_for_view(GMenuBar *, GtkViewPanel *);
+
/* Indique le type défini pour la barre de menus de la fenêtre principale. */
@@ -102,6 +110,8 @@ static void g_menu_bar_init(GMenuBar *bar)
item->widget = gtk_menu_bar_new();
gtk_widget_show(item->widget);
+ item->update_view = (update_item_view_fc)update_menu_bar_for_view;
+
}
@@ -122,7 +132,6 @@ GEditorItem *g_menu_bar_new(GObject *ref, GtkAccelGroup *accgroup)
{
GMenuBar *result; /* Structure à retourner */
GEditorItem *item; /* Autre version de l'élément */
- GtkWidget *menuitem; /* Elément de menu */
result = g_object_new(G_TYPE_MENU_BAR, NULL);
@@ -135,24 +144,44 @@ GEditorItem *g_menu_bar_new(GObject *ref, GtkAccelGroup *accgroup)
/* Fichier */
- menuitem = build_menu_file(ref, accgroup);
- gtk_container_add(GTK_CONTAINER(item->widget), menuitem);
+ result->file = build_menu_file(ref, accgroup);
+ gtk_container_add(GTK_CONTAINER(item->widget), result->file);
/* Affichage */
- menuitem = build_menu_view(ref, accgroup);
- gtk_container_add(GTK_CONTAINER(item->widget), menuitem);
+ result->view = build_menu_view(ref, accgroup, result);
+ gtk_container_add(GTK_CONTAINER(item->widget), result->view);
/* Débogage */
- menuitem = build_menu_debug(ref, accgroup);
- gtk_container_add(GTK_CONTAINER(item->widget), menuitem);
+ result->debug = build_menu_debug(ref, accgroup);
+ gtk_container_add(GTK_CONTAINER(item->widget), result->debug);
/* Aide */
- menuitem = build_menu_help(ref, accgroup);
- gtk_container_add(GTK_CONTAINER(item->widget), menuitem);
+ result->help = build_menu_help(ref, accgroup);
+ gtk_container_add(GTK_CONTAINER(item->widget), result->help);
return G_EDITOR_ITEM(result);
}
+
+
+/******************************************************************************
+* *
+* Paramètres : bar = barre de menus à actualiser. *
+* view = nouveau panneau d'affichage actif. *
+* *
+* Description : Lance une actualisation du fait d'un changement de vue. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static void update_menu_bar_for_view(GMenuBar *bar, GtkViewPanel *view)
+{
+ update_menu_view_for_view(bar->view, view, bar);
+
+}