summaryrefslogtreecommitdiff
path: root/src/glibext/gbufferline.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2016-01-21 20:51:27 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2016-01-21 21:23:58 (GMT)
commitdd33acbff36c0a3ae4618ac5021e74448cad5ce5 (patch)
tree834351b836760fc54533e2f39c4b8202e695c0e3 /src/glibext/gbufferline.h
parente3ee1abf12d7868f5eaf759e04a4b4911fcdfa91 (diff)
Defined some raw primitives to write or delete comments.
Diffstat (limited to 'src/glibext/gbufferline.h')
-rw-r--r--src/glibext/gbufferline.h29
1 files changed, 25 insertions, 4 deletions
diff --git a/src/glibext/gbufferline.h b/src/glibext/gbufferline.h
index 643e899..19652ab 100644
--- a/src/glibext/gbufferline.h
+++ b/src/glibext/gbufferline.h
@@ -89,11 +89,12 @@ typedef enum _BufferLineFlags
{
BLF_NONE = 0 << 0, /* Aucune */
BLF_HAS_CODE = 1 << 0, /* La ligne contient du code */
- BLF_ENTRYPOINT = 1 << 1, /* Représentation d'une entrée */
- BLF_BOOKMARK = 1 << 2, /* Signet associé */
- BLF_WIDTH_MANAGER = 1 << 3, /* Début de groupe des largeurs*/
+ BLF_IS_LABEL = 1 << 1, /* Etiquette pour symbole */
+ BLF_ENTRYPOINT = 1 << 2, /* Représentation d'une entrée */
+ BLF_BOOKMARK = 1 << 3, /* Signet associé */
+ BLF_WIDTH_MANAGER = 1 << 4, /* Début de groupe des largeurs*/
- BLF_ALL = ((1 << 4) - 1)
+ BLF_ALL = ((1 << 5) - 1)
} BufferLineFlags;
@@ -125,12 +126,21 @@ GBufferSegment *g_buffer_line_find_segment_from_creator(const GBufferLine *, GOb
/* Ajoute du texte à formater dans une ligne donnée. */
GBufferSegment *g_buffer_line_insert_text(GBufferLine *, BufferLineColumn, const char *, size_t, RenderingTagType);
+/* Indique si du texte est présent dans une ligne de tampon. */
+bool g_buffer_line_has_text(const GBufferLine *, BufferLineColumn, BufferLineColumn);
+
/* Donne le texte représenté par une ligne de tampon. */
char *g_buffer_line_get_text(const GBufferLine *, BufferLineColumn, BufferLineColumn, bool);
+/* Supprime du texte représenté par une ligne de tampon. */
+void g_buffer_line_delete_text(GBufferLine *, BufferLineColumn, BufferLineColumn);
+
/* Retient les largeurs d'une ligne si maximales. */
void g_buffer_line_update_max_widths(GBufferLine *, GBufferLine *);
+/* Renvoie la ligne comptabilisant les largeurs pour un groupe. */
+GBufferLine *g_buffer_line_get_width_manager(GBufferLine *);
+
/* Filtre des largeurs de lignes et ne garde que les maximales. */
void g_buffer_line_apply_max_widths(GBufferLine *, gint *, gint *);
@@ -159,5 +169,16 @@ void g_buffer_line_draw(GBufferLine *, cairo_t *, const gint [BLC_COUNT], gint,
void g_buffer_line_export(GBufferLine *, buffer_export_context *, BufferExportType, const bool *);
+/* Petite aide pour la détection de commentaire */
+#define g_buffer_line_has_comment(ln) \
+ ({ \
+ bool __result; \
+ __result = g_buffer_line_has_text(ln, BLC_COMMENTS, BLC_COUNT); \
+ __result |= (g_buffer_line_get_merge_start(ln) == BLC_DISPLAY \
+ && !(g_buffer_line_get_flags(ln) & BLF_IS_LABEL)); \
+ __result; \
+ })
+
+
#endif /* _GLIBEXT_GBUFFERLINE_H */