diff options
Diffstat (limited to 'src/glibext')
-rw-r--r-- | src/glibext/gbinportion.c | 55 | ||||
-rw-r--r-- | src/glibext/gbinportion.h | 6 |
2 files changed, 61 insertions, 0 deletions
diff --git a/src/glibext/gbinportion.c b/src/glibext/gbinportion.c index caaec43..b94b0f6 100644 --- a/src/glibext/gbinportion.c +++ b/src/glibext/gbinportion.c @@ -51,6 +51,8 @@ struct _GBinPortion char *code; /* Code de la couleur de fond */ + cairo_surface_t *icon; /* Image de représentation */ + char *desc; /* Désignation humaine */ char **text; /* Lignes brutes à représenter */ size_t lcount; /* Quantité de ces lignes */ @@ -239,6 +241,9 @@ static void g_binary_portion_finalize(GBinPortion *portion) free(portion->code); + if (portion->icon != NULL) + cairo_surface_destroy(portion->icon); + if (portion->desc != NULL) free(portion->desc); @@ -314,6 +319,56 @@ int g_binary_portion_compare(const GBinPortion **a, const GBinPortion **b) /****************************************************************************** * * * Paramètres : portion = description de partie à mettre à jour. * +* icon = image miniature de représentation à associer. * +* * +* Description : Attribue à la portion une éventuelle image de représentation.* +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void g_binary_portion_set_icon(GBinPortion *portion, cairo_surface_t *icon) +{ + if (icon != NULL) + portion->icon = cairo_surface_reference(icon); + + else + portion->icon = NULL; + +} + + +/****************************************************************************** +* * +* Paramètres : portion = description de partie à consulter. * +* * +* Description : Fournit une éventuelle image de représentation de portion. * +* * +* Retour : Image miniature de représentation associée. * +* * +* Remarques : - * +* * +******************************************************************************/ + +cairo_surface_t *g_binary_portion_get_icon(const GBinPortion *portion) +{ + cairo_surface_t *result; + + result = portion->icon; + + if (result != NULL) + cairo_surface_reference(result); + + return result; + +} + + +/****************************************************************************** +* * +* Paramètres : portion = description de partie à mettre à jour. * * desc = nom à donner à la partie. * * * * Description : Attribue une description humaine à une partie de code. * diff --git a/src/glibext/gbinportion.h b/src/glibext/gbinportion.h index 27e7dc5..9f22e3d 100644 --- a/src/glibext/gbinportion.h +++ b/src/glibext/gbinportion.h @@ -84,6 +84,12 @@ GBinPortion *g_binary_portion_new(const char *, const vmpa2t *, phys_t); /* Etablit la comparaison ascendante entre deux portions. */ int g_binary_portion_compare(const GBinPortion **, const GBinPortion **); +/* Attribue à la portion une éventuelle image de représentation. */ +void g_binary_portion_set_icon(GBinPortion *, cairo_surface_t *); + +/* Fournit une éventuelle image de représentation de portion. */ +cairo_surface_t *g_binary_portion_get_icon(const GBinPortion *); + /* Attribue une description humaine à une partie de code. */ void g_binary_portion_set_desc(GBinPortion *, const char *); |