# Programmation GTK2 en Pascal/GtkComboBox

Cette page est considérée comme une ébauche à compléter . Si vous possédez quelques connaissances sur le sujet, vous pouvez les partager en éditant dès à présent cette page (en cliquant sur le lien « »).
Ressources suggérées : Aucune (vous pouvez indiquer les ressources que vous suggérez qui pourraient aider d'autres personnes à compléter cette page dans le paramètre « ressources » du modèle engendrant ce cadre)
* Programmation GTK2 en Pascal
* Introduction
* Pré-requis
* Logiciels nécessaires
* Installation sous Linux
* Installation sous Windows
* Installation sous Mac/OS
* Une application minimale
* Les bases
* La notion d'objet
* La gestion des évènements
* Le placement des contrôles
* Les contrôles (widgets) Gtk
* Les fenêtres
* Les conteneurs
* Les visuels
* Les boutons
* La saisie de données
* Les listes déroulantes
* Les menus
* Les décorations
* La barre d'outils
* Les sélections
* Les zones de texte
* Les listes et arbres
* La Glib : objets et fonctions
* Dessiner avec le Gdk
* Conclusion
* Bibliographie

## Présentation

Le contrôle GtkComboBox permet de gérer une liste déroulante sur action de l'utilisateur. Après le choix d'une ligne de la liste, celle-ci se referme.
Ce contrôle est disponible à partir de la version 2.4 de Gtk+.
Auparavant c'était le contrôle GtkCombo qui était utilisé. Il est toujours utilisable pour assurer la compatibilité mais n'est plus conseillé pour les nouvelles créations.

### Hiérarchie

* Hiérarchie
* GObject
* └─GtkObject
* └─GtkWidget
* └─GtkContainer
* └─GtkBin
* └─GtkComboBox

## Utilisation de base (mode texte sans modèle)
### Création

La fonction de création d'une liste déroulante texte est simple :

### Ajout de texte dans la liste déroulante

Il y a plusieurs fonctions possibles selon qu'on veuille ajouter ou insérer du texte :

### Suppression de texte

Il suffit d'indiquer le numéro de ligne que l'on souhaite supprimer :

### Récupération de la sélection de l'utilisateur

Cette fonction permet de récupérer le texte choisi par l'utilisateur (à partir de la version 2.6 de Gtk+) :
ATTENTION : Cette fonction n'est pas définie dans les en-têtes Gtk+ Pascal. Il faut donc ajouter le prototype dans le source où on veut l'utiliser (cf l'exemple ci-dessous).
Sinon il y a une fonction qui permet de récupérer le numéro de l'item sélectionné :
Le premier item a le numéro 0. Si aucun item n'est sélectionné, la fonction renvoie -1.
La fonction inverse permet de se positionner sur un item particulier :

### Programme exemple

Comme exemple, nous allons créer une fenêtre comportant un GtkComboBox, un GtkButton et un GtkLabel. Le but sera d'afficher le texte sélectionné du GtkCombobox dans le GtkLabel. Cette opération s'effectuera lorsque l'utilisateur cliquera sur le bouton (interception du signal « clicked »).
Voilà le fichier gtk029.pas :
Voilà ce que donne l'exécution du programme gtk029 :
Après sélection de l'item « bleu » et clic sur le bouton :
On peut légèrement modifier l'exemple pour utiliser les fonctions get et set_active. À l'initialisation, on sélectionne un item (le n° 2) et au clic sur le bouton, on affiche le numéro d'item sélectionné.
Extrait du programme gtk030.pas qui est recopié sur celui ci-dessus. Dans la fonction OnBtnClick, on a :
Et dans la partie principale, après le chargement de la liste déroulante, on ajoute :

## Utilisation complète (avec modèle)

<à développer>
* Listes déroulantes :
* GtkComboBox ~
* GtkComboBoxEntry