Envoyé par : Tulan
Date : 18/04/2005 18:59
J'ai un problème ennuyeux avec un grid récalcitrant.
J'utilise un grid pour afficher un tableau contenant de nombreuses lignes complexes (images, champs ...), donc non réalisable avec un listbox ou un tree.
Je n'arrive pas à contraindre la hauteur du grid en fonction de la hauteur de la fenêtre, avec un overflow pour faire défiler les lignes. Si je ne définis pas de variable height fixe en pixels, le grid affiche la totalité de son contenu sans tenir compte du paramètre overflow.
Ci-dessous un exemple, dans lequel je n'ai garder qu'une petite partie des infos:
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" id="main" title="Test"> <grid> <columns> <column flex="1"/> <column flex="1"/> <column flex="1"/> <column flex="1"/> <column flex="1"/> <column flex="1"/> </columns> <rows> <!-- TITRE TABLEAU --> <row align="center" pack="center" style="background-color:white"> <label value="Destination"/> <label value="Pulse Model"/> <label value="Taux Actifs"/> <label value="Floor Price"/> <label value="Fournisseur"/> <label value="Volume veille"/> </row> <!-- ######################### --> <!-- a répéter 100 ou 200 fois --> <row align="center" pack="center"> <label value="Algeria - Mobile - Orascom"/> <label value="30sec / 6sec"/> <hbox> <label value="0.1250"/> <label value="0.0265"/> <label value="0.0256"/> </hbox> <hbox pack="center" align="center" flex="1"> <label value="EUR"/> <label value="0.0212"/> </hbox> <label value="Teleglobe UK" /> <label value="532" /> </row> <!-- ######################### --> </rows> </grid> </window>
Ma question est donc de savoir où placer ce overflow maudit pour obtenir une barre de défilement sans avoir à définir une hauteur fixe pour ce tableau de données :)
Envoyé par : laurentj
Date : 19/04/2005 10:28
Je pense qu'il faut que tu joue avec le flex et l'orientation de la fenetre. essaye un truc du genre
<window orient="horizontal"> <grid flex="1">
N'hésite pas à jouer avec la démo du modèle de boite pour comprendre les mécanismes.
Ensuite, pour l'overflow, il faut je pense le mettre sur le grid.
Envoyé par : Tulan
Date : 19/04/2005 11:25
C'est bon j'ai trouvé d'où venait mon erreur ... tout simplement l'élément parent de cet élément grid (un row d'un autre grid, servant à positionner les boutons) n'avait pas de paramètre flex ... ... Pfffff
Sinon en HTML j'essaie de prendre l'habitude de coder mon code de manière sémantique, pour ne faire la mise en page que par le CSS (positionnement et habillage). Ca m'a l'air plus complexe de faire de même en XUL, notamment les paramètres évolués de positionnement. Je me trompe?
Envoyé par : laurentj
Date : 19/04/2005 12:54
tout les parametres flex align pack etc sont dispo en css si tu le souhaites : -moz-box-pack, -moz-box-align, -moz-box-direction, -moz-box-flex etc...
Tu peux même activer le modèle de boite xul sur un element HTML ou autre en utilisant la value -moz-box au style display :
display : -moz-box
ou le désactiver sur un element xul
display : block;
(ou inline etc..)
M'enfin je ne garantis pas le résultat
Voir sur la page http://xulfr.org/wiki/RessourcesWeb la liste des fichiers où tu trouveras tout les styles que tu peux utiliser dans Mozilla.
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.