Programmation GTK2 en Pascal/GtkVBox
Présentation.
Le contrôle GtkVBox est tout simplement une codice_1 qui va nous permettre d'empiler les contrôles verticalement.
Utilisation de base.
Création d'une GtkVBox.
La création d'une codice_2 se fait tout simplement à l'aide de l'unique fonction disponible pour ce contrôle :
 function gtk_vbox_new(homogeneous : gboolean; spacing : gint) : PGtkWidget;
Le paramètre codice_3 définit si tous les contrôles contenus dans la codice_2 utilisent un espace équivalent. C'est à dire que si ce paramètre est à TRUE, la zone d'affichage de la codice_2 sera divisée en x lignes de taille égale (x étant le nombre de contrôles contenus).
Le paramètre codice_6 permet de définir l'espacement entre chacun des contrôles contenus.
Ajout d'un contrôle.
Pour ajouter un contrôle dans une codice_2, il faut utiliser les fonctions disponibles pour le contrôle codice_1. Cependant, il est nécessaire de savoir que le début d'une codice_2 est en haut et que sa fin est en bas.
Programme exemple.
Nous allons simplement insérer quatre boutons dans une codice_2.
Voilà le fichier codice_11 :
 program gtk007;
 uses glib2, gtk2;
 var
 pFenetre : PGtkWidget;
 pVBox : PGtkWidget;
 pBouton : array [1..4] of PGtkWidget;
 begin
 gtk_init(@argc, @argv);
 pFenetre := gtk_window_new(GTK_WINDOW_TOPLEVEL);
 gtk_window_set_position(GTK_WINDOW(pFenetre), GTK_WIN_POS_CENTER);
 gtk_window_set_default_size(GTK_WINDOW(pFenetre), 320, 200);
 gtk_window_set_title(GTK_WINDOW(pFenetre), 'Gtk007 : GtkVBox');
 gtk_signal_connect(pGTKOBJECT(pFenetre), 'destroy', GTK_SIGNAL_FUNC(@gtk_main_quit), NULL);
 // Création de la GtkVBox et ajout dans la fenêtre
 pVBox := gtk_vbox_new(FALSE, 0);
 gtk_container_add(GTK_CONTAINER(pFenetre), pVBox);
 // Création des boutons
 pBouton[1] := gtk_button_new_with_label('Bouton 1');
 pBouton[2] := gtk_button_new_with_label('Bouton 2');
 pBouton[3] := gtk_button_new_with_label('Bouton 3');
 pBouton[4] := gtk_button_new_with_label('Bouton 4');
 // Ajout des boutons dans la GtkVBox 
 gtk_box_pack_start(GTK_BOX(pVBox), pBouton[1], TRUE, TRUE, 0);
 gtk_box_pack_start(GTK_BOX(pVBox), pBouton[2], TRUE, FALSE, 0);
 gtk_box_pack_start(GTK_BOX(pVBox), pBouton[3], FALSE, FALSE, 0);
 gtk_box_pack_start(GTK_BOX(pVBox), pBouton[4], FALSE, TRUE, 0);
 gtk_widget_show_all(pFenetre);
 gtk_main;
 end.
Voilà ce que donne l'exécution du programme codice_12 :
Récapitulatif des paramètres de codice_13 pour chaque bouton (La boîte n'est pas homogène) :
Rappel : Quand codice_14 n'est pas positionné, codice_15 n'a aucun effet.