grid

 

grid - Gestionnaire de géométrie qui dispose les widgets dans une grille


SYNTAXE

 grid option arg ?arg ...?

DESCRIPTION


La commande grid est utilisée pour communiquer avec le gestionnaire de géométrie grille, qui dispose les widgets en lignes et colonnes dans un autre fenêtre, appelée le maître géométrique (ou fenêtre maître). La commande grid peut avoir une parmi plusieurs formes, dépendantes de l'argument option:

grid slave ?slave ...? ?options? Si le premier argument de grid est un nom de fenêtre (n'importe quelle valeur commençant avec ``.''), alors la commande est traitée de la même façon que grid configure.

grid bbox master ?column row? ?column2 row2? Sans arguments, les coordonnées de confinement (en pixels)de la grille sont retournées. La valeur de retour consiste en 4 entiers. Les deux premiers sont la distance en pixels de la fenêtre maître (x puis y) au coin supérieur gauche de la grille, et les deux entiers suivants sont les largeur et hauteur de la grille, également en pixels. Si un seul column et row est spécifié sur la ligne de commande, alors les coordonnées de confinement de cette cellule sont retournées, où la cellule en haut à gauche est numérotée en partant de zéro. Si les deux arguments column et row sont spécifiés, alors les coordonnées de confinement réparties sur les lignes et colonnes indiquées sont retournées.

grid columnconfigure master index ?-option valeur...? Lit ou écrit les propriétés de colonne de la colonne index du maître géométrique, master. Les options valides sont -minsize, -weight et -pad. Si une ou plusieurs options sont fournies, alors index peut être donné comme une liste d'index de colonne sur lesquels les options de configuration opéreront. L'option -minsize définit la taille minimum, en unités d'écran, qui sera permise pour cette colonne. L'option -weight (une valeur entière) définit la pondération relative pour la répartition d'espace supplémentaire dans les colonnes. Une pondération de zéro (0) indique que la colonne ne déviera pas de sa taille demandée. Une colonne dont la pondération est de deux s'étendra de deux fois le rapport d'une colonne de pondération un quand de l'espace supplémentaire est alloué au contenant (si ceci ne vous semble pas trés clair, jouez avec une grille contenant un widget, faites varier la valeur donnée à -weight et redimensionnez la fenêtre N.D.T.). L'option -pad indique le nombre d'unités d'écran qui sera ajouté à la plus grande fenêtre contenue complètement dans cette colonne quand le gestionnaire de géométrie grille demande une taille à la fenêtre contenante. Si seulement une option est donnée, sans valeur, la valeur courante de cette option est retournée. Si seulement la fenêtre maître et un index est spécifié, tous les paramètres courant sont retournés dans une liste de paires "-option valeur".

grid configure slave ?slave ...? ?options? Les arguments consistent en les noms d'une ou plusieurs fenêtres esclaves suivis par des paires d'arguments qui indiquent comment gérer les esclaves. Les caractères -, x et ^, peuvent être spécifiés à la place d'un nom de fenêtre pour modifier l'emplacement par défaut d'un slave, comme décrit dans la section ``PLACEMENT RELATIF'' , ci-dessous. Les options suivantes sont supportées:

-column n Insère l'esclave à la nième colonne de la grille. Les numéros de colonne commencent par 0. Si cette option n'est pas fournie, alors l'esclave est disposé juste à droite de l'esclave précédemment spécifié par l'appel à grid, ou en colonne "0" s'il est le premier. Pour chaque x qui précède immédiatement le slave, la position de la colonne est incrémentée de un. Ainsi le x représente une colonne vide dans cette ligne de la grille.

-columnspan n Répartit l'esclave dans n colonnes de la grille. Le défaut est une colonne, à moins qu'un nom de fenêtre soit suivi par -, auquel cas la répartition est incrémentée de un pour chaque - immédiatement suivant.

-in autre Insère l'esclave(s) dans la fenêtre maître indiquée par autre. Le défaut est la première fenêtre esclave du parent.

-ipadx amount Amount indique le remplissage horizontal interne disposé de chaque coté de l'esclave(s). Cet espace est ajouté à l'intérieur des limites de l'esclave(s). Amount doit être une distance d'écran valide, comme 2 ou .5c. Il est par défaut de 0.

-ipady amount Amount indique le remplissage vertical interne disposé sur et sous l'esclave(s). Cet espace est ajouté à l'intérieur des limites de l'esclave(s). Il est par défaut de 0.

-padx amount Amount indique le remplissage horizontal externe disposé de chaque coté de l'esclave(s), en unités d'écran. Amount peut être une liste de deux valeurs pour spécifier le remplissage à gauche et à droite séparément. Amount est par défaut de 0. Cet espace est ajouté en dehors des limites de l'esclave(s).

-pady amount Amount indique le remplissage vertical externe disposé sur et sous l'esclave(s), en unités d'écran. Amount peut être une liste de deux valeurs pour spécifier le remplissage dessus et dessous séparément. Amount est par défaut de 0. Cet espace est ajouté en dehors des limites de l'esclave(s).

-row n Insère l'esclave dans la nième ligne de la grille. Les numéros de ligne commencent par 0. Si cette option n'est pas fournie, alors l'esclave est disposé sur la même ligne que le précédent esclave spécifié dans cet appel à grid, ou la première ligne inoccupée si c'est le premier esclave.

-rowspan n Insère l'esclave sur n lignes de la grille. Le défaut est une ligne. Si la commande grid suivante contient des caractères ^ au lieu d'esclaves alignés avec les colonnes de cet esclave, alors le rowspan de cet esclave est augmenté de un.

-sticky style Si la cellule d'un esclave est plus grande que ses dimensions demandées, cette option peut être utilisée pour placer (ou étirer) l'esclave à l'intérieur de sa cellule. Style est une chaîne qui contient zéro ou plusieurs caractères n, s, e ou w. La chaîne peut éventuellement contenir des espaces ou des virgules, mais ils sont ignorés. Chaque lettre se réfère à un coté (nord, sud, est, ou ouest) auquel l'esclave sera "collé". Si à la fois n et s (ou e et w) sont spécifiés, l'esclave sera étiré de manière à remplir la hauteur (ou la largeur) de sa cavité. L'option sticky est comparable à la combinaison de -anchor et -fill qui est utilisé par pack. Le défaut est {}, où l'esclave est centré dans sa cavité, at sa taille demandée.

Si un des esclaves est déjà géré par le gestionnaire de géométrie alors toutes les options non spécifiées prendront les précédentes valeurs plutôt que celles par défaut.

grid forget slave ?slave ...? Supprime chacun des slaves de la grille et libère leurs fenêtres. Les esclaves ne seront plus gérés par le gestionnaire de géométrie grille. Les options de configuration de cette fenêtre sont perdues, et si l'esclave est géré à nouveau par le gestionnaire de géométrie grille, les paramètres par défaut sont utilisés.

grid info slave Retourne une liste dont les éléments sont la configuration courante de l'esclave indiqué par slave sous la même forme option-valeur qui serait indiquée à grid configure. Les deux premiers éléments de la liste sont ``-in mastermaster'' est le maître de l'esclave.

grid location master x y Partant des valeurs x et y en unités d'écran relatives à la fenêtre maître, les numéros de colonne et de ligne à cet emplacement x et y sont retournés. Pour les emplacement situés au dessus ou à gauche de la grille, -1 est retourné.

grid propagate master ?boolean? Si boolean a une valeur booléenne vraie comme 1 ou on alors la propagation est activée pour master, qui doit être un nom de fenêtre (voir ``PROPAGATION DE LA GÉOMÉTRIE ci-dessous). Si boolean a une valeur booléenne fausse alors la propagation est désactivée pour master. Dans chacun de ces 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 master''. La propagation est activée par défaut.

grid rowconfigure master index ?-option valeur...? Demande ou définit les propriétés de ligne de la ligne index du maître géométrique, master. Les options valides sont -minsize, -weight et -pad. Si une ou plusieurs options sont fournies, alors index peut être donné comme une liste d'index de lignes à laquelle les options de configuration s'appliqueront. L'option -minsize définit la taille minimum, en unités d'écran, qui sera permise pour cette ligne. L'option -weight (une valeur entière) définit la pondération relative pour la répartition d'espace supplémentaire dans les lignes. Une pondération de zéro (0) indique que la ligne déviera pas de sa taille demandée. Une ligne dont la pondération est de deux s'étendra de deux fois le rapport d'une colonne de pondération un quand de l'espace supplémentaire est alloué au contenant. L'option -pad indique le nombre d'unités écrans qui sera ajouté à la plus grande fenêtre complètement contenue dans cette ligne quand le gestionnaire de géométrie grille demande une taille de la part de la fenêtre contenante. Si seulement une option est spécifiée, sans valeur, la valeur courante de cette option est retournée. Si seules les fenêtres maître et index sont spécifiées, tous les paramètres courants sont retournés en une liste de paires "-option valeur".

grid remove slave ?slave ...? Enlève chacun des slave de la grille du maître et libère leurs fenêtres. Les esclaves ne seront plus gérés par le gestionnaire de géométrie grille. Les options de configuration de cette fenêtre sont perdues, et si l'esclave est géré à nouveau par le gestionnaire de géométrie grille, les paramètres par défaut sont utilisés.

grid size master Retourne la taille de la grille (en colonne puis lignes) de master. La taille est déterminée soit par le slave occupant la plus grande ligne ou colonne, ou la plus grande ligne ou colonne avec une minsize, weight, ou pad différente de zéro.

grid esclaves master ?-option valeur? Si aucunes options ne sont fournies, une liste de tous les esclaves de master est retournée, les plus récents gérés en premier. Option peut être ou -row ou -colonne qui retournera seulement l'esclave dans la ligne (ou colonne) spécifiée par valeur.


PLACEMENT RELATIF


La commande grid contient un ensemble limité de possibilités qui permet de créer des dispositions sans spécifier de paramètres de ligne et de colonne pour chaque esclave. Ceci permet aux esclaves d'être modifiés, ajoutés, ou enlevés sans avoir besoin de spécifier explicitement les paramètres de lignes et de colonnes. Quand aucune information de lignes et de colonnes n'est spécifiée pour un slave, les valeurs par défaut sont choisies pour column, row, columnspan et rowspan au moment ou leslave est pris en charge. Les valeurs sont choisies en se basant sur la disposition courante de la grille, la position du slave relative aux autres slaves dans la même commande grille, et à la présence des caractères -, ^, et ^ dans la commande grid où les noms des slave sont normalement attendus.

- Augmente la répartition du slave à gauche. Plusieurs -sur une ligne augmenteront successivement la répartition. Un - ne doit pas suivre un ^ ou un x.

x Laisse une colonne vide entre le slave de gauche et le slave de droite.

^ Augmente le rowspan du slave au dessus des ^'s de la grille. Le nombre de ^'s dans une ligne doit correspondre au nombre de colonnes réparties sur le slaveau dessus de celle-ci.


L'ALGORITHME GRILLE


Le gestionnaire de géométrie grille dispose ses esclaves en trois étapes. A la première étape, la taille minimum nécessaire pour recevoir tous les esclaves est calculée, alors (si la propagation est activée), une requête est envoyée à la fenêtre maître pour obtenir cette taille. A la seconde étape, la taille demandée est comparée à la taille actuelle du maître. Si les tailles sont différentes, alors des espaces sont ajoutés ou enlevés de la disposition. A l'étape finale, chaque esclave est positionné dans ses ligne(s) et colonne(s) en tenant compte de son flag sticky.

Pour calculer la taille minimum d'une disposition, le gestionnaire de géométrie grille note d'abord tous les esclaves avec une valeur columnspan et rowspan de un, et calcule la taille nominale de chaque ligne ou colonne de minsize, ou la somme du padding plus la taille du plus grand esclave, qui est toujours supérieure. Ensuite les esclaves dont les rowspans ou columnspans sont supérieurs à un sont examinés. Si un groupe de lignes ou de colonnes à besoin d'être agrandi de manière à recevoir ses esclaves, alors de l'espace supplémentaire est ajouté à chaque ligne ou colonne du groupe en fonction de son weight. Pour chaque groupe dont les weights sont tous à zéro, l'espace supplémentaire est réparti équitablement.

Pour les maîtres dont la taille est plus grande que la disposition demandée, l'espace supplémentaire est réparti conformément à la pondération relative des lignes et colonnes. Si toutes les pondérations sont égales à zéro, la disposition est centrée à l'intérieur du maître. Pour les maîtres dont la taille est plus petite que la disposition demandée, l'espace est pris sur les lignes et colonnes conformément à leur pondération relative. Néanmoins, une fois qu'une colonne ou une ligne a été réduite à sa taille minimale, sa pondération est considérée nulle. Si plus d'espace que permis doit être enlevé d'une disposition, comme quand toutes les lignes ou colonnes ont leurs tailles minimales, la disposition est réduite en bas et à droite.


PROPAGATION DE LA GÉOMÉTRIE


Le gestionnaire de géométrie grille calcule normalement la taille du maître pour l'adapter exactement a ses esclaves, et positionne les largeur et hauteur du maître à ces dimensions. Ceci provoque la propagation de l'information géométrique au travers de la hiérarchie des fenêtres d'une fenêtre top-level, ainsi le sous-arbre entier des tailles s'adapte aux besoins des fenêtres feuilles. Néanmoins, la commande grid propagate peut être utilisée pour désactiver la propagation pour un ou plusieurs maîtres. Si propagation est désactivée alors la grille ne modifiera pas les largeur et hauteur de la fenêtre maître. Ceci peut être utile si, par exemple, vous souhaitez qu'une fenêtre maître ait la taille fixe size que vous spécifiez.


RESTRICTIONS POUR LES FENÊTRES MAÎTRES


Le maître de chaque esclave doit être soit le parent de l'esclave (par défaut) soit 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 reduit par son parent. De plus, tous les esclaves dans un appel à grid doivent avoir le même maître.


ORDRE D'EMPILEMENT


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 masquera l'esclave et il semblera que l'esclave n'a pas été pris en charge 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 d'abord: la fenêtre la plus récemment créée sera au-dessus dans l'ordre d'empilement.


CRÉDITS


La commande grid est basée sur des idées extraites du gestionnaire de géométrie GridBag écrit par Doug. Stein, et du gestionnaire de géométrie blt_table, écrit par George Howlett.


copyright © 2003 - Le Portail Tcl/Tk Francophone.


Catégorie Manuel Tcl/Tk