Programmation GTK2 en Pascal/GtkVBox
Programmation GTK2 en Pascal |
|
Présentation
[modifier | modifier le wikicode]Le contrôle GtkVBox est tout simplement une GtkBox
qui va nous permettre d'empiler les contrôles verticalement.
Hiérarchie
[modifier | modifier le wikicode]Hiérarchie |
GObject └─GtkObject └─GtkWidget └─GtkContainer └─GtkBox └─GtkVBox |
Utilisation de base
[modifier | modifier le wikicode]Création d'une GtkVBox
[modifier | modifier le wikicode]La création d'une GtkVBox
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 homogeneous
définit si tous les contrôles contenus dans la GtkVBox
utilisent un espace équivalent. C'est à dire que si ce paramètre est à TRUE, la zone d'affichage de la GtkVBox
sera divisée en x lignes de taille égale (x étant le nombre de contrôles contenus).
Le paramètre spacing
permet de définir l'espacement entre chacun des contrôles contenus.
Ajout d'un contrôle
[modifier | modifier le wikicode]Pour ajouter un contrôle dans une GtkVBox
, il faut utiliser les fonctions disponibles pour le contrôle GtkBox
. Cependant, il est nécessaire de savoir que le début d'une GtkVBox
est en haut et que sa fin est en bas.
Programme exemple
[modifier | modifier le wikicode]Nous allons simplement insérer quatre boutons dans une GtkVBox
.
Voilà le fichier gtk007.pas
:
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 gtk007
:
Récapitulatif des paramètres de gtk_box_pack_start
pour chaque bouton (La boîte n'est pas homogène) :
Bouton | expand | fill |
n° 1 | True | True |
n° 2 | True | False |
n° 3 | False | False |
n° 4 | False | True |
Rappel : Quand expand
n'est pas positionné, fill
n'a aucun effet.
Conteneurs : GtkContainer ~ GtkBox ~ GtkBin — GtkHBox ~ GtkVBox ~ GtkTable ~ GtkNotebook |