summaryrefslogtreecommitdiff
path: root/src/glibext/gbufferline.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2010-04-18 22:30:19 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2010-04-18 22:30:19 (GMT)
commitfb12cfc1727ba949b70a48ee042a2aec9ebbb407 (patch)
treee2c7300262312d77c9f57657e5238d269b7189c0 /src/glibext/gbufferline.c
parentef29fbc801e23f547b9ee7666b713bcf32d7e787 (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.c35
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;
}