diff options
| author | Cyrille Bagard <nocbos@gmail.com> | 2012-01-14 16:06:42 (GMT) | 
|---|---|---|
| committer | Cyrille Bagard <nocbos@gmail.com> | 2012-01-14 16:06:42 (GMT) | 
| commit | 2ad11520c0bfefd68a89689497752983792a96ba (patch) | |
| tree | 9271a1bd90bd58f49b8a68c41b348639f67fb559 /src/gtkext | |
| parent | d90aa93fc202fdf1ba4e4e7e799ce8d7e4632b7f (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/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 *); | 
