< Programmation GTK2 en Pascal
Programmation GTK2 en Pascal

Présentation

Le contrôle GtkContainer est un contrôle de base qui va nous permettre d'insérer un ou plusieurs contrôle dans un autre contrôle.

En effet si l'on veut insérer du texte dans une fenêtre, il va bien falloir insérer le GtkLabel quelque part. C'est là que l'on s'aperçoit que le contrôle GtkWindow dérive du contrôle GtkContainer et que l'on va pouvoir insérer le texte dans la fenêtre.

Hiérarchie

Hiérarchie
GObject
  └─GtkObject
      └─GtkWidget
          └─GtkContainer

Utilisation de base

Le contrôle GtkContainer n'est pas utilisé en temps que tel mais plutôt au travers d'autres contrôles qui en dérivent. Par exemple, les GtkHBox, GtkVBox, GtkWindow, etc.

Ajout et suppression d'éléments

La fonction pour ajouter un élément à un GtkContainer est très souvent utilisée mais elle est aussi très simple d'utilisation :

procedure gtk_container_add(container : PGtkContainer; widget : PGtkWidget); 

Le paramètre container est le contrôle parent dans lequel on veut insérer le contrôle enfant qui vient en deuxième paramètre. Le premier paramètre demande un contrôle du type GtkContainer, il est très probable que le contrôle parent ne soit pas de ce type là, mais d'une classe fille. Il faudra donc utiliser la fonction GTK_CONTAINER().

Pour la suppression c'est aussi simple, il faut utiliser la fonction :

procedure gtk_container_remove(container : PGtkContainer; widget : PGtkWidget);

Attention, avec cette fonction le contrôle widget va être détruit.

Espacement

Avec le contrôle GtkContainer, il existe la possibilité de laisser un espace minimum entre le bord du contrôle parent et le bord du contrôle enfant. Cela est rendu possible grâce à cette fonction :

procedure gtk_container_set_border_width(container : PGtkContainer; border_width : guint);

Le paramètre border_width correspond à l'espacement minimum.

Et pour connaître la valeur de cet espacement, il y a la fonction :

function gtk_container_get_border_width(container : PGtkContainer) : guint;

Conteneurs : GtkContainer ~ GtkBox ~ GtkBinGtkHBox ~ GtkVBox ~ GtkTable ~ GtkNotebook

Cet article est issu de Wikibooks. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.