diff options
Diffstat (limited to 'src/glibext/buffercache.h')
-rw-r--r-- | src/glibext/buffercache.h | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/src/glibext/buffercache.h b/src/glibext/buffercache.h index f0f54b0..e657fff 100644 --- a/src/glibext/buffercache.h +++ b/src/glibext/buffercache.h @@ -72,12 +72,23 @@ gint g_buffer_cache_get_left_margin(const GBufferCache *); /* Fournit la position de départ pour l'impression de texte. */ gint g_buffer_cache_get_text_position(const GBufferCache *); -/* Compte le nombre de lignes rassemblées dans un tampon. */ -size_t g_buffer_cache_count_lines(const GBufferCache *); - /* Fournit un lien vers la structure de suivi de largeurs. */ GWidthTracker *g_buffer_cache_get_width_tracker(const GBufferCache *); +/* Met à disposition un encadrement des accès aux lignes. */ +void g_buffer_cache_lock_unlock(GBufferCache *, bool, bool); + + +#define g_buffer_cache_wlock(cache) g_buffer_cache_lock_unlock(cache, true, true); +#define g_buffer_cache_wunlock(cache) g_buffer_cache_lock_unlock(cache, true, false); + +#define g_buffer_cache_rlock(cache) g_buffer_cache_lock_unlock(cache, false, true); +#define g_buffer_cache_runlock(cache) g_buffer_cache_lock_unlock(cache, false, false); + + +/* Compte le nombre de lignes rassemblées dans un tampon. */ +size_t g_buffer_cache_count_lines(GBufferCache *); + /* Insère un générateur dans des lignes à une position donnée. */ void g_buffer_cache_insert_at(GBufferCache *, size_t, GLineGenerator *, BufferLineFlags, bool, bool); @@ -97,13 +108,13 @@ void g_buffer_cache_extend_with(GBufferCache *, size_t, GLineGenerator *); void g_buffer_cache_truncate(GBufferCache *, size_t); /* Retrouve l'emplacement correspondant à une position de ligne. */ -void g_buffer_cache_get_line_cursor(const GBufferCache *, size_t, gint, GLineCursor **); +void g_buffer_cache_get_line_cursor(GBufferCache *, size_t, gint, GLineCursor **); /* Ajoute une propriété particulière à une ligne. */ void g_buffer_cache_add_line_flag(GBufferCache *, size_t, BufferLineFlags); /* Détermine l'ensemble des propriétés attachées à une ligne. */ -BufferLineFlags g_buffer_cache_get_line_flags(const GBufferCache *, size_t); +BufferLineFlags g_buffer_cache_get_line_flags(GBufferCache *, size_t); /* Retire une propriété particulière attachée à une ligne. */ void g_buffer_cache_remove_line_flag(GBufferCache *, size_t, BufferLineFlags); @@ -111,11 +122,8 @@ void g_buffer_cache_remove_line_flag(GBufferCache *, size_t, BufferLineFlags); /* Force la mise à jour du contenu d'une ligne donnée. */ void g_buffer_cache_refresh_line(GBufferCache *, size_t); -#define g_buffer_cache_lock(c) -#define g_buffer_cache_unlock(c) - /* Retrouve une ligne au sein d'un tampon avec un indice. */ -GBufferLine *g_buffer_cache_find_line_by_index(const GBufferCache *, size_t); +GBufferLine *g_buffer_cache_find_line_by_index(GBufferCache *, size_t); /* Fait remonter les largeurs requises par une ligne donnée. */ void g_buffer_cache_collect_widths(GBufferCache *, size_t, size_t, size_t, gint *, gint *); @@ -124,16 +132,16 @@ void g_buffer_cache_collect_widths(GBufferCache *, size_t, size_t, size_t, gint void g_buffer_cache_draw(const GBufferCache *, cairo_t *, size_t, size_t, const cairo_rectangle_int_t *, const GDisplayOptions *, const gint *, const segcnt_list *); /* Indique l'indice correspondant à une adresse donnée. */ -size_t _g_buffer_cache_find_index_by_cursor(const GBufferCache *, const GLineCursor *, bool, size_t, size_t); +size_t _g_buffer_cache_find_index_by_cursor(GBufferCache *, const GLineCursor *, bool, size_t, size_t); /* Indique l'indice correspondant à une adresse donnée. */ -size_t g_buffer_cache_find_index_by_cursor(const GBufferCache *, const GLineCursor *, bool); +size_t g_buffer_cache_find_index_by_cursor(GBufferCache *, const GLineCursor *, bool); /* Avance autant que possible vers une ligne idéale. */ -size_t g_buffer_cache_look_for_flag(const GBufferCache *, size_t, BufferLineFlags); +size_t g_buffer_cache_look_for_flag(GBufferCache *, size_t, BufferLineFlags); /* Indique la position d'affichage d'une adresse donnée. */ -bool g_buffer_cache_get_cursor_coordinates(const GBufferCache *, const GLineCursor *, size_t, size_t, bool, gint *, gint *); +bool g_buffer_cache_get_cursor_coordinates(GBufferCache *, const GLineCursor *, size_t, size_t, bool, gint *, gint *); |