Écrit par Neil Deakin.
Traduit par Gnunux (14/11/2003).
Page originale :
http://www.xulplanet.com/tutorials/xultu/window.html
Nous allons créer un simple outil de recherche de fichiers tout le long de ce tutoriel. Avant tout, cependant, nous devons regarder la syntaxe de base d'un fichier XUL.
Un fichier XUL peut avoir n'importe quel nom mais il doit avoir
l'extension .xul
. Le fichier XUL le plus simple a la structure suivante :
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window
id="findfile-window"
title="Recherche de fichiers"
orient="horizontal"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
...
</window>
Cette fenêtre ne fera rien tant qu'elle ne comportera pas d'élements d'interface utilisateur. Cela sera ajouté à la section suivante. Voici l'analyse ligne par ligne du code ci-dessus :
<?xml version="1.0"?>
HTML
au début d'un fichier HTML.
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window
window
(ici il y en a quatre). Dans cet exemple, chaque attribut est placé sur une
ligne séparée mais il n'est pas obligé qu'ils le soient.
id="findfile-window"
id
est utilisé comme un identifiant de sorte
que la fenêtre puisse être utilisée par des scripts. Vous mettrez normalement un attribut
id
sur tous les éléments. Le nom peut être ce que vous
voulez bien qu'il soit préférable de choisir quelque chose d'approprié.
title="Recherche de fichier"
title
décrit le texte qui apparaîtra dans la
barre de titre de la fenêtre quand elle sera affiché. Dans ce cas-ci le texte
Recherche de fichier sera affiché.
orient="horizontal"
orient
spécifie l'arrangement des éléments de la
fenêtre. La valeur horizontal indique que les éléments
doivent être placés horizontalement dans la fenêtre. Vous pouvez également utiliser la
valeur vertical qui signifie que les articles sont affichés
en colonne. C'est la valeur par défaut, ainsi vous pouvez ne pas mettre l'attribut
si vous souhaitez avoir l'orientation verticale.
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
window
pour indiquer que tous ses enfants sont XUL. Notez que cet URL n'est jamais
téléchargé réellement. Mozilla reconnaitra cet URL en interne.
...
</window>
window
à la fin du fichier.
Afin d'ouvrir une fenêtre XUL, il y a plusieurs méthodes qui peuvent être employées. Si vous n'êtes qu'à l'étape de développement, vous pouvez juste taper l'URL (commencant par chrome:, file: ou d'autre type d'URL) dans la barre de localisation d'une fenêtre du navigateur Mozilla. Vous devriez également pouvoir double-cliquer sur le fichier dans votre gestionnaire de fichier, supposant que les fichiers XUL sont associés à Mozilla. La fenêtre XUL apparaîtra cependant dans la fenêtre de navigateur et non dans une nouvelle, mais c'est souvent suffisant durant les premières étapes de développement.
La manière correcte, naturellement, est d'ouvrir la fenêtre en utilisant JavaScript.
Aucune nouvelle syntaxe n'est nécessaire, vous pouvez employer la fonction
window.open()
comme pour tout document HTML. Cependant, une option additionnelle, appelée chrome
est nécessaire pour indiquer au navigateur que le document à ouvrir est un chrome.
Celle-ci s'ouvrira sans barre d'outil, sans menu et sans aucun élément qu'une
fenêtre de navigateur dispose normalement. La syntaxe est décrite ci-dessous:
window.open(url,windowname,flags);
où flags contient l'élément "chrome". Exemple:
window.open("chrome://navigator/content/navigator.xul", "bmarks",
"chrome,width=600,height=300");
Commençons par créer le fichier de base pour la boite de dialogue de recherche de fichier. Créez un fichier appelé findfile.xul et mettez-le dans un nouveau répertoire quelque part. L'emplacement importe peu, mais le dossier chrome/findfile/content/findfile est un endroit adéquat. Ajoutez au fichier le squelette XUL montré au debut de cette page et sauvegardez-le.
Vous pouvez utiliser le parametre en ligne de commande -chrome pour indiquer le fichier XUL à ouvrir au démarrage de mozilla. Si ceci n'est pas spécifié, la fenêtre par défaut s'ouvrira (Habituellement la fenêtre de navigateur). Par exemple, nous pourrions ouvrir la boite de dialogue de recherche de fichier avec l'une des commandes suivantes :
mozilla -chrome chrome://findfile/content/findfile.xul
mozilla -chrome resource:/chrome/findfile/content/findfile/findfile.xul
Si vous utilisez cette commande en ligne de commande (dans l'hypothèse que cela soit possible sur votre plateforme), la boite de dialogue de recherche de fichier s'ouvrira par défaut au lieu de la fenêtre de navigateur de Mozilla. Naturellement, puisque nous n'avons rien mis dans la fenêtre, rien ne semblera s'être produit.
Pour voir l'effet, la commande suivante ouvre la fenêtre de signets :
mozilla -chrome chrome://communicator/content/bookmarks/bookmarks.xul
Dans la section suivante, nous ajouterons des boutons dans la fenêtre.