summaryrefslogtreecommitdiff
path: root/src/gtkext
diff options
context:
space:
mode:
Diffstat (limited to 'src/gtkext')
-rw-r--r--src/gtkext/gtkblockview.c10
-rw-r--r--src/gtkext/gtkbufferview-int.h5
-rw-r--r--src/gtkext/gtkbufferview.c31
-rw-r--r--src/gtkext/gtkbufferview.h4
-rw-r--r--src/gtkext/gtksourceview.c10
-rw-r--r--src/gtkext/gtkviewpanel-int.h4
-rw-r--r--src/gtkext/gtkviewpanel.c8
-rw-r--r--src/gtkext/gtkviewpanel.h4
8 files changed, 50 insertions, 26 deletions
diff --git a/src/gtkext/gtkblockview.c b/src/gtkext/gtkblockview.c
index 6d828b1..a420194 100644
--- a/src/gtkext/gtkblockview.c
+++ b/src/gtkext/gtkblockview.c
@@ -2,7 +2,7 @@
/* OpenIDA - Outil d'analyse de fichiers binaires
* gtkblockview.c - affichage d'un fragment de code d'assemblage
*
- * Copyright (C) 2008-2010 Cyrille Bagard
+ * Copyright (C) 2008-2012 Cyrille Bagard
*
* This file is part of OpenIDA.
*
@@ -53,7 +53,7 @@ static void gtk_block_view_class_init(GtkBlockViewClass *);
static void gtk_block_view_init(GtkBlockView *);
/* Prend acte de l'association d'un binaire chargé. */
-static void gtk_block_view_attach_binary(GtkBlockView *, GOpenidaBinary *);
+static void gtk_block_view_attach_binary(GtkBlockView *, GOpenidaBinary *, bool *, bool *);
@@ -134,6 +134,8 @@ GtkWidget *gtk_block_view_new(void)
* *
* Paramètres : view = composant GTK à mettre à jour. *
* binary = binaire associé à intégrer. *
+* addr = indique si les positions doivent être affichées. *
+* code = indique si le code binaire doit être affiché. *
* *
* Description : Prend acte de l'association d'un binaire chargé. *
* *
@@ -143,12 +145,12 @@ GtkWidget *gtk_block_view_new(void)
* *
******************************************************************************/
-static void gtk_block_view_attach_binary(GtkBlockView *view, GOpenidaBinary *binary)
+static void gtk_block_view_attach_binary(GtkBlockView *view, GOpenidaBinary *binary, bool *addr, bool *code)
{
GCodeBuffer *buffer; /* Tampon par défaut */
buffer = g_openida_binary_get_disassembled_buffer(binary);
- gtk_buffer_view_attach_buffer(GTK_BUFFER_VIEW(view), buffer);
+ gtk_buffer_view_attach_buffer(GTK_BUFFER_VIEW(view), buffer, addr, code);
}
diff --git a/src/gtkext/gtkbufferview-int.h b/src/gtkext/gtkbufferview-int.h
index 936e31d..31b911e 100644
--- a/src/gtkext/gtkbufferview-int.h
+++ b/src/gtkext/gtkbufferview-int.h
@@ -2,7 +2,7 @@
/* OpenIDA - Outil d'analyse de fichiers binaires
* gtkbufferview.h - prototypes pour l'affichage de tampons de lignes
*
- * Copyright (C) 2010 Cyrille Bagard
+ * Copyright (C) 2010-2012 Cyrille Bagard
*
* This file is part of OpenIDA.
*
@@ -40,6 +40,9 @@ struct _GtkBufferView
GCodeBuffer *buffer; /* Code sous forme de texte */
GBufferView *buffer_view; /* Affichage de cette forme */
+ bool *display_addr; /* Affichage des adresses ? */
+ bool *display_code; /* Affichage du code binaire ? */
+
gint line_height; /* Hauteur maximale des lignes */
gint left_margin; /* Marge gauche + espace */
gint left_text; /* Début d'impression du code */
diff --git a/src/gtkext/gtkbufferview.c b/src/gtkext/gtkbufferview.c
index 796a001..6a2e93d 100644
--- a/src/gtkext/gtkbufferview.c
+++ b/src/gtkext/gtkbufferview.c
@@ -174,9 +174,14 @@ static void gtk_buffer_view_compute_real_coord(GtkBufferView *view, gint *x, gin
static void gtk_buffer_view_size_request(GtkWidget *widget, GtkRequisition *requisition)
{
- if (GTK_BUFFER_VIEW(widget)->buffer_view != NULL)
- g_buffer_view_get_size(GTK_BUFFER_VIEW(widget)->buffer_view,
- &requisition->width, &requisition->height);
+ GtkBufferView *view; /* Autre version du composant */
+
+ view = GTK_BUFFER_VIEW(widget);
+
+ if (view->buffer_view != NULL)
+ g_buffer_view_get_size(view->buffer_view,
+ &requisition->width, &requisition->height,
+ *view->display_addr, *view->display_code);
}
@@ -197,6 +202,7 @@ static void gtk_buffer_view_size_request(GtkWidget *widget, GtkRequisition *requ
static void gtk_buffer_view_size_allocate(GtkWidget *widget, GtkAllocation *allocation)
{
GtkViewPanel *panel; /* Autre version du composant */
+ GtkBufferView *view; /* Encore une autre version */
gint width; /* Largeur de l'objet actuelle */
gint height; /* Hauteur de l'objet actuelle */
GtkAllocation valloc; /* Surface utilisable */
@@ -216,7 +222,10 @@ static void gtk_buffer_view_size_allocate(GtkWidget *widget, GtkAllocation *allo
if (panel->hadjustment == NULL || panel->vadjustment == NULL)
return;
- g_buffer_view_get_size(GTK_BUFFER_VIEW(widget)->buffer_view, &width, &height);
+ view = GTK_BUFFER_VIEW(widget);
+
+ g_buffer_view_get_size(view->buffer_view, &width, &height,
+ *view->display_addr, *view->display_code);
gtk_view_panel_compute_allocation(panel, &valloc);
@@ -238,7 +247,7 @@ static void gtk_buffer_view_size_allocate(GtkWidget *widget, GtkAllocation *allo
/* Défilement vertical */
panel->vadjustment->page_size = valloc.height;
- panel->vadjustment->step_increment = GTK_BUFFER_VIEW(widget)->line_height;
+ panel->vadjustment->step_increment = view->line_height;
panel->vadjustment->page_increment = panel->vadjustment->step_increment * 10.0;
panel->vadjustment->upper = MAX(height, valloc.height);
@@ -314,7 +323,8 @@ static gboolean gtk_buffer_view_expose(GtkWidget *widget, GdkEventExpose *event)
/* Impression du désassemblage */
if (view->buffer_view != NULL)
- g_buffer_view_draw(view->buffer_view, event, pview->gc, fake_x, fake_y);
+ g_buffer_view_draw(view->buffer_view, event, pview->gc, fake_x, fake_y,
+ *view->display_addr, *view->display_code);
gdk_window_end_paint(drawable);
@@ -346,6 +356,8 @@ static void gtk_buffer_view_scroll(GtkBufferView *view)
* *
* Paramètres : view = composant GTK à mettre à jour. *
* buffer = tampon de lignes à encadrer. *
+* addr = indique si les positions doivent être affichées. *
+* code = indique si le code binaire doit être affiché. *
* *
* Description : Prend acte de l'association d'un tampon de lignes. *
* *
@@ -355,7 +367,7 @@ static void gtk_buffer_view_scroll(GtkBufferView *view)
* *
******************************************************************************/
-void gtk_buffer_view_attach_buffer(GtkBufferView *view, GCodeBuffer *buffer)
+void gtk_buffer_view_attach_buffer(GtkBufferView *view, GCodeBuffer *buffer, bool *addr, bool *code)
{
gint width; /* Largeur de l'objet actuelle */
gint height; /* Hauteur de l'objet actuelle */
@@ -371,6 +383,9 @@ void gtk_buffer_view_attach_buffer(GtkBufferView *view, GCodeBuffer *buffer)
view->buffer_view = g_buffer_view_new(view->buffer);
+ view->display_addr = addr;
+ view->display_code = code;
+
//gdk_threads_enter();
/* Taille des marges */
@@ -381,7 +396,7 @@ void gtk_buffer_view_attach_buffer(GtkBufferView *view, GCodeBuffer *buffer)
/* Validation finale */
- g_buffer_view_get_size(view->buffer_view, &width, &height);
+ g_buffer_view_get_size(view->buffer_view, &width, &height, *addr, *code);
width += -view->left_text + 1;
height += 1;
diff --git a/src/gtkext/gtkbufferview.h b/src/gtkext/gtkbufferview.h
index ab7a746..da04533 100644
--- a/src/gtkext/gtkbufferview.h
+++ b/src/gtkext/gtkbufferview.h
@@ -2,7 +2,7 @@
/* OpenIDA - Outil d'analyse de fichiers binaires
* gtkbufferview.h - prototypes pour l'affichage de tampons de lignes
*
- * Copyright (C) 2010 Cyrille Bagard
+ * Copyright (C) 2010-2012 Cyrille Bagard
*
* This file is part of OpenIDA.
*
@@ -52,7 +52,7 @@ typedef struct _GtkBufferViewClass GtkBufferViewClass;
GType gtk_buffer_view_get_type(void);
/* Prend acte de l'association d'un tampon de lignes. */
-void gtk_buffer_view_attach_buffer(GtkBufferView *, GCodeBuffer *);
+void gtk_buffer_view_attach_buffer(GtkBufferView *, GCodeBuffer *, bool *, bool *);
diff --git a/src/gtkext/gtksourceview.c b/src/gtkext/gtksourceview.c
index 026c851..2e5ed48 100644
--- a/src/gtkext/gtksourceview.c
+++ b/src/gtkext/gtksourceview.c
@@ -2,7 +2,7 @@
/* OpenIDA - Outil d'analyse de fichiers binaires
* gtksourceview.c - affichage de code source
*
- * Copyright (C) 2010-2011 Cyrille Bagard
+ * Copyright (C) 2010-2012 Cyrille Bagard
*
* This file is part of OpenIDA.
*
@@ -53,7 +53,7 @@ static void gtk_source_view_class_init(GtkSourceViewClass *);
static void gtk_source_view_init(GtkSourceView *);
/* Prend acte de l'association d'un binaire chargé. */
-static void gtk_source_view_attach_binary(GtkSourceView *, GOpenidaBinary *);
+static void gtk_source_view_attach_binary(GtkSourceView *, GOpenidaBinary *, bool *, bool *);
@@ -134,6 +134,8 @@ GtkWidget *gtk_source_view_new(void)
* *
* Paramètres : view = composant GTK à mettre à jour. *
* binary = binaire associé à intégrer. *
+* addr = indique si les positions doivent être affichées. *
+* code = indique si le code binaire doit être affiché. *
* *
* Description : Prend acte de l'association d'un binaire chargé. *
* *
@@ -143,7 +145,7 @@ GtkWidget *gtk_source_view_new(void)
* *
******************************************************************************/
-static void gtk_source_view_attach_binary(GtkSourceView *view, GOpenidaBinary *binary)
+static void gtk_source_view_attach_binary(GtkSourceView *view, GOpenidaBinary *binary, bool *addr, bool *code)
{
GCodeBuffer *buffer; /* Tampon par défaut */
@@ -152,6 +154,6 @@ static void gtk_source_view_attach_binary(GtkSourceView *view, GOpenidaBinary *b
/* FIXME */
if (buffer != NULL)
- gtk_buffer_view_attach_buffer(GTK_BUFFER_VIEW(view), buffer);
+ gtk_buffer_view_attach_buffer(GTK_BUFFER_VIEW(view), buffer, addr, code);
}
diff --git a/src/gtkext/gtkviewpanel-int.h b/src/gtkext/gtkviewpanel-int.h
index 7480807..6ef3567 100644
--- a/src/gtkext/gtkviewpanel-int.h
+++ b/src/gtkext/gtkviewpanel-int.h
@@ -2,7 +2,7 @@
/* OpenIDA - Outil d'analyse de fichiers binaires
* gtkviewpanel-int.h - définitions internes propre à l'affichage de contenu de binaire
*
- * Copyright (C) 2010 Cyrille Bagard
+ * Copyright (C) 2010-2012 Cyrille Bagard
*
* This file is part of OpenIDA.
*
@@ -34,7 +34,7 @@
/* Prend acte de l'association d'un binaire chargé. */
-typedef void (* attach_binary_fc) (GtkViewPanel *, GOpenidaBinary *);
+typedef void (* attach_binary_fc) (GtkViewPanel *, GOpenidaBinary *, bool *, bool *);
/* Réagit à un défilement quelconque. */
typedef void (* scroll_fc) (GtkViewPanel *);
diff --git a/src/gtkext/gtkviewpanel.c b/src/gtkext/gtkviewpanel.c
index 03279b2..7ffeccc 100644
--- a/src/gtkext/gtkviewpanel.c
+++ b/src/gtkext/gtkviewpanel.c
@@ -2,7 +2,7 @@
/* OpenIDA - Outil d'analyse de fichiers binaires
* gtkviewpanel.c - affichage de contenu de binaire
*
- * Copyright (C) 2010 Cyrille Bagard
+ * Copyright (C) 2010-2012 Cyrille Bagard
*
* This file is part of OpenIDA.
*
@@ -323,6 +323,8 @@ static gboolean gtk_view_panel_expose(GtkWidget *widget, GdkEventExpose *event)
* *
* Paramètres : panel = composant GTK à mettre à jour. *
* binary = binaire associé à intégrer. *
+* addr = indique si les positions doivent être affichées. *
+* code = indique si le code binaire doit être affiché. *
* *
* Description : Associe à un panneau d'affichage un binaire chargé. *
* *
@@ -332,12 +334,12 @@ static gboolean gtk_view_panel_expose(GtkWidget *widget, GdkEventExpose *event)
* *
******************************************************************************/
-void gtk_view_panel_attach_binary(GtkViewPanel *panel, GOpenidaBinary *binary)
+void gtk_view_panel_attach_binary(GtkViewPanel *panel, GOpenidaBinary *binary, bool *addr, bool *code)
{
g_object_ref(G_OBJECT(binary));
panel->binary = binary;
- panel->attach(panel, binary);
+ panel->attach(panel, binary, addr, code);
}
diff --git a/src/gtkext/gtkviewpanel.h b/src/gtkext/gtkviewpanel.h
index ad6cc46..d2b69af 100644
--- a/src/gtkext/gtkviewpanel.h
+++ b/src/gtkext/gtkviewpanel.h
@@ -2,7 +2,7 @@
/* OpenIDA - Outil d'analyse de fichiers binaires
* gtkviewpanel.h - prototypes pour l'affichage de contenu de binaire
*
- * Copyright (C) 2010 Cyrille Bagard
+ * Copyright (C) 2010-2012 Cyrille Bagard
*
* This file is part of OpenIDA.
*
@@ -51,7 +51,7 @@ typedef struct _GtkViewPanelClass GtkViewPanelClass;
GType gtk_view_panel_get_type(void);
/* Associe à un panneau d'affichage un binaire chargé. */
-void gtk_view_panel_attach_binary(GtkViewPanel *, GOpenidaBinary *);
+void gtk_view_panel_attach_binary(GtkViewPanel *, GOpenidaBinary *, bool *, bool *);
/* Fournit le binaire associé à la représentation. */
GOpenidaBinary *gtk_view_panel_get_binary(const GtkViewPanel *);