diff options
Diffstat (limited to 'src/glibext/gcodebuffer.c')
-rw-r--r-- | src/glibext/gcodebuffer.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/glibext/gcodebuffer.c b/src/glibext/gcodebuffer.c index 9f22df7..373f33b 100644 --- a/src/glibext/gcodebuffer.c +++ b/src/glibext/gcodebuffer.c @@ -2,7 +2,7 @@ /* OpenIDA - Outil d'analyse de fichiers binaires * gcodebuffer.h - prototypes pour l'affichage d'un fragment de code d'assemblage * - * Copyright (C) 2010 Cyrille Bagard + * Copyright (C) 2010-2012 Cyrille Bagard * * This file is part of OpenIDA. * @@ -369,6 +369,8 @@ gint g_buffer_view_get_line_height(GBufferView *view) * Paramètres : view = visualisation à consulter. * * width = largeur requise pour une pleine visualisation. [OUT]* * height = hauteur requise pour une pleine visualisation. [OUT]* +* addr = indique si les positions doivent être affichées. * +* code = indique si le code binaire doit être affiché. * * * * Description : Fournit les dimensions requises par une visualisation. * * * @@ -378,7 +380,7 @@ gint g_buffer_view_get_line_height(GBufferView *view) * * ******************************************************************************/ -void g_buffer_view_get_size(GBufferView *view, gint *width, gint *height) +void g_buffer_view_get_size(GBufferView *view, gint *width, gint *height, bool addr, bool code) { unsigned int i; /* Boucle de parcours */ @@ -389,8 +391,14 @@ void g_buffer_view_get_size(GBufferView *view, gint *width, gint *height) g_buffer_view_compute_required_widths(view); for (i = 0; i < BLC_COUNT; i++) + { + if (i == BLC_ADDRESS && !addr) continue; + if (i == BLC_BINARY && !code) continue; + *width += view->max_widths[i]; + } + *height *= (view->last - view->first); } @@ -425,6 +433,8 @@ void g_buffer_view_define_extra_drawing(GBufferView *view, buffer_line_draw_fc m * gc = contexte graphique à utiliser pour les pinceaux. * * fake_x = abscisse réelle du point 0 à l'écran. * * fake_y = ordonnée réelle du point 0 à l'écran. * +* addr = indique si les positions doivent être affichées. * +* code = indique si le code binaire doit être affiché. * * * * Description : Imprime la visualisation du tempon de code désassemblé. * * * @@ -434,7 +444,7 @@ void g_buffer_view_define_extra_drawing(GBufferView *view, buffer_line_draw_fc m * * ******************************************************************************/ -void g_buffer_view_draw(const GBufferView *view, const GdkEventExpose *event, GdkGC *gc, gint fake_x, gint fake_y) +void g_buffer_view_draw(const GBufferView *view, const GdkEventExpose *event, GdkGC *gc, gint fake_x, gint fake_y, bool addr, bool code) { GdkDrawable *drawable; /* Surface de dessin */ gint real_x; /* Abscisse réelle pour tampon */ @@ -477,7 +487,7 @@ void g_buffer_view_draw(const GBufferView *view, const GdkEventExpose *event, Gd if (view->drawing_extra != NULL) view->drawing_extra(lines[i], drawable, gc, fake_x, y, view->drawing_data); - g_buffer_line_draw(lines[i], drawable, gc, view->max_widths, real_x, y); + g_buffer_line_draw(lines[i], drawable, gc, view->max_widths, real_x, y, addr, code); y += view->line_height; |