summaryrefslogtreecommitdiff
path: root/src/glibext/gcodebuffer.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2012-01-14 16:06:42 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2012-01-14 16:06:42 (GMT)
commit2ad11520c0bfefd68a89689497752983792a96ba (patch)
tree9271a1bd90bd58f49b8a68c41b348639f67fb559 /src/glibext/gcodebuffer.c
parentd90aa93fc202fdf1ba4e4e7e799ce8d7e4632b7f (diff)
Updated calls to take the binary rendering options into account.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@225 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/glibext/gcodebuffer.c')
-rw-r--r--src/glibext/gcodebuffer.c18
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;