diff options
Diffstat (limited to 'src/glibext/gbufferline.c')
-rw-r--r-- | src/glibext/gbufferline.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/glibext/gbufferline.c b/src/glibext/gbufferline.c index 2f29ee4..b8838ae 100644 --- a/src/glibext/gbufferline.c +++ b/src/glibext/gbufferline.c @@ -78,6 +78,9 @@ static GBufferSegment *get_segment_at(const buffer_line_column *, gint *, GdkScr static GBufferSegment *find_near_segment(const buffer_line_column *, GBufferSegment *, GdkScrollDirection); /* Fournit le segment créé par un objet particulier. */ +static GObject *find_first_segment_creator(const buffer_line_column *); + +/* Fournit le segment créé par un objet particulier. */ static GBufferSegment *find_segment_from_creator(const buffer_line_column *, GObject *); /* Imprime le contenu d'une colonne de ligne de texte. */ @@ -410,6 +413,33 @@ static GBufferSegment *find_near_segment(const buffer_line_column *column, GBuff /****************************************************************************** * * +* Paramètres : column = colonne de ligne de texte à consulter. * +* * +* Description : Fournit le segment créé par un objet particulier. * +* * +* Retour : Créateur trouvé à déréférencer par la suite ou NULL si échec.* +* * +* Remarques : - * +* * +******************************************************************************/ + +static GObject *find_first_segment_creator(const buffer_line_column *column) +{ + GObject *result; /* Trouvaille à retourner */ + size_t i; /* Boucle de parcours */ + + result = NULL; + + for (i = 0; i < column->count && result == NULL; i++) + result = g_buffer_segment_get_creator(column->segments[i]); + + return result; + +} + + +/****************************************************************************** +* * * Paramètres : column = colonne de ligne de texte à consulter. * * creator = créateur à l'origine du segment recherché. * * * @@ -1165,6 +1195,35 @@ GBufferSegment *g_buffer_line_find_near_segment(const GBufferLine *line, GBuffer /****************************************************************************** * * +* Paramètres : line = ligne à venir consulter. * +* column = indice de la colonne visée par les recherches. * +* * +* Description : Recherche le premier créateur enregistré dans des segments. * +* * +* Retour : Créateur trouvé à déréférencer par la suite ou NULL si échec.* +* * +* Remarques : - * +* * +******************************************************************************/ + +GObject *g_buffer_line_find_first_segment_creator(const GBufferLine *line, BufferLineColumn column) +{ + GObject *result; /* Trouvaille à retourner */ + + assert(column < BLC_COUNT); + + result = find_first_segment_creator(&line->columns[column]); + + if (result != NULL) + g_object_ref(G_OBJECT(result)); + + return result; + +} + + +/****************************************************************************** +* * * Paramètres : line = ligne à venir consulter. * * creator = créateur à l'origine du segment recherché. * * * |