summaryrefslogtreecommitdiff
path: root/src/editor.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2010-11-28 13:03:25 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2010-11-28 13:03:25 (GMT)
commitf2d479c16a427696790441fa1459e7194f49bb6a (patch)
treec9c5f7b6d75bec1ab22932f36ca7f4142b29d4b9 /src/editor.c
parent6ceb627a1d7c0752124563c636cd9ef6241e8a3a (diff)
Loaded all buffers of decompiled files.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@195 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/editor.c')
-rw-r--r--src/editor.c91
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;
+
+}