Écrit par Neil Deakin
,
mise à jour par les contributeurs à MDC
.
Traduit par Nadine Henry (17/09/2004), mise à jour par Alain B. (04/04/2007) .
Page originale :
http://developer.mozilla.org/en/docs/XUL_Tutorial/XBL_Inheritance
Attention : Ce tutoriel est ancien et n'est pas mis à jour. Bien que beaucoup d'informations soient encore valables pour les dernières versions de gecko, beaucoup sont aussi obsolètes. Il est préférable d'aller consulter cette page sur la version française de ce tutoriel sur developer.mozilla.org.
Dans cette section, nous verrons comment étendre des définitions XBL existantes.
Parfois vous pouvez vouloir créer un élément graphique XBL qui est similaire à un élément existant. Par exemple, disons que vous souhaitez créer un bouton XBL avec une fenêtre surgissante. Une manière de faire pour le créer est de dupliquer le code XBL existant des boutons. Cependant, il serait préférable de simplement étendre ce code.
N'importe quelle liaison peut être étendue avec une autre. La liaison fille peut ajouter des propriétés, des méthodes et des gestionnaires d'événements. La liaison fille aura toutes les caractéristiques qui la définissent en plus des caractéristiques de la liaison dont elle hérite (et celles dont cette liaison aura elle même hérité et ainsi de suite dans l'arbre).
Pour étendre une liaison existante, ajoutez un attribut extends
à
l'intérieur de la balise binding
. Par exemple, la liaison suivante
crée un champ de saisie qui ajoute le texte http://www au début de sa valeur lorsque la touche
F4 est pressée.
Exemple 11.7.1 : Source
<binding id="textboxwithhttp"
extends="chrome://global/content/bindings/textbox.xml#textbox">
<handlers>
<handler event="keypress" keycode="VK_F4">
this.value="http://www"+value;
</handler>
</handlers>
</binding>
L'élément XBL étend ici les fonctionnalités du champ de saisie XUL
textbox
.
L'URL donnée dans l'attribut extends
ci-dessus est l'URL de la liaison de la balise
textbox
.
Elle signifie que la liaison hérite de tous les contenu et comportement fournis par la
liaison de textbox
. En plus, nous ajoutons un gestionnaire qui
répond à l'événement keypress.
L'exemple ci-dessus est similaire au dispositif de saisie semi-automatique qui fonctionne sous Mozilla. Un champ de saisie qui supporte la saisie semi-automatique n'est qu'un champ de saisie basique étendu avec une liaison XBL.
Le champ de saisie semi-automatique ajoute une gestion spéciale d'événement de telle
sorte que lorsqu'une URL est tapée, un menu va surgir proposant des suites de saisies possibles.
Vous pouvez aussi l'utiliser dans vos propres applications. Créez simplement un
textbox
avec deux attributs spéciaux.
<textbox type="autocomplete" searchSessions="history"/>
Déclarez l'attribut type
à autocomplete pour ajouter un
dispositif de saisie semi-automatique à un champ de saisie existant. Déclarez searchSessions
pour indiquer le type de données à surveiller. Dans ce
cas, la valeur history surveillant les URLs dans l'historique est utilisée (Vous
pouvez aussi utiliser la valeur addrbook pour surveiller les adresses dans le carnet
d'adresses.)
Firefox utilise un mécanisme d'autocomplétion différent de celui de la suite Mozilla, consultez XUL:textbox (Firefox autocomplete).
Dans la prochaine section, nous verrons un exemple d'élément graphique défini en XBL.
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.