diff options
Diffstat (limited to 'src/glibext/gbufferline.h')
-rw-r--r-- | src/glibext/gbufferline.h | 29 |
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 */ |