Extraits de code:Barre d'outils
Un article de MDC.
Sommaire |
[modifier] Ajout d'un bouton de barre d'outils
Deux tutoriels sont disponibles :
- Un tutoriel pas à pas pour les débutants : Boutons de barre d'outils personnalisés
- Un tutoriel décrivant les étapes nécessaires pour ajouter un bouton de barre d'outils supposant que vous disposiez d'une extension fonctionnelle et que vous connaissiez les bases du développement d'une extension : Création de boutons de barre d'outils
[modifier] Ajout d'un bouton par défaut
Lors de l'installation de votre extension, si vous ajoutez dans la barre d'outils un bouton la concernant en écrasant Barre d'outils - Personnaliser, ce bouton n'est pas disponible par défaut. L'utilisateur doit le déplacer dans la barre d'outils. Voici un bout de code pour faire apparaître votre bouton dans la barre d'outils par défaut, après la première installation et le redémarrage du XPI.
L'ajout d'un bouton par défaut est une pratique discutable, car difficile à réaliser de manière fiable : l'utilisateur peut avoir masqué la barre d'outils sur laquelle vous ajoutez votre bouton, ou avoir personnalisé ses barres d'outils d'une manière empêchant votre code de bien fonctionner.
Un bug a été rempli pour que Firefox fournisse une API pour cela.
[modifier] Notes
- Cet exemple est spécifique à Firefox, mais il devrait aussi fonctionner avec Thunderbird en mettant les nœuds corrects.
- N'ajoutez votre bouton que s'il apporte une réelle valeur ajoutée, et sera un point d'entrée fréquent pour votre extension. Pensez que l'espace est limité dans l'interface utilisateur, et à ce que veut réellement l'utilisateur.
- Ce code doit être inclus dans un overlay de browser.xul.
[modifier] Exemple
try {
var firefoxnav = document.getElementById("nav-bar");
var curSet = firefoxnav.currentSet;
if (curSet.indexOf("my-extension-button") == -1)
{
var set;
// Placez le bouton avant l'urlbar
if (curSet.indexOf("urlbar-container") != -1)
set = curSet.replace(/urlbar-container/, "my-extension-button,urlbar-container");
else // à la fin
set = firefoxnav.currentSet + ",my-extension-button";
firefoxnav.setAttribute("currentset", set);
firefoxnav.currentSet = set;
document.persist("nav-bar", "currentset");
// Si vous ne faites pas l'appel suivant, des choses marrantes peuvent se produire
try {
BrowserToolboxCustomizeDone(true);
}
catch (e) { }
}
}
catch(e) { }