Les conteneurs sont les widgets qui contiennent d'autres widgets. Le premier
type est une sous classe de Bin qui est elle-même une sous-classe de
Container . Ces conteneurs peuvent n'avoir qu'un seul enfant et dans
ce cas ne sont utilisés que pour leur ajouter des fonctionnalités. Les boutons
et les cadres sont de bons exemples de ce type de conteneurs.
Le second type de conteneurs peut posséder plusieurs widgets et sont utilisés pour contrôler leurs dispositions.
Les widgets sont ajoutés ou ôter d'un conteneur à l'aide des fonctions suivantes :
$container->add( $widget ); $container->remove( $widget );
Une fois ajoutée au contenant, le widget ne sera pas visible tant qu'on aura
pas appelé la fonction show().
La fonction suivante retourne la liste de tous les widgets d'un contenant :
@children = $container->children();
Et les deux fonctions suivantes exécuteront une fonction ( avec des données optionnelles ) sur chacun des enfants du contenant. Je ne connais pas la différence ( s'il y en a ) qu'il y a entre elles.
$container>forall( \&callback_function, @data ); $container->foreach( \&callback_function, @data );
La largeur du bord est le nombre de pixels entre les enfants et la limite du conteneur. On peut l'imposer en utilisant l'une des fonctions suivantes :
$container->border_width(); $container->set_border_width();
La première est définie dans GTK comme macro pour la seconde, ainsi il n'y a
absolument aucune différence entre les deux. Cependant, il est préférable d'utiliser
la seconde. Je ne sais si une fonction get_border_width existe.