diff options
Diffstat (limited to 'src/glibext')
-rw-r--r-- | src/glibext/gcodebuffer.c | 27 | ||||
-rw-r--r-- | src/glibext/gcodebuffer.h | 3 |
2 files changed, 30 insertions, 0 deletions
diff --git a/src/glibext/gcodebuffer.c b/src/glibext/gcodebuffer.c index 75c2e94..3f9af35 100644 --- a/src/glibext/gcodebuffer.c +++ b/src/glibext/gcodebuffer.c @@ -483,3 +483,30 @@ void g_buffer_view_draw(const GBufferView *view, const GdkEventExpose *event, Gd } } + + +/****************************************************************************** +* * +* Paramètres : view = visualisation à consulter. * +* y = ordonnée comprise dans la ligne recherchée. * +* * +* Description : Fournit la ligne présente à une ordonnée donnée. * +* * +* Retour : Ligne retrouvée ou NULL si aucune. * +* * +* Remarques : - * +* * +******************************************************************************/ + +GBufferLine *g_buffer_view_find_line_at(GBufferView *view, gint y) +{ + gint lheight; /* Hauteur d'une ligne */ + size_t index; /* Indice attendu */ + + lheight = g_buffer_view_get_line_height(view); + index = y / lheight; + + /* FIXME : à placer côté tampon ? */ + return (index < view->buffer->used ? view->buffer->lines[index] : NULL); + +} diff --git a/src/glibext/gcodebuffer.h b/src/glibext/gcodebuffer.h index 9460530..49b954d 100644 --- a/src/glibext/gcodebuffer.h +++ b/src/glibext/gcodebuffer.h @@ -97,6 +97,9 @@ void g_buffer_view_define_extra_drawing(GBufferView *, buffer_line_draw_fc, void /* Imprime la visualisation du tempon de code désassemblé. */ void g_buffer_view_draw(const GBufferView *, const GdkEventExpose *, GdkGC *, gint, gint); +/* Fournit la ligne présente à une ordonnée donnée. */ +GBufferLine *g_buffer_view_find_line_at(GBufferView *, gint); + #endif /* _GLIBEXT_GCODEBUFFER_H */ |