diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2010-04-18 22:30:19 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2010-04-18 22:30:19 (GMT) |
commit | fb12cfc1727ba949b70a48ee042a2aec9ebbb407 (patch) | |
tree | e2c7300262312d77c9f57657e5238d269b7189c0 /src/glibext/gbufferline.c | |
parent | ef29fbc801e23f547b9ee7666b713bcf32d7e787 (diff) |
Defined attributes for printing binary content using GLib.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@153 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/glibext/gbufferline.c')
-rw-r--r-- | src/glibext/gbufferline.c | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/src/glibext/gbufferline.c b/src/glibext/gbufferline.c index bfb77bb..da08184 100644 --- a/src/glibext/gbufferline.c +++ b/src/glibext/gbufferline.c @@ -63,6 +63,7 @@ struct _GBufferLine GObject parent; /* A laisser en premier */ buffer_line_column columns[BLC_COUNT]; /* Répartition du texte */ + BufferLineColumn merge_start; /* Début de la zone globale */ }; @@ -250,11 +251,13 @@ static void g_buffer_line_class_init(GBufferLineClass *class) static void g_buffer_line_init(GBufferLine *line) { - unsigned int i; /* Boucle de parcours */ + BufferLineColumn i; /* Boucle de parcours */ - for (i = 0; i < BLC_COUNT; i++) + for (i = BLC_ADDRESS; i < BLC_COUNT; i++) reset_column(&line->columns[i]); + line->merge_start = BLC_COUNT; + } @@ -325,6 +328,26 @@ gint g_buffer_line_get_width(GBufferLine *line, BufferLineColumn index) /****************************************************************************** * * +* Paramètres : line = ligne à venir compléter. * +* start = début de la première (et unique) zone globale. * +* * +* Description : Définit la colonne à partir de laquelle la fusion opère. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void g_buffer_line_start_merge_at(GBufferLine *line, BufferLineColumn start) +{ + line->merge_start = start; + +} + + +/****************************************************************************** +* * * Paramètres : line = ligne de texte à manipuler. * * drawable = surface de rendu où travailler. * * gc = contexte graphique à utiliser pour les pinceaux.* @@ -343,16 +366,18 @@ gint g_buffer_line_get_width(GBufferLine *line, BufferLineColumn index) void g_buffer_line_draw(GBufferLine *line, GdkDrawable *drawable, GdkGC *gc, const gint max_widths[BLC_COUNT], gint x_init, gint y) { gint x; /* Point de départ d'impression*/ - unsigned int i; /* Boucle de parcours */ + BufferLineColumn i; /* Boucle de parcours */ x = x_init; - for (i = 0; i < BLC_COUNT; i++) + for (i = BLC_ADDRESS; i < BLC_COUNT; i++) { /* TODO : skip if... */ draw_segments_of_column(&line->columns[i], drawable, gc, x, y); - x += max_widths[i] + 23; + + if (i < line->merge_start) + x += max_widths[i] + 23; } |