Programmation GTK/Widgets listes
Le widget GtkList
sert de container vertical pour des widgets GtkListItem
.
Un widget GtkList
possède sa propre fenêtre pour recevoir les événements et sa propre couleur de fond qui est habituellement blanche. Comme il est directement dérivé de GtkContainer
, il peut être traité comme tel en utilisant la macro GTK_CONTAINER(List)
: voir le widget GtkContainer
pour en savoir plus.
On doit d'abord connaître l'utilisation des GList et des fonctions g_list_*()
qui leur sont liées pour pouvoir utiliser pleinement le widget GtkList
.
Un champ de la structure d'un widget GtkList
nous intéresse particulièrement:
struct _GtkList
{
...
GList *selection;
guint selection_mode;
...
};
Le champ selection d'un GtkList
pointe sur une liste chaînée de tous les items qui sont sélectionnés, ou vaut NULL
si aucune sélection n'est faite. Ainsi, pour connaître la sélection courante, on consulte le champ GTK_LIST()->selection
mais on ne doit pas le modifier car ses champs internes sont gérés par les fonctions gtk_list_*()
.
Le champ selection_mode
détermine les options de sélection d'un GtkList
et donc le contenu du champ du GTK_LIST()->selection
. selection_mode
peut avoir l'une des valeurs suivantes:
GTK_SELECTION_SINGLE
- selection vautNULL
ou contient un pointeur vers un seul item sélectionné.GTK_SELECTION_BROWSE
- selection vautNULL
si la liste ne contient aucun widget ou seulement des widgets non sensitifs. Sinon, ce champ contient un pointeur vers une seule structureGlist
, et donc vers exactement un item.GTK_SELECTION_MULTIPLE
- selection vautNULL
si aucun item n'est sélectionné ou pointe vers le premier item sélectionné. Ce dernier pointe à son tour vers le second item, etc.GTK_SELECTION_EXTENDED
- selection vaut toujoursNULL
.
La valeur par défaut est GTK_SELECTION_MULTIPLE
.