Dans cette section, nous verrons comment étendre des définitions XBL existantes.
Héritage
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 'https://www' au début de sa valeur lorsque la touche F4 est pressée.
Exemple 1 : Source
<binding id="textboxwithhttp" extends="chrome://global/content/bindings/textbox.xml#textbox"> <handlers> <handler event="keypress" keycode="VK_F4"> this.value="https://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'.
Champ de saisie semi-automatique
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.)
Dans la prochaine section, nous verrons un exemple d'élément graphique défini en XBL.
Interwiki