diff options
Diffstat (limited to 'src/gui/status.c')
-rw-r--r-- | src/gui/status.c | 52 |
1 files changed, 17 insertions, 35 deletions
diff --git a/src/gui/status.c b/src/gui/status.c index bd52310..645028e 100644 --- a/src/gui/status.c +++ b/src/gui/status.c @@ -70,10 +70,10 @@ static void g_status_info_dispose(GStatusInfo *); static void g_status_info_finalize(GStatusInfo *); /* Imprime la position du parcours courant dans le statut. */ -static void track_caret_address_for_status_info(GStatusInfo *, GtkBufferDisplay *, const vmpa2t *); +static void track_cursor_for_status_info(GStatusInfo *, GLoadedPanel *, const GLineCursor *); /* Concentre l'attention de l'ensemble sur une adresse donnée. */ -static void focus_address_in_status_info(GStatusInfo *, GLoadedBinary *, const vmpa2t *); +static void focus_cursor_in_status_info(GStatusInfo *, GLoadedContent *, const GLineCursor *); @@ -105,8 +105,8 @@ static void g_status_info_class_init(GStatusInfoClass *klass) editem = G_EDITOR_ITEM_CLASS(klass); - editem->track_caret = (track_caret_in_view_fc)track_caret_address_for_status_info; - editem->focus_addr = (focus_addr_fc)focus_address_in_status_info; + editem->track_cursor = (track_cursor_in_view_fc)track_cursor_for_status_info; + editem->focus_cursor = (focus_cursor_fc)focus_cursor_in_status_info; } @@ -208,9 +208,9 @@ GEditorItem *g_status_info_new(GObject *ref) /****************************************************************************** * * -* Paramètres : info = barre de statut présentant les informations. * -* display = composant d'affichage parcouru. * -* addr = nouvelle adresse du curseur courant. * +* Paramètres : info = barre de statut présentant les informations. * +* panel = composant d'affichage parcouru. * +* cursor = nouvel emplacement du curseur courant. * * * * Description : Imprime la position du parcours courant dans le statut. * * * @@ -220,24 +220,24 @@ GEditorItem *g_status_info_new(GObject *ref) * * ******************************************************************************/ -static void track_caret_address_for_status_info(GStatusInfo *info, GtkBufferDisplay *display, const vmpa2t *addr) +static void track_cursor_for_status_info(GStatusInfo *info, GLoadedPanel *panel, const GLineCursor *cursor) { - GLoadedBinary *binary; /* Binaire courant */ + GLoadedContent *content; /* Contenu courant */ - binary = get_current_binary(); + content = g_loaded_panel_get_content(panel); - focus_address_in_status_info(info, binary, addr); + focus_cursor_in_status_info(info, content, cursor); - g_object_unref(G_OBJECT(binary)); + g_object_unref(G_OBJECT(content)); } /****************************************************************************** * * -* Paramètres : info = composant réactif à mettre à jour. * -* binary = binaire contenant l'adresse à représenter. * -* addr = adresse mémoire à mettre en avant. * +* Paramètres : info = composant réactif à mettre à jour. * +* content = contenu contenant le curseur à représenter. * +* cursor = nouvel emplacement du curseur courant. * * * * Description : Concentre l'attention de l'ensemble sur une adresse donnée. * * * @@ -247,30 +247,12 @@ static void track_caret_address_for_status_info(GStatusInfo *info, GtkBufferDisp * * ******************************************************************************/ -static void focus_address_in_status_info(GStatusInfo *info, GLoadedBinary *binary, const vmpa2t *addr) +static void focus_cursor_in_status_info(GStatusInfo *info, GLoadedContent *content, const GLineCursor *cursor) { GEditorItem *item; /* Autre version de l'élément */ - GArchProcessor *proc; /* Architecture du binaire */ - GArchInstruction *instr; /* Instruction présente */ item = G_EDITOR_ITEM(info); - if (is_invalid_vmpa(addr)) - gtk_status_stack_reset_current_instruction(GTK_STATUS_STACK(item->widget)); - - else - { - proc = g_loaded_binary_get_processor(binary); - - instr = _g_arch_processor_find_instr_by_address(proc, addr, true); - assert(instr != NULL); - - gtk_status_stack_update_current_instruction(GTK_STATUS_STACK(item->widget), binary, instr); - - g_object_unref(G_OBJECT(instr)); - - g_object_unref(G_OBJECT(proc)); - - } + g_line_cursor_show_status(cursor, GTK_STATUS_STACK(item->widget), content); } |