diff options
Diffstat (limited to 'src/gui/menus/menubar.c')
-rw-r--r-- | src/gui/menus/menubar.c | 47 |
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); + +} |