summaryrefslogtreecommitdiff
path: root/src/glibext/gbufferline.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/glibext/gbufferline.h')
-rw-r--r--src/glibext/gbufferline.h31
1 files changed, 21 insertions, 10 deletions
diff --git a/src/glibext/gbufferline.h b/src/glibext/gbufferline.h
index 9403d80..b5d70b2 100644
--- a/src/glibext/gbufferline.h
+++ b/src/glibext/gbufferline.h
@@ -29,7 +29,7 @@
#include <stdbool.h>
-#include "gbuffersegment.h"
+#include "linesegment.h"
#include "../analysis/content.h"
#include "../arch/archbase.h"
#include "../arch/vmpa.h"
@@ -117,15 +117,12 @@ void g_buffer_line_fill_for_instr(GBufferLine *, MemoryDataSize, MemoryDataSize,
/* Recherche le premier créateur enregistré dans des segments. */
GObject *g_buffer_line_find_first_segment_creator(const GBufferLine *, BufferLineColumn);
-/* Fournit le segment créé par un objet particulier. */
-GBufferSegment *g_buffer_line_find_segment_from_creator(const GBufferLine *, GObject *);
-
-/* Ajoute du texte à formater dans une ligne donnée. */
-GBufferSegment *g_buffer_line_insert_text(GBufferLine *, BufferLineColumn, const char *, size_t, RenderingTagType) __attribute__ ((deprecated));
-
/* Ajoute du texte à formater dans une ligne donnée. */
void g_buffer_line_append_text(GBufferLine *, BufferLineColumn, const char *, size_t, RenderingTagType, GObject *);
+/* Remplace du texte dans une ligne donnée. */
+bool g_buffer_line_replace_text(GBufferLine *, const GObject *, const char *, size_t);
+
/* Indique si du texte est présent dans une ligne de tampon. */
bool g_buffer_line_has_text(const GBufferLine *, BufferLineColumn, BufferLineColumn);
@@ -177,6 +174,14 @@ typedef struct _line_width_summary
} line_width_summary;
+/* Identification d'un contenu de colonne */
+typedef struct _col_coord_t
+{
+ BufferLineColumn column; /* Colonne concernée */
+ size_t index; /* Indice d'insertion */
+
+} col_coord_t;
+
/* Fait remonter les largeurs requises par une ligne donnée. */
void g_buffer_line_collect_widths(GBufferLine *, line_width_summary *);
@@ -184,14 +189,20 @@ void g_buffer_line_collect_widths(GBufferLine *, line_width_summary *);
/* Fournit la largeur d'une colonne finalement appliquée. */
gint g_buffer_line_compute_max_width(const GBufferLine *, BufferLineColumn, const line_width_summary *);
+/* Fournit le segment présent à une position donnée. */
+const line_segment *g_buffer_line_get_segment_from_coord(const GBufferLine *, const col_coord_t *);
+
+/* Fournit les coordonnées correspondant à une abscisse donnée. */
+bool g_buffer_line_get_coord_at(const GBufferLine *, const line_width_summary *, const bool *, gint *, gint *, GdkScrollDirection, bool, col_coord_t *);
+
/* Donne le segment présent à une abscisse donnée. */
-GBufferSegment *g_buffer_line_get_segment_at(const GBufferLine *, const line_width_summary *, const bool *, gint *, gint *, GdkScrollDirection, bool);
+const line_segment *g_buffer_line_get_segment_at(const GBufferLine *, const line_width_summary *, const bool *, gint *, gint *, GdkScrollDirection, bool);
/* Donne le créateur présent à une abscisse donnée. */
GObject *g_buffer_line_get_creator_at(const GBufferLine *, const line_width_summary *, const bool *, gint *, gint *, GdkScrollDirection, bool);
-/* Fournit le segment voisin d'un autre segment identifié. */
-GBufferSegment *g_buffer_line_find_near_segment(const GBufferLine *, GBufferSegment *, const line_width_summary *, const bool *, GdkScrollDirection, gint *);
+/* Fournit des coordonnées voisines selon une direction donnée. */
+bool g_buffer_line_find_near_coord(const GBufferLine *, col_coord_t *, const line_width_summary *, const bool *, GdkScrollDirection, gint *);
/* Imprime la ligne de texte représentée. */
void g_buffer_line_draw(GBufferLine *, cairo_t *, const line_width_summary *, gint, gint, const bool *, const segcnt_list *);