Programmation GTK2 en Pascal/GtkContainer
Programmation GTK2 en Pascal |
|
Présentation
[modifier | modifier le wikicode]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
[modifier | modifier le wikicode]Hiérarchie |
GObject └─GtkObject └─GtkWidget └─GtkContainer |
Utilisation de base
[modifier | modifier le wikicode]Le contrôle GtkContainer
n'est pas utilisé en tant 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
[modifier | modifier le wikicode]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
[modifier | modifier le wikicode]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 ~ GtkBin — GtkHBox ~ GtkVBox ~ GtkTable ~ GtkNotebook |