XML-based User interface Language - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

XML User Interface Language (XUL)
Extension .xul
Type MIME application/vnd.mozilla.xul+xml
Développé par Fondation Mozilla
Type de format Langage de balisage
Spécification Format ouvert

XML-based User interface Language (abréviation XUL) est un langage de description d’interfaces graphiques fondé sur XML créé dans le cadre du projet Mozilla. XUL se prononce zoul en anglais (pour rimer avec cool, mais aussi en hommage au demi-dieu Zoul dans le film S.O.S. Fantômes).

Caractéristiques

XUL comprend un ensemble de balises permettant de définir des boutons, des listes, des menus, ou encore des zones d’édition, bref tous les éléments d’une véritable interface utilisateur. Un tel langage facilite le travail du développeur et permet d’écrire l’interface d’une application aussi aisément qu’une page web.

Le développement d’une application XUL se rapproche du développement d’une application cliente ou client-serveur traditionnelle. À chaque objet graphique sont associés des événements (clic de souris, double-clic, etc.) pour lesquels le développeur doit écrire du code (typiquement en JavaScript) à exécuter par la machine cliente. L’application peut récupérer des données d’un serveur, par exemple via des requêtes HTTP.

Le fait de définir dans un document XML la structure de l’interface graphique permet de réutiliser la même structure d’un environnement à l’autre et même d’un langage de programmation à l’autre. Des moteurs similaires à XUL existent pour GTK+ (Glade), Java, PHP, JavaScript, Flash (MXML), Qt (Qt Designer) et .Net (XAML).

Les deux grandes richesses de XUL sont son extensibilité et la facilité de réutilisation d’éléments. Il est possible de définir ses propres balises pour mettre en place des composants complexes et réutilisables en écrivant un fichier XBL (eXtensible Binding Language). Celui-ci comporte, pour chaque nouveau composant qu’il décrit, une partie décrivant l’aspect graphique du composant, par association des éléments graphiques de base par exemple, et plusieurs parties décrivant son comportement, sous la forme de fonctions JavaScript. Les bindings ainsi définis peuvent hériter les uns des autres, et surcharger leurs contenus ou comportements.

Initialement, XUL a été développé afin de permettre de créer facilement l’interface graphique du navigateur web Mozilla. Un moteur XUL est intégré au moteur Gecko de Mozilla. Actuellement, Mozilla développe XULRunner, qui permet d’exécuter des applications XUL sans Mozilla ou Firefox.

Exemple

Voici une comparaison entre quelques lignes de code XUL et HTML qui affichent toutes deux le traditionnel « Hello World! » :

XUL

        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">         >           >Hello world!>         >       >      

HTML

       <html>         <body>           <p>             Hello World!           </p>         </body>       </html>      

Organisation d'une fenêtre

Une fenêtre XUL est conçue comme un emboîtement de « boîtes » rectangulaires. Une boîte contient des sous-éléments qui sont juxtaposés soit verticalement, soit horizontalement. Ces sous-éléments peuvent être des champs de type texte, des listes déroulantes, des champs affichant du code HTML, et ainsi de suite. Ces sous-éléments peuvent aussi être des boîtes, qui elles-mêmes contiendront d’autres éléments. À l’intérieur de chaque boîte, divers paramètres permettent de paramétrer facilement l’alignement des sous-éléments (à gauche, en haut, centré…) ainsi que leur comportement en cas de redimensionnement de la fenêtre (taille fixe, taille proportionnelle…).

L’affichage de tous ces éléments graphiques peut être configuré en utilisant une feuille de style CSS, ce qui facilite l’accès à XUL pour les développeurs web.

Page générée en 0.069 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise