- NOM
- pack - gestionnaire de géométrie qui ordonne autour des emplacements vides
- SYNTAXE
- pack option arg ?arg ...?
- DESCRIPTION
- pack slave ?slave ...? ?options?
- pack configure slave ?slave ...? ?options?
- -after autre
- -anchor anchor
- -before autre
- -expand boolean
- -fill style
- none
- x
- y
- both
- -in autre
- -ipadx amount
- -ipady amount
- -padx amount
- -pady amount
- -side side
- pack forget slave ?slave ...?
- pack info slave
- pack propagate maître ?boolean?
- pack slaves maître
- L'ALGORITHME PACKER
- EXPANSION
- PROPAGATION DE LA GEOMETRIE
- RESTRICTIONS POUR LES FENETRES MAITRES
- ORDRE DE DISPOSITION
- MOTS-CLES
pack - gestionnaire de géométrie qui ordonne autour des emplacements vides
pack option arg ?arg ...?
La commande pack est utilisée pour communiquer avec le packer,
un gestionnaire de géométrie qui dispose les descendants d'un parent en
les arrangeant dans l'ordre autour des limites du parent.
LA commande pack peut avoir une parmi plusieurs formes, dépendantes
de l'argument option :
- pack slave ?slave ...? ?options?
-
Si le premier argument de pack est un nom de fenêtre (toute valeur
commencant par ``.''), alors la commande est traitée de la même
façon que pack configure.
- pack configure slave ?slave ...? ?options?
-
Les arguments consistent en les noms d'une ou plusieurs fenêtres esclaves
suivies par des paires d'arguments qui indiquent comment
gérer les esclaves.
Voir ``L'ALGORITHME PACKER'' ci-dessous pour les détails sur comment les options
sont utilisées par le packer.
Les options suivantes sont supportées:
- -after autre
-
Autre doit être le nom d'une autre fenêtre.
Utilise son maître comme maître des esclaves, et insère
les esclaves juste après autre dans l'ordre de disposition.
- -anchor anchor
-
Anchor doit être une position d'ancre valide comme n
ou sw; indique où positionner chaque esclave dans sa
surface.
Par défaut à center.
- -before autre
-
Autre doit être le nom d'une autre fenêtre.
Utilise son maître comme maître des esclaves, et insère
les esclaves juste avant autre dans l'ordre de disposition.
- -expand boolean
-
Spécifie si les esclaves doivent être étendus pour utiliser
l'espace additionel de leurs maîtres.
Boolean doit avoir n'importe quelle valeur booléenne correcte, comme 1
ou no.
Par défaut à 0.
- -fill style
-
Si la surface d'un esclave est plus grande que ses dimensions demandées, cette
option peut être utilisée pour étendre l'esclave.
Style doit avoir une des valeurs suivantes:
- none
-
Donne à l'esclave ses dimensions demandées plus le remplissage interne éventuel
demandé avec -ipadx ou -ipady. C'est le comportement par défaut.
- x
-
Etend l'esclave horizontalement pour remplir entièrement la largeur de sa
surface (excepté le remplissage externe spécifié par -padx).
- y
-
Etend l'esclave verticalement pour remplir entièrement la hauteur de sa
surface (excepté le remplissage externe spécifié par -pady).
- both
-
Etend l'esclave horizontalement et verticalement.
- -in autre
-
Insère l'esclave(s) en dernier dans l'ordre de disposition de la
fenêtre maître indiquée par autre.
- -ipadx quantité
-
Quantité indique le remplissage horizontal interne
disposé de chaque coté de l'esclave(s).
Quantité doit être une distance écran valide, comme 2 ou .5c.
It est par défaut de 0.
- -ipady quantité
-
Quantité indique le remplissage vertical interne
disposé de chaque coté de l'esclave(s.
Quantité est par défaut de 0.
- -padx quantité
-
Quantité indique le remplissage horizontal externe
disposé de chaque coté de l'esclave(s). Quantité peut être une liste
de deux valeurs pour spécifier le remplissage à droite et à gauche séparément.
Quantité est par défaut de 0.
- -pady quantité
-
Quantité indique le remplissage externe
disposé de chaque coté de l'esclave(s). Quantité peut être une liste
de deux valeurs pour spécifier le remplissage en haut et en bas séparément.
Quantité est par défaut de 0.
- -side side
-
Spécifie vers quel coté du maître l'esclave(s) sera plaqué.
Doit être left, right, top, ou bottom.
Par défaut à top.
Si aucune option -in, -after ou -before n'est spécifiée
alors chacun des esclaves sera inséré à la fin de la liste de disposition
de son parent à moins qu'il soit déjà pris en charge par le packer (auquel
cas il sera laissé où il est).
Si une des deux options est spécifiée alors tous les esclaves seront
insérés au point spécifié.
Si un des esclaves est déjà pris en charge par le gestionnaire de géométrie
alors leurs options non spécifiées récupèrent leurs valeurs précédentes plutot
que celles par défaut.
- pack forget esclave ?esclave ...?
-
Enlève chacun des esclaves de l'ordre de packing de leur
maître et libère leurs fenêtres.
Les esclaves ne sont plus pris en charge par le packer.
- pack info slave
-
Retourne une liste dont les éléments sont la configuration courante de
l'esclave indiqué par esclave sous la même forme option-valeur qui
serait spécifiée à pack configure.
Les deux premier éléments de la liste sont ``-in maître'' où
maître est le maître de l'esclave.
- pack propagate maître ?boolean?
-
Si boolean a une valeur booléenne vraie comme 1 ou on
alors la propagation est activée pour maître, qui doit être un nom de fenêtre
(voir ``PROPAGATION DE LA GEOMETRIE'' ci-dessous).
Si boolean a une valeur booléenne fausse alors la propagation est
désactivée for maître.
Dans chacun de ces cas une chaîne vide est retournée.
Si boolean est omis alors la commande retourne 0 ou
1 pour indiquer si la propagation est actuellement activée
pour maître.
La propagation est activée par défaut.
- pack slaves maître
-
Retourne une liste de tous les esclaves dans l'ordre de packing pour maître.
L'ordre des esclaves dans la liste est le même que leur ordre dans
l'ordre de packing.
Si maître n'a pas esclaves alors une chaîne vide est retournée.
Pour chaque maître le packer maintient une liste ordonnée des esclaves
appelée la packing list.
Les options de configuration -in, -after, et -before
sont utilisées pour spécifier le maître de chaque slave et la position de l'esclave
dans la packing list.
Si une des options est indiquée pour un esclave alors l'esclave
est ajouté à la fin de la packing list de son parent.
Le packer dispose les esclaves d'un maître en parcourant la
packing list dans l'ordre.
A l'instant ou il traite chaque esclave, une zone rectangulaire à l'intérieur
du maître est toujours non allouée.
Cette zone est appelée la cavité; pour le premier esclave c'est
la surface entière du maître.
Pour chaque esclave le packer réalise les étapes suivantes:
- [1]
-
Le packer alloue une parcelle rectangulaire pour l'esclave
du coté de la cavité indiquée par l'option de l'esclave -side .
Si le coté est le haut ou le bas alors la largeur de la parcelle est
la largeur de la cavité et sa hauteur est la hauteur demandée
pour l'esclave plus les options -ipady et -pady.
Pour les cotés gauche ou droit la hauteur de la parcelle est
la hauteur de la cavité et la largeur est la largeur demandée
de l'esclave plus les options -ipadx et -padx.
La parcelle peut être agrandie plus tard à l'aide de l'option -expand
(voir ``EXPANSION'' ci-dessous)
- [2]
-
Le packer choisit les dimensions de l'esclave.
La largeur sera normalement celle demandée pour l'esclave plus
deux fois son option -ipadx et la hauteur sera normalement
la hauteur demandée plus deux fois son option-ipady.
Néanmoins, si l'option -fill est x ou both
alors la largeur de l'esclave est étendue pour remplir la largeur de la parcelle,
moins deux fois l'option -padx .
Si l' option -fill est y ou both
alors la hauteur de l'esclave est augmentée pour remplir la largeur de la parcelle,
moins deux fois l'option -pady .
- [3]
-
Le packer positionne l'esclave au-dessus de sa parcelle.
Si l'esclave est plus petit que la parcelle alors l'option -anchor
détermine où l'esclave sera placé dans la parcelle.
Si -padx ou -pady sont différents de zéro, alors la donné
quantité de remplissage externe sera toujours laissée entre l'esclave et les limites de la parcelle.
Une fois qu'un esclave donné a été packé, la surface de sa parcelle
est soustraite de la cavité, laissant une cavité rectangulaire
plus petite pour l'esclave suivant.
Si un esclave n'utilise pas toute sa parcelle, l'espace restant
dans la parcelle ne sera pas utilisé par les esclaves suivants.
Si la cavité doit devenir trop petite pour satisfaire les besoins
d'un esclave,il lui sera donné l'espace restant
dans la cavité.
Si la cavité se reduit à une taille nulle, alors tous les esclaves restant
dans la packing list seront enlevés de l'ecran jusqu'à ce que
la fenêtre maître redevienne assez vaste pour les acceuillir tous.
Si une fenêtre maître est tellement grande qu'il reste de l'espace
au-dessus une fois que tous les esclaves ont été packés, alors l'espace supplémentaire est distribué uniformément entre tous les esclaves
pour lesquels l'option -expand est fixée.
L'espace horizontal est distribué entre les
esclaves expansibles dont l'option -side est left ou right,
et l'espace vertical est distribué entre les
esclaves expansibles dont l'option -side est top ou bottom.
Le packer calcule normalement la taille du maître pour qu'il
satisfasse exactement les besoins des ses esclaves, et fixe
la largeur et hauteur demandée du maître à ces dimensions.
Ceci provoque la propagation de l'information de géometrie au travers
de la hiérarchie des fenêtres jusqu'à la fenêtre top-level donc le sous-arbre entier
modifie sa taille pour satisfaire les besoins des fenêtres feuilles.
Néanmoins, la commande pack propagate peut être utilisée pour
désactiver la propagation pour un ou plusieurs maîtres.
Si la propagation est désactivée alors le packer ne fixera pas
la largeur et la hauteur demandée du maître.
Ceci peut être utile si, par exemple, vous souhaitez spécifier une taille fixe pour une
fenêtre maître.
Le maître de chaque slave doit aussi être le parent de l'esclave
(par défaut) ou un descendant du parent de l'esclave.
Cette restriction est nécessaire pour garantir que l'esclave
peut être placé au-dessus de n'importe quelle partie visible du maître
sans danger que l'esclave soit réduit par son parent.
Si le maître d'un esclave n'est pas son parent alors vous devez vous assurer
que l'esclave est au dessus du maître dans l'ordre d'empilement.
Autrement le maître cachera l'esclave et il apparaîtra que
l'esclave n'a pas été packé correctement.
Le moyen le plus facile de s'assurer que l'esclave est au dessus du maître est
de créer la fenêtre maître en premier: la fenêtre la plus récemment créée
sera plus haute dans l'ordre d'empilement.
Ou, vous pouvez utiliser les commandes raise et lower pour changer
l'ordre d'empilement soit du maître soit de l'esclave.
gestionnaire de géométrie, location, packer, parcel, propagation, size
Copyright © 1990-1994 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.
Copyright © 1995-1997 Roger E. Critchlow Jr.
Copyright © 2003 - Le Portail Tcl/Tk Francophone.