diff options
Diffstat (limited to 'src/gtkext')
-rw-r--r-- | src/gtkext/gtkblockview.c | 10 | ||||
-rw-r--r-- | src/gtkext/gtkbufferview-int.h | 5 | ||||
-rw-r--r-- | src/gtkext/gtkbufferview.c | 31 | ||||
-rw-r--r-- | src/gtkext/gtkbufferview.h | 4 | ||||
-rw-r--r-- | src/gtkext/gtksourceview.c | 10 | ||||
-rw-r--r-- | src/gtkext/gtkviewpanel-int.h | 4 | ||||
-rw-r--r-- | src/gtkext/gtkviewpanel.c | 8 | ||||
-rw-r--r-- | src/gtkext/gtkviewpanel.h | 4 |
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 *); |