summaryrefslogtreecommitdiff
path: root/src/glibext
diff options
context:
space:
mode:
Diffstat (limited to 'src/glibext')
-rw-r--r--src/glibext/gbinportion.c55
-rw-r--r--src/glibext/gbinportion.h6
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 *);