diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2015-04-22 00:11:29 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2015-04-22 00:11:29 (GMT) |
commit | 6cbb81bc46347ce969f5bf24a73f08abd009b82b (patch) | |
tree | cb2f8c46f5425a2348520bf78c501ef34902a14c /src/gtkext/gtkblockview.c | |
parent | ea40f74566cd813722f49ae740ca3df04e522bb2 (diff) |
Allowed to refer to an external list for highlighted segments.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@515 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/gtkext/gtkblockview.c')
-rw-r--r-- | src/gtkext/gtkblockview.c | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/src/gtkext/gtkblockview.c b/src/gtkext/gtkblockview.c index 1c7ba43..2b72ff4 100644 --- a/src/gtkext/gtkblockview.c +++ b/src/gtkext/gtkblockview.c @@ -43,6 +43,10 @@ struct _GtkBlockViewClass { GtkBufferViewClass parent; /* A laisser en premier */ + /* Signaux */ + + void (* highlight_changed) (GtkBlockView *); + }; @@ -99,6 +103,14 @@ static void gtk_block_view_class_init(GtkBlockViewClass *class) buffer_class->notify_caret = (notify_caret_relocation_fc)gtk_block_view_notify_caret_relocation; + g_signal_new("highlight-changed", + GTK_TYPE_BLOCK_VIEW, + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET(GtkBlockViewClass, highlight_changed), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + } @@ -143,8 +155,15 @@ static void gtk_block_view_init(GtkBlockView *view) static bool gtk_block_view_notify_caret_relocation(GtkBlockView *view, const GdkRectangle *area, const vmpa2t *addr) { - return g_buffer_view_highlight_segments(GTK_BUFFER_VIEW(view)->buffer_view, area->x, area->y, - GTK_VIEW_PANEL(view)->display); + bool result; /* Bilan à retourner */ + + result = g_buffer_view_highlight_segments(GTK_BUFFER_VIEW(view)->buffer_view, area->x, area->y, + GTK_VIEW_PANEL(view)->display); + + if (result) + g_signal_emit_by_name(view, "highlight-changed"); + + return result; } @@ -260,7 +279,7 @@ static void gtk_block_view_attach_binary(GtkBlockView *view, GLoadedBinary *bina GBufferView *bview; /* Vue sur ce même tampon */ buffer = g_loaded_binary_get_disassembled_buffer(binary); - bview = g_buffer_view_new(buffer); + bview = g_buffer_view_new(buffer, NULL); gtk_buffer_view_attach_buffer(GTK_BUFFER_VIEW(view), bview); |