summaryrefslogtreecommitdiff
path: root/src/glibext
diff options
context:
space:
mode:
Diffstat (limited to 'src/glibext')
-rw-r--r--src/glibext/gcodebuffer.c27
-rw-r--r--src/glibext/gcodebuffer.h3
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 */