Programmation GTK2 en Pascal/GtkContainer
Programmation GTK2 en Pascal |
|
Présentation
modifierLe 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
modifierHiérarchie |
GObject └─GtkObject └─GtkWidget └─GtkContainer |
Utilisation de base
modifierLe 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
modifierLa 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
modifierAvec 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 |