summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2009-07-01 22:20:38 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2009-07-01 22:20:38 (GMT)
commitb6893c7b85c34f7a3c65ac76bfd9d95b1c4ebf55 (patch)
tree5ce9e501c095e5906f6b1a349c82217d41b605f1
parent176ad970db109523a3ac6d501b23608540d4a930 (diff)
Made the lines to have different rendering widths depending on the views.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@88 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
-rw-r--r--ChangeLog16
-rw-r--r--src/analysis/line-int.h6
-rw-r--r--src/analysis/line.c28
-rw-r--r--src/analysis/line.h20
-rw-r--r--src/analysis/line_code.c15
-rw-r--r--src/analysis/line_comment.c20
-rw-r--r--src/analysis/line_prologue.c9
-rw-r--r--src/gtkext/gtkblockview.c28
-rw-r--r--src/gtkext/gtkblockview.h6
-rw-r--r--src/gtkext/gtkgraphview.c10
-rw-r--r--src/project.c2
11 files changed, 113 insertions, 47 deletions
diff --git a/ChangeLog b/ChangeLog
index 9f4ab26..fcd7b02 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+09-07-01 Cyrille Bagard <nocbos@gmail.com>
+
+ * src/analysis/line.c:
+ * src/analysis/line_code.c:
+ * src/analysis/line_comment.c:
+ * src/analysis/line.h:
+ * src/analysis/line-int.h:
+ * src/analysis/line_prologue.c:
+ Make the lines to have different rendering widths depending on the views.
+
+ * src/gtkext/gtkblockview.c:
+ * src/gtkext/gtkblockview.h:
+ * src/gtkext/gtkgraphview.c:
+ * src/project.c:
+ Update calls.
+
09-06-30 Cyrille Bagard <nocbos@gmail.com>
* src/arch/x86/processor.c:
diff --git a/src/analysis/line-int.h b/src/analysis/line-int.h
index 59ef5f8..ea8bce0 100644
--- a/src/analysis/line-int.h
+++ b/src/analysis/line-int.h
@@ -36,7 +36,7 @@
typedef void (* get_bin_len_fc) (GRenderingLine *, off_t *);
/* Méthode de mise à jour d'une ligne de représentation. */
-typedef void (* refresh_markup_fc) (GRenderingLine *);
+typedef void (* refresh_markup_fc) (GRenderingLine *, LinesMainOwner);
/* Ligne de représentation générique (instance) */
@@ -57,10 +57,10 @@ struct _GRenderingLine
GRenderingLine *to; /* Eventuelle ligne visée */
InstructionLinkType link_type; /* Type de visée */
- PangoLayout *layout; /* Moteur de rendu du code/txt */
+ PangoLayout *layout[LMO_COUNT]; /* Moteur de rendu du code/txt */
get_bin_len_fc get_bin_len; /* Nbre d'octets représentés */
- off_t max_bin_len; /* Nombre global maximal */
+ off_t max_bin_len[LMO_COUNT]; /* Nombre global maximal */
refresh_markup_fc refresh_markup; /* Reconstruit la représentat° */
diff --git a/src/analysis/line.c b/src/analysis/line.c
index 958efe3..332e88d 100644
--- a/src/analysis/line.c
+++ b/src/analysis/line.c
@@ -104,6 +104,8 @@ static void g_rendering_line_init(GRenderingLine *line)
{
GdkScreen *screen; /* Ecran d'application */
PangoFontDescription *desc; /* Description de la police */
+ LinesMainOwner i; /* Boucle de parcours */
+
static PangoContext *context = NULL; /* Contexte graphique Pango */
DL_LIST_ITEM_INIT(&line->link);
@@ -118,7 +120,8 @@ static void g_rendering_line_init(GRenderingLine *line)
}
- line->layout = pango_layout_new(context);
+ for (i = 0; i < LMO_COUNT; i++)
+ line->layout[i] = pango_layout_new(context);
line->get_bin_len = NULL;
line->refresh_markup = NULL;
@@ -401,6 +404,7 @@ static GdkPixbuf *g_rendering_line_render_icon(const GRenderingLine *line, const
* x1 = abscisse de la zone de rendu (texte). *
* y = ordonnée de la zone de rendu. *
* h = hauteur réservée pour la ligne. *
+* owner = support effectif final des lignes de code. *
* *
* Description : Procède à l'initialisation des bases d'une représentation. *
* *
@@ -410,11 +414,11 @@ static GdkPixbuf *g_rendering_line_render_icon(const GRenderingLine *line, const
* *
******************************************************************************/
-void g_rendering_line_draw(GRenderingLine *line, GdkDrawable *drawable, GdkGC *gc, gint x0, gint x1, gint y, gint h)
+void g_rendering_line_draw(GRenderingLine *line, GdkDrawable *drawable, GdkGC *gc, gint x0, gint x1, gint y, gint h, LinesMainOwner owner)
{
GdkPixbuf *pixbuf; /* Données utiles au dessin */
- gdk_draw_layout(drawable, gc, x1, y, line->layout);
+ gdk_draw_layout(drawable, gc, x1, y, line->layout[owner]);
if (line->to != NULL)
pixbuf = g_rendering_line_render_icon(line, "gtk-bold", GTK_ICON_SIZE_MENU);
@@ -559,6 +563,7 @@ GRenderingLine *g_rendering_line_get_next_iter(GRenderingLine *lines, const GRen
* *
* Paramètres : lines = liste de lignes de représentation à actualiser. *
* last = dernière élément imposé du parcours ou NULL. *
+* owner = support effectif des lignes pour l'appelant. *
* *
* Description : Met à jour le nombre d'octets maximal par instruction. *
* *
@@ -568,7 +573,7 @@ GRenderingLine *g_rendering_line_get_next_iter(GRenderingLine *lines, const GRen
* *
******************************************************************************/
-void g_rendering_line_update_bin_len(GRenderingLine *lines, const GRenderingLine *last)
+void g_rendering_line_update_bin_len(GRenderingLine *lines, GRenderingLine *last, LinesMainOwner owner)
{
GRenderingLine *iter; /* Boucle de parcours */
off_t bin_len; /* Taille d'instruction */
@@ -586,8 +591,8 @@ void g_rendering_line_update_bin_len(GRenderingLine *lines, const GRenderingLine
lines_list_for_each(iter, lines)
{
- iter->max_bin_len = (bin_len > 0 ? bin_len * 2 + (bin_len - 1) : 0);
- iter->refresh_markup(iter);
+ iter->max_bin_len[owner] = (bin_len > 0 ? bin_len * 2 + (bin_len - 1) : 0);
+ iter->refresh_markup(iter, owner);
if (iter == last) break;
@@ -600,6 +605,7 @@ void g_rendering_line_update_bin_len(GRenderingLine *lines, const GRenderingLine
* *
* Paramètres : lines = liste de lignes de représentation à actualiser. *
* last = dernière élément imposé du parcours ou NULL. *
+* owner = support effectif final des lignes de code. *
* width = largeur maximale des lignes. [OUT] *
* height = hauteur maximale des lignes. [OUT] *
* alone = hauteur d'une seule ligne. [OUT] *
@@ -612,7 +618,7 @@ void g_rendering_line_update_bin_len(GRenderingLine *lines, const GRenderingLine
* *
******************************************************************************/
-void g_rendering_line_get_size(GRenderingLine *lines, const GRenderingLine *last, int *width, int *height, int *alone)
+void g_rendering_line_get_size(GRenderingLine *lines, const GRenderingLine *last, LinesMainOwner owner, int *width, int *height, int *alone)
{
GRenderingLine *iter; /* Boucle de parcours */
int w; /* Largeur de l'objet actuelle */
@@ -624,7 +630,7 @@ void g_rendering_line_get_size(GRenderingLine *lines, const GRenderingLine *last
lines_list_for_each(iter, lines)
{
- pango_layout_get_pixel_size(iter->layout, &w, &h);
+ pango_layout_get_pixel_size(iter->layout[owner], &w, &h);
*width = MAX(*width, w);
*height += h;
@@ -660,7 +666,11 @@ GRenderingLine *g_rendering_line_find_by_y(GRenderingLine *lines, const GRenderi
lines_list_for_each(result, lines)
{
- pango_layout_get_pixel_size(result->layout, NULL, &h);
+ /**
+ * Comme toutes les dispositions ont la même hauteur,
+ * on utilise la première...
+ */
+ pango_layout_get_pixel_size(result->layout[0], NULL, &h);
if (*y < h) break;
else *y -= h;
diff --git a/src/analysis/line.h b/src/analysis/line.h
index e06c53c..981cf90 100644
--- a/src/analysis/line.h
+++ b/src/analysis/line.h
@@ -34,6 +34,20 @@
+/* Support principal de lignes */
+typedef enum _LinesMainOwner
+{
+ LMO_BLOCK, /* Unique bloc de code */
+ LMO_GRAPH, /* Graphique de blocs de code */
+
+ LMO_COUNT
+
+} LinesMainOwner;
+
+
+
+
+
/* Définitions des types de ligne */
typedef enum _RenderingLineType
{
@@ -114,7 +128,7 @@ bool g_rendering_line_has_destination(const GRenderingLine *);
GRenderingLine *g_rendering_line_get_destination(const GRenderingLine *, InstructionLinkType *);
/* Procède à l'initialisation des bases d'une représentation. */
-void g_rendering_line_draw(GRenderingLine *, GdkDrawable *, GdkGC *, gint, gint, gint, gint);
+void g_rendering_line_draw(GRenderingLine *, GdkDrawable *, GdkGC *, gint, gint, gint, gint, LinesMainOwner);
@@ -131,10 +145,10 @@ void g_rendering_line_insert_into_lines(GRenderingLine **, GRenderingLine *, boo
GRenderingLine *g_rendering_line_get_next_iter(GRenderingLine *, const GRenderingLine *, const GRenderingLine *);
/* Met à jour le nombre d'octets maximal par instruction. */
-void g_rendering_line_update_bin_len(GRenderingLine *, const GRenderingLine *);
+void g_rendering_line_update_bin_len(GRenderingLine *, GRenderingLine *, LinesMainOwner);
/* Fournit les dimensions de lignes de représentation. */
-void g_rendering_line_get_size(GRenderingLine *, const GRenderingLine *, int *, int *, int *);
+void g_rendering_line_get_size(GRenderingLine *, const GRenderingLine *, LinesMainOwner, int *, int *, int *);
/* Recherche une ligne d'après sa position à l'écran. */
GRenderingLine *g_rendering_line_find_by_y(GRenderingLine *, const GRenderingLine *, gdouble *);
diff --git a/src/analysis/line_code.c b/src/analysis/line_code.c
index 5ca3623..84ab36c 100644
--- a/src/analysis/line_code.c
+++ b/src/analysis/line_code.c
@@ -61,7 +61,7 @@ static void g_code_line_init(GCodeLine *);
void g_code_line_get_binary_len(GCodeLine *, off_t *);
/* Met à jour la ligne de représentation de code. */
-void g_code_line_refresh_markup(GCodeLine *);
+void g_code_line_refresh_markup(GCodeLine *, LinesMainOwner);
@@ -140,7 +140,8 @@ void g_code_line_get_binary_len(GCodeLine *line, off_t *blen)
/******************************************************************************
* *
-* Paramètres : line = ligne de représentation à actualiser. *
+* Paramètres : line = ligne de représentation à actualiser. *
+* owner = support effectif final des lignes de code. *
* *
* Description : Met à jour la ligne de représentation de code. *
* *
@@ -150,7 +151,7 @@ void g_code_line_get_binary_len(GCodeLine *line, off_t *blen)
* *
******************************************************************************/
-void g_code_line_refresh_markup(GCodeLine *line)
+void g_code_line_refresh_markup(GCodeLine *line, LinesMainOwner owner)
{
size_t len; /* Taille du contenu */
char *content; /* Contenu réellement imprimé */
@@ -159,6 +160,7 @@ void g_code_line_refresh_markup(GCodeLine *line)
char buffer[CODE_BUFFER_LEN]; /* Zone tampon à utiliser #1 */
char *buffer2; /* Zone tampon à utiliser #2 */
const uint8_t *exe_content; /* Contenu binaire global */
+ const off_t *max_bin_len; /* Taille de ligne max/globale */
char *bin_code; /* Tampon du code binaire */
off_t k; /* Boucle de parcours #2 */
off_t j; /* Boucle de parcours #1 */
@@ -214,8 +216,9 @@ void g_code_line_refresh_markup(GCodeLine *line)
if (line->options->show_code)
{
exe_content = get_exe_content(line->options->format, NULL);
+ max_bin_len = &G_RENDERING_LINE(line)->max_bin_len[owner];
- bin_code = (char *)calloc(G_RENDERING_LINE(line)->max_bin_len + 1, sizeof(char));
+ bin_code = (char *)calloc(*max_bin_len + 1, sizeof(char));
k = 0;
@@ -227,7 +230,7 @@ void g_code_line_refresh_markup(GCodeLine *line)
k += snprintf(&bin_code[j * (2 + 1)], 3, "%02hhx", exe_content[bin_offset + j]);
}
- for (; k < G_RENDERING_LINE(line)->max_bin_len; k++)
+ for (; k < *max_bin_len; k++)
snprintf(&bin_code[k], 2, " ");
if (line->options->show_address) len += strlen("\t");
@@ -259,7 +262,7 @@ void g_code_line_refresh_markup(GCodeLine *line)
content = (char *)realloc(content, len * sizeof(char));
strcat(content, "</tt>");
- pango_layout_set_markup(G_RENDERING_LINE(line)->layout, content, len - 1);
+ pango_layout_set_markup(G_RENDERING_LINE(line)->layout[owner], content, len - 1);
free(content);
diff --git a/src/analysis/line_comment.c b/src/analysis/line_comment.c
index 1d37613..331bd19 100644
--- a/src/analysis/line_comment.c
+++ b/src/analysis/line_comment.c
@@ -58,7 +58,7 @@ static void g_comment_line_class_init(GCommentLineClass *);
static void g_comment_line_init(GCommentLine *);
/* Met à jour la ligne de représentation de commentaires. */
-void g_comment_line_refresh_markup(GCommentLine *);
+void g_comment_line_refresh_markup(GCommentLine *, LinesMainOwner);
@@ -112,7 +112,8 @@ static void g_comment_line_init(GCommentLine *line)
/******************************************************************************
* *
-* Paramètres : line = ligne de représentation à actualiser. *
+* Paramètres : line = ligne de représentation à actualiser. *
+* owner = support effectif final des lignes de code. *
* *
* Description : Met à jour la ligne de représentation de commentaires. *
* *
@@ -122,11 +123,12 @@ static void g_comment_line_init(GCommentLine *line)
* *
******************************************************************************/
-void g_comment_line_refresh_markup(GCommentLine *line)
+void g_comment_line_refresh_markup(GCommentLine *line, LinesMainOwner owner)
{
size_t len; /* Taille du contenu */
char *content; /* Contenu réellement imprimé */
char buffer[CODE_BUFFER_LEN]; /* Zone tampon à utiliser */
+ const off_t *max_bin_len; /* Taille de ligne max/globale */
size_t clen; /* Taille du commentaire */
len = strlen("<tt>") + 1;
@@ -176,8 +178,10 @@ void g_comment_line_refresh_markup(GCommentLine *line)
if (line->options->show_code)
{
+ max_bin_len = &G_RENDERING_LINE(line)->max_bin_len[owner];
+
clen = (line->options->show_address ? strlen("\t") : 0);
- clen += G_RENDERING_LINE(line)->max_bin_len;
+ clen += *max_bin_len;
content = (char *)realloc(content, (len + clen) * sizeof(char));
@@ -187,9 +191,9 @@ void g_comment_line_refresh_markup(GCommentLine *line)
len += strlen("\t");
}
- memset(&content[len - 1], G_RENDERING_LINE(line)->type == RLT_PROTOTYPE ? '-' : ' ',
- G_RENDERING_LINE(line)->max_bin_len);
- len += G_RENDERING_LINE(line)->max_bin_len;
+ memset(&content[len - 1],
+ G_RENDERING_LINE(line)->type == RLT_PROTOTYPE ? '-' : ' ', *max_bin_len);
+ len += *max_bin_len;
content[len - 1] = '\0';
@@ -221,7 +225,7 @@ void g_comment_line_refresh_markup(GCommentLine *line)
content = (char *)realloc(content, len * sizeof(char));
strcat(content, "</tt>");
- pango_layout_set_markup(G_RENDERING_LINE(line)->layout, content, len - 1);
+ pango_layout_set_markup(G_RENDERING_LINE(line)->layout[owner], content, len - 1);
free(content);
diff --git a/src/analysis/line_prologue.c b/src/analysis/line_prologue.c
index 74b5642..16876af 100644
--- a/src/analysis/line_prologue.c
+++ b/src/analysis/line_prologue.c
@@ -57,7 +57,7 @@ static void g_prologue_line_class_init(GPrologueLineClass *);
static void g_prologue_line_init(GPrologueLine *);
/* Met à jour la ligne de représentation de prologue. */
-void g_prologue_line_refresh_markup(GPrologueLine *);
+void g_prologue_line_refresh_markup(GPrologueLine *, LinesMainOwner);
@@ -113,7 +113,8 @@ static void g_prologue_line_init(GPrologueLine *line)
/******************************************************************************
* *
-* Paramètres : line = ligne de représentation à actualiser. *
+* Paramètres : line = ligne de représentation à actualiser. *
+* owner = support effectif final des lignes de code. *
* *
* Description : Met à jour la ligne de représentation de prologue. *
* *
@@ -123,7 +124,7 @@ static void g_prologue_line_init(GPrologueLine *line)
* *
******************************************************************************/
-void g_prologue_line_refresh_markup(GPrologueLine *line)
+void g_prologue_line_refresh_markup(GPrologueLine *line, LinesMainOwner owner)
{
size_t len; /* Taille du contenu */
char *content; /* Contenu réellement imprimé */
@@ -136,7 +137,7 @@ void g_prologue_line_refresh_markup(GPrologueLine *line)
snprintf(content, len + 1, "<b><span foreground='#003300'>; %s</span></b>", line->comment);
- pango_layout_set_markup(G_RENDERING_LINE(line)->layout, content, len);
+ pango_layout_set_markup(G_RENDERING_LINE(line)->layout[owner], content, len);
free(content);
diff --git a/src/gtkext/gtkblockview.c b/src/gtkext/gtkblockview.c
index cfd4ee0..f0ee0dd 100644
--- a/src/gtkext/gtkblockview.c
+++ b/src/gtkext/gtkblockview.c
@@ -41,6 +41,8 @@ struct _GtkBlockView
{
GtkBinView parent; /* A laisser en premier */
+ LinesMainOwner owner; /* Support final des lignes */
+
bool show_vaddress; /* Affichage des adresses ? */
bool show_code; /* Affichage du code brut ? */
@@ -114,17 +116,30 @@ static void gtk_block_view_destroy(GtkObject *object);
+/* Détermine le type du composant d'affichage en block. */
G_DEFINE_TYPE(GtkBlockView, gtk_block_view, GTK_TYPE_BIN_VIEW)
+/******************************************************************************
+* *
+* Paramètres : owner = support effectif des lignes au final. *
+* *
+* Description : Crée un nouveau composant pour l'affichage en block. *
+* *
+* Retour : Composant GTK créé. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
-
-GtkWidget * gtk_block_view_new(void)
+GtkWidget * gtk_block_view_new(LinesMainOwner owner)
{
GtkBlockView *result;
result = gtk_type_new(gtk_block_view_get_type());
+ result->owner = owner;
+
return GTK_WIDGET(result);
}
@@ -387,7 +402,7 @@ gtk_block_view_paint(GtkBlockView *view)
{
g_rendering_line_draw(iter, GDK_DRAWABLE(widget->window), GTK_BIN_VIEW(view)->gc,
MARGIN_SPACE, 2 * MARGIN_SPACE + view->line_height,
- y, view->line_height);
+ y, view->line_height, view->owner);
y += view->line_height;
@@ -513,7 +528,8 @@ static void gtk_block_view_set_rendering_lines(GtkBlockView *view, GRenderingLin
G_CALLBACK(gtk_block_view_update_margin), view);
}
- g_rendering_line_update_bin_len(GTK_BIN_VIEW(view)->lines, GTK_BIN_VIEW(view)->last);
+ g_rendering_line_update_bin_len(GTK_BIN_VIEW(view)->lines,
+ GTK_BIN_VIEW(view)->last, view->owner);
gtk_block_view_recompute_size_request(view);
@@ -540,7 +556,9 @@ void gtk_block_view_recompute_size_request(GtkBlockView *view)
int width; /* Largeur de l'objet actuelle */
int height; /* Hauteur de l'objet actuelle */
- g_rendering_line_get_size(GTK_BIN_VIEW(view)->lines, GTK_BIN_VIEW(view)->last,
+ g_rendering_line_get_size(GTK_BIN_VIEW(view)->lines,
+ GTK_BIN_VIEW(view)->last,
+ view->owner,
&width, &height, &view->line_height);
gtk_widget_set_size_request(GTK_WIDGET(view),
diff --git a/src/gtkext/gtkblockview.h b/src/gtkext/gtkblockview.h
index d56ed95..43561b1 100644
--- a/src/gtkext/gtkblockview.h
+++ b/src/gtkext/gtkblockview.h
@@ -51,11 +51,11 @@ typedef struct _GtkBlockViewClass GtkBlockViewClass;
-/* Détermine le type du composant d'affichage en blockique. */
+/* Détermine le type du composant d'affichage en block. */
GType gtk_block_view_get_type(void);
-/* Crée un nouveau composant pour l'affichage en blockique. */
-GtkWidget *gtk_block_view_new(void);
+/* Crée un nouveau composant pour l'affichage en block. */
+GtkWidget *gtk_block_view_new(LinesMainOwner);
diff --git a/src/gtkext/gtkgraphview.c b/src/gtkext/gtkgraphview.c
index d060f69..03693d5 100644
--- a/src/gtkext/gtkgraphview.c
+++ b/src/gtkext/gtkgraphview.c
@@ -241,7 +241,7 @@ static void gtk_graph_view_set_rendering_lines(GtkGraphView *view, GRenderingLin
view->childs = (GtkBinView **)calloc(2, sizeof(GtkBinView *));
view->childs_count = 2;
- view->childs[0] = GTK_BIN_VIEW(gtk_block_view_new());
+ view->childs[0] = GTK_BIN_VIEW(gtk_block_view_new(LMO_GRAPH));
gtk_widget_show(GTK_WIDGET(view->childs[0]));
gtk_fixed_put(GTK_FIXED(view), GTK_WIDGET(view->childs[0]), 50, 50);
@@ -256,7 +256,7 @@ static void gtk_graph_view_set_rendering_lines(GtkGraphView *view, GRenderingLin
printf("mainl : %p\n", mainl);
- view->childs[1] = GTK_BIN_VIEW(gtk_block_view_new());
+ view->childs[1] = GTK_BIN_VIEW(gtk_block_view_new(LMO_GRAPH));
gtk_widget_show(GTK_WIDGET(view->childs[1]));
gtk_fixed_put(GTK_FIXED(view), GTK_WIDGET(view->childs[1]), 100, 450);
@@ -405,7 +405,7 @@ static GtkBinView **gtk_graph_view_load_nodes(openida_binary *binary, GRendering
{
result = (GtkBinView **)realloc(result, ++(*count) * sizeof(GtkBinView *));
- result[*count - 1] = GTK_BIN_VIEW(gtk_block_view_new());
+ result[*count - 1] = GTK_BIN_VIEW(gtk_block_view_new(LMO_GRAPH));
gtk_widget_show(GTK_WIDGET(result[*count - 1]));
gtk_bin_view_show_border(result[*count - 1], true);
@@ -422,7 +422,7 @@ static GtkBinView **gtk_graph_view_load_nodes(openida_binary *binary, GRendering
{
result = (GtkBinView **)realloc(result, ++(*count) * sizeof(GtkBinView *));
- result[*count - 1] = GTK_BIN_VIEW(gtk_block_view_new());
+ result[*count - 1] = GTK_BIN_VIEW(gtk_block_view_new(LMO_GRAPH));
gtk_widget_show(GTK_WIDGET(result[*count - 1]));
gtk_bin_view_show_border(result[*count - 1], true);
@@ -438,7 +438,7 @@ static GtkBinView **gtk_graph_view_load_nodes(openida_binary *binary, GRendering
{
result = (GtkBinView **)realloc(result, ++(*count) * sizeof(GtkBinView *));
- result[*count - 1] = GTK_BIN_VIEW(gtk_block_view_new());
+ result[*count - 1] = GTK_BIN_VIEW(gtk_block_view_new(LMO_GRAPH));
gtk_widget_show(GTK_WIDGET(result[*count - 1]));
gtk_bin_view_show_border(result[*count - 1], true);
diff --git a/src/project.c b/src/project.c
index 0e6f0a7..d1b7225 100644
--- a/src/project.c
+++ b/src/project.c
@@ -108,7 +108,7 @@ loaded_binary *load_openida_binary(openida_binary *binary)
{
default: /* GCC ! */
case BVW_BLOCK:
- view = gtk_block_view_new();
+ view = gtk_block_view_new(LMO_BLOCK);
break;
case BVW_GRAPH:
view = gtk_graph_view_new();