diff options
Diffstat (limited to 'src/editor.c')
-rw-r--r-- | src/editor.c | 91 |
1 files changed, 86 insertions, 5 deletions
diff --git a/src/editor.c b/src/editor.c index c5c697e..7e5bb80 100644 --- a/src/editor.c +++ b/src/editor.c @@ -56,6 +56,8 @@ #include "dialogs/binparts.h" #include "dialogs/export.h" #include "dialogs/plugins.h" +#include "gui/editem.h" +#include "gui/tb/source.h" #include "panels/panel.h" @@ -172,6 +174,16 @@ static void on_debugger_halted(GBinaryDebugger *, int, vmpa_t, pid_t, GObject *) +/* ------------------------ INTEGRATION DE LA BARRE D'OUTILS ------------------------ */ + + +/* Construit la barre d'outils de l'éditeur. */ +static GtkWidget *build_editor_toolbar(GObject *); + + + + + /****************************************************************************** * * @@ -197,6 +209,11 @@ GtkWidget *create_editor(void) GSList *rgroup; /* Groupe des boutons radio */ + GtkWidget *ssubmenuitem; /* Sous-élément de menu */ + + + GtkWidget *toolbar; /* Barre d'outils */ + GtkWidget *vbox1; GtkWidget *vpaned1; GtkWidget *hpaned1; @@ -291,6 +308,8 @@ GtkWidget *create_editor(void) submenubar = gtk_menu_new(); gtk_menu_item_set_submenu(GTK_MENU_ITEM(submenuitem), submenubar); + /* Affichage */ + menuitem = gtk_menu_item_new_with_mnemonic(_("_View")); gtk_widget_show(menuitem); gtk_container_add(GTK_CONTAINER(menuboard), menuitem); @@ -326,8 +345,23 @@ GtkWidget *create_editor(void) submenuitem = qck_create_check_menu_item(NULL, NULL, _("Binary code"), G_CALLBACK(mcb_view_code), result); 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, _("Toolbar"), NULL, NULL); + gtk_container_add(GTK_CONTAINER(menubar), submenuitem); + submenubar = gtk_menu_new(); + gtk_menu_item_set_submenu(GTK_MENU_ITEM(submenuitem), submenubar); + + ssubmenuitem = qck_create_check_menu_item(NULL, NULL, _("Source file"), G_CALLBACK(NULL), result); + gtk_container_add(GTK_CONTAINER(submenubar), ssubmenuitem); + + + + + + /* Projet */ menuitem = gtk_menu_item_new_with_mnemonic(_("_Project")); gtk_widget_show(menuitem); @@ -428,8 +462,10 @@ GtkWidget *create_editor(void) gtk_container_add(GTK_CONTAINER(menubar), submenuitem); + /* Barre d'outils */ - + toolbar = build_editor_toolbar(G_OBJECT(result)); + gtk_box_pack_start(GTK_BOX(vbox1), toolbar, FALSE, FALSE, 0); @@ -877,12 +913,12 @@ void mcb_view_change_support(GtkRadioMenuItem *menuitem, GObject *ref) binary = (GOpenidaBinary *)g_object_get_data(ref, "current_binary"); panel = get_view_for_openida_project_binary(get_current_openida_project(), binary, view, &pview); - g_object_set_data(ref, "current_view", pview); - ditem = gtk_dock_panel_get_item_from_binary(get_current_openida_project(), binary); g_dock_item_set_panel(ditem, panel); + change_editor_items_current_view(ref, pview); + notify_panels_of_view_change(pview, true); } @@ -1454,11 +1490,11 @@ static void on_dock_item_switch(GtkDockPanel *panel, GDockItem *item, GObject *r if (old_binary != binary) { - g_object_set_data(ref, "current_binary", binary); notify_panels_of_binary_change(binary); + change_editor_items_current_binary(ref, binary); } - g_object_set_data(ref, "current_view", widget); + change_editor_items_current_view(ref, GTK_VIEW_PANEL(widget)); refresh_editor_menus(ref, binary, GTK_BIN_VIEW(widget)); @@ -1553,3 +1589,48 @@ static void on_debugger_halted(GBinaryDebugger *debugger, int sig, vmpa_t addr, } + + + + + + + + + + + +/* ---------------------------------------------------------------------------------- */ +/* INTEGRATION DE LA BARRE D'OUTILS */ +/* ---------------------------------------------------------------------------------- */ + + +/****************************************************************************** +* * +* Paramètres : ref = espace de référencement global. * +* * +* Description : Construit la barre d'outils de l'éditeur. * +* * +* Retour : Adresse du composant mis en place. * +* * +* Remarques : - * +* * +******************************************************************************/ + +static GtkWidget *build_editor_toolbar(GObject *ref) +{ + GtkWidget *result; /* Support à retourner */ + GEditorItem *item; /* Elément de barre d'outils */ + + result = gtk_toolbar_new(); + gtk_widget_show(result); + g_object_set_data(ref, "toolbar", result); + + + item = create_source_tb_item(ref); + register_editor_item(item); + + + return result; + +} |