« Programmation GTK/Détails sur les boîtes » : différence entre les versions

Contenu supprimé Contenu ajouté
Tavernierbot (discussion | contributions)
STyx (discussion | contributions)
wikifié
Ligne 1 :
À cause de cette liberté, le placement des boîtes avec GTK peut paraître déroutant au premier abord. Il existe beaucoup d'options et il n'est pas tout de suite évident de comprendre comment elles s'accordent toutes ensemble. En fait, il y a 5 styles de base différents.
 
<!--Box Packing Example Image-->
 
Chaque ligne contient une boîte horizontale (''hbox'') contenant plusieurs boutons. L'appel à <code>gtk_box_pack</code> indique la façon dont sont placés tous les boutons dans la hbox. Chaque bouton est placé dans la hbox de la même façon (mêmes paramètres que la fonction <code>gtk_box_pack_start()</code>).
 
Voici la déclaration de la fonction <code>gtk_box_pack_start</code>.
 
void gtk_box_pack_start (GtkBox *box,
Ligne 15 :
Le premier paramètre est la boîte dans laquelle on place l'objet, le second est cet objet. Tous les objets sont tous des boutons jusqu'à maintenant, on place donc des boutons dans des boîtes.
 
Le paramètre expand de <code>gtk_box_pack_start()</code> ou <code>gtk_box_pack_end()</code> contrôle la façon dont le widget est placé dans la boîte. S'il vaut <code>TRUE</code>, les widgets sont disposés dans la boîte de façon à en occuper tout l'espace. S'il vaut <code>FALSE</code>, la boîte est rétrécie pour correspondre à la taille du widget. Mettre expand à <code>FALSE</code> vous permettra d'aligner à droite et à gauche vos widgets. Sinon, ils s'élargiront pour occuper toute la boîte. Le même effet pourrait être obtenu en utilisant uniquement une des deux fonctions <code>gtk_box_pack_start</code> ou <code>pack_end</code>.
 
Le paramètre fill des fonctions <code>gtk_box_pack</code> contrôle si de l'espace supplémentaire doit être alloué aux objets eux-mêmes (<code>TRUE</code>), ou si on doit rajouter de l'espace (padding) dans la boîte autour des objets (<code>FALSE</code>). Il n'a de sens que si le paramètre expand vaut <code>TRUE</code>.
 
Lorsque l'on crée une nouvelle boîte, on utilise une fonction comme :
Ligne 24 :
gint spacing);
 
Le paramètre homogeneous de <code>gtk_hbox_new</code> (et c'est la même chose pour gtk_vbox_new) vérifie que chaque objet de la boîte ait la même taille (i.e. la même largeur dans une hbox, la même hauteur dans une ''vbox''). S'il vaut <code>TRUE</code>, le paramètre expand des fonctions <code>gtk_box_pack</code> sera toujours mis à <code>TRUE</code>.
 
Quelle est alors la différence entre les paramètres spacing (configuré lorsque la boîte est créée) et padding (configuré lorque les éléments sont placés) ? spacing ajoute de l'espace entre les objets, et padding en ajoute de chaque côté d'un objet. La figure suivante devrait éclairer tout cela&nbsp:
 
<!--Box Packing Example Image-->
 
Voici [[Programmation GTK plus Programme de demonstration des placements|le code utilisé pour créer les images ci-dessus]]. J'y ai mis beaucoup de commentaires en espérant que vous n'aurez pas de problème pour le relire. Compilez-le et jouez avec les différents paramètres.
 
[[Catégorie:Programmation GTK plus (livre)]]