Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Lecture, modifications, etc.. de préférences, comment ça marche ?

Envoyé par : chrislabricole

Date : 01/09/2008 19:35

Bonsoir,

Je voudrai savoir comment un fichier de préférence marche, comment le mettre en œuvre dans mon application ?

Merci à vous !

# Re: Lecture, modifications, etc.. de préférences, comment ça marche ?

Envoyé par : Raphael

Date : 02/09/2008 07:29

Tu as énormément de Doc très bien faite sur :

  • MDC
  • Le Wiki de XulFR
  • Le forum de XulFR

C'est très simple, tu verras.

# Re: Lecture, modifications, etc.. de préférences, comment ça marche ?

Envoyé par : chrislabricole

Date : 02/09/2008 12:16

J'ai trouvé ça : http://www.xulfr.org/xulplanet/xulqa/q_p(..)

Ça, ça explique comment définir par défaut et modifier les préférences, mais comment les faire agir ?

Genre dans mon mod, j'ai une petites icone qui est dans la barre d'état, et comment le faire afficher selon la config ?

Merci !

# Re: Lecture, modifications, etc.. de préférences, comment ça marche ?

Envoyé par : Paul Rouget

Date : 02/09/2008 15:39

Et bien tu l'affiches si ta préférence est à true, et tu ne l'affiches pas si elle est à false.

... mais j'ai peut-être mal compris ta question.

# Re: Lecture, modifications, etc.. de préférences, comment ça marche ?

Envoyé par : chrislabricole

Date : 02/09/2008 17:02

Ouais c'est ça, mais comment le faire afficher (ou non) selon ce true ou ce false ?

Merci :)

# Re: Lecture, modifications, etc.. de préférences, comment ça marche ?

Envoyé par : Paul Rouget

Date : 02/09/2008 18:02

Tu passes ton élément XUL en "display: none".

# Re: Lecture, modifications, etc.. de préférences, comment ça marche ?

Envoyé par : chrislabricole

Date : 02/09/2008 18:55

Ah ok, c'est déjà plus clair, comment mettre en œuvre cette technique ?

Il faut faire une fonction au chargement du Mod qui rajoute display:none si est égal à false, et qui rajoute rien si c'est true ? comment faire ça exactement ?

Sinon, je trouve pas de tutoriel illustrant ça...

Merci :)

# Re: Lecture, modifications, etc.. de préférences, comment ça marche ?

Envoyé par : Paul Rouget

Date : 02/09/2008 22:23

C'est du DOM ce qu'il y a de plus classic:

tonElement[mode="invisible"] {
 display: none;
}

Tu checkes si ta pref est à true ou pas.

if (pref == true) {
  tonElement.removeAttribute("mode");
} else {
  tonElement.setAttribute("mode", "invisible");
}

On plus directement, tu attaques le style de ton élément en JS:

tonElement.style.display = "none";

# Re: Lecture, modifications, etc.. de préférences, comment ça marche ?

Envoyé par : chrislabricole

Date : 02/09/2008 23:59

Ah ok !

Alors j'ai tenté la solution mais ça ne marche pas, je me suis gouré quelque par :$

Voici les codes : monMod.xul (fichier principal qui appel le petit icon dans la barre de statut):

...
<?xml-stylesheet href="chrome://monMod/skin/monMod.css" type="text/css"?>
...
<script type="application/x-javascript" src="chrome://monMod/content/monMod.js"></script>
...
<statusbar id="status-bar" mode="">
<statusbarpanel id="monMod-status" label="&monMod;" context="contextmenu">
<image id="monMod-status-image" src="chrome://monMod/skin/icon16.gif" tooltip="monMod-tooltip" ondblclick="window.openDialog('chrome://monMod/content/options.xul',null,'chrome,centerscreen').focus();" />
</statusbarpanel>
</statusbar>

Fichier monMod.js :

function onAppliLoad(){
 var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIProperties);
 if( prefs.getPrefType("extensions.urlminimizer.statusbaricon") == true ){
  document.getElementById('status-bar').removeAttribute("mode");
  document.getElementById('status-bar').style.display = "none";
 } else {
  document.getElementById('status-bar').setAttribute("mode", "invisible");
  document.getElementById('status-bar').style.display = "block";
 }
}

window.onload = function() {
 onAppliLoad();
}

et monMod.css :

#status-bar[mode="invisible"] {
	display: none;
}

Pour le système de configuration, c'est une autre histoire, je ferais avec about:config pour commencer :P (je sais que je dois redemarrer le navigateur pour voir le résultat puisque j'ai pas la modification du CSS en "live")

Voilà, merci de toute votre aide ! :)

# Re: Lecture, modifications, etc.. de préférences, comment ça marche ?

Envoyé par : cokinou

Date : 03/09/2008 08:16

Je pense que tu dois jamais le voir afficher ton élément status-bar, non ?

Quand tu fais

document.getElementById('status-bar').setAttribute("mode", "invisible");

c'est équivalent à

document.getElementById('status-bar').style.display = "none";

Donc dans ta fonction tu caches l'élement via display = "none" quand ta préférence est à true et tu le cache via setAttribute("mode", "invisible") quand ta préférence est à false Il faut que tu le cache que dans un cas, via :

 document.getElementById('status-bar').setAttribute("mode", "invisible");
 document.getElementById('status-bar').style.display = "none";

ou plus simplement (ca suffit) :

 document.getElementById('status-bar').setAttribute("mode", "invisible");

En gros ca te donnerai un truc du genre :

function onAppliLoad(){
    var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIProperties);
    if( prefs.getPrefType("extensions.urlminimizer.statusbaricon") == true ){
        document.getElementById('status-bar').removeAttribute("mode");
    } else {
        document.getElementById('status-bar').setAttribute("mode", "invisible");
    }
}

# Re: Lecture, modifications, etc.. de préférences, comment ça marche ?

Envoyé par : chrislabricole

Date : 03/09/2008 12:53

Ok, mais je viens d'y pensé, il faut également enregistrer la préférence aussi non ? sinon à chaque redémarrage de Firefox, l'icone revient... et mettre cet enregistrement dans le IF...

Sinon, j'ai un doute sur la ligne

var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIProperties);

:$

Merci beaucoup !!

# Re: Lecture, modifications, etc.. de préférences, comment ça marche ?

Envoyé par : chrislabricole

Date : 05/09/2008 19:34

Pas de solutions ? :s

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

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.