summaryrefslogtreecommitdiff
path: root/src/editor.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2009-06-14 11:57:14 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2009-06-14 11:57:14 (GMT)
commitae0135d727fdc67a268ede1530042a42a2a1ccd3 (patch)
treed3dc13797072c261ea8bb49dc2e83b0858478bc7 /src/editor.c
parentfa0509e2914e3cb562a7cc58293f1171886fafb0 (diff)
Cleaned and improved the binary views ; implemented some first steps for the graphical view.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@76 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/editor.c')
-rw-r--r--src/editor.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/editor.c b/src/editor.c
index 8c28e68..ad0373b 100644
--- a/src/editor.c
+++ b/src/editor.c
@@ -736,6 +736,7 @@ void mcb_view_change_support(GtkRadioMenuItem *menuitem, GObject *ref)
GSList *iter; /* Boucle de parcours */
BinaryView view; /* Nouvelle vue à présenter */
openida_binary *binary; /* Edition courante */
+ GtkBinView *binview; /* Afficheur effectif de code */
GtkWidget *panel; /* Nouveau support à utiliser */
GtkDockPanel *dpanel; /* Support de panneaux */
GtkDockItem *ditem; /* Panneau avec ses infos. */
@@ -752,7 +753,9 @@ void mcb_view_change_support(GtkRadioMenuItem *menuitem, GObject *ref)
view = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(iter->data), "kind_of_view"));
binary = (openida_binary *)g_object_get_data(ref, "current_binary");
- panel = get_view_for_openida_project_binary(get_current_openida_project(), binary, view);
+ panel = get_view_for_openida_project_binary(get_current_openida_project(), binary, view, &binview);
+
+ g_object_set_data(ref, "binview", binview);
dpanel = GTK_DOCK_PANEL(g_object_get_data(ref, "binpanel"));
ditem = gtk_dock_panel_item_from_name(dpanel, openida_binary_to_string(binary));
@@ -1002,7 +1005,7 @@ void debugger_stopped_cb(GBinaryDebugger *debugger, uint64_t last, uint64_t cur,
if (last != cur)
{
- line = g_rendering_line_find_by_offset(get_openida_binary_lines(binary), last);
+ line = g_rendering_line_find_by_address(get_openida_binary_lines(binary), NULL/* FIXME */, last);
if (line != NULL)
g_rendering_line_remove_flag(line, RLF_RUNNING_BP);
@@ -1012,7 +1015,7 @@ void debugger_stopped_cb(GBinaryDebugger *debugger, uint64_t last, uint64_t cur,
printf("bp at 0x%016llx\n", cur);
- line = g_rendering_line_find_by_offset(get_openida_binary_lines(binary), cur);
+ line = g_rendering_line_find_by_address(get_openida_binary_lines(binary), NULL/* FIXME */, cur);
if (line != NULL)
g_rendering_line_add_flag(line, RLF_RUNNING_BP);
@@ -1224,6 +1227,7 @@ void open_last_file(GObject *ref)
openida_project *project;
GtkWidget *view; /* Affichage du code binaire */
+ GtkBinView *binview; /* Afficheur effectif de code */
@@ -1240,8 +1244,9 @@ void open_last_file(GObject *ref)
attach_binary_to_openida_project(project, binary);
- view = get_view_for_openida_project_binary(project, binary, BVW_BLOCK);
+ view = get_view_for_openida_project_binary(project, binary, BVW_BLOCK, &binview);
+ g_object_set_data(ref, "binview", binview);