Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Probs avec menuitem command et observes

Envoyé par : gp974

Date : 31/08/2006 11:31

Bonjour,

J'ai un petit souci avec 'broadcaster'

voici donc un exemple :

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<window
   id="logins-window"
   title="Test"
   orient="horizontal"
   xmlns:html="http://www.w3.org/1999/xhtml"
   xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" >

<script>
<![CDATA[

function foo ()
{
   alert('foo');
}

function switchbrd ()
{
   var bc = document.getElementById('broadc_test');
   if (bc.getAttribute("disabled") == "true")
       bc.setAttribute("disabled", "false");
   else
       bc.setAttribute("disabled", "true");
}

]]>
</script>

<broadcasterset>
    <broadcaster id="broadc_test" disabled="true" />
</broadcasterset>

<commandset>
  <command id="cmd_bc"   oncommand="switchbrd();" />
  <command id="cmd_test" oncommand="foo();" />
</commandset>
 
<vbox flex="1">
    <toolbox>
        <menubar>
            <menu label="Action">
               <menupopup>
                    <menuitem label="Switch disabled" command="cmd_bc" />
                    <menuitem label="Test 1" command="cmd_test"  observes="broadc_test" />
              </menupopup>
           </menu>
       </menubar>
   </toolbox>
</vbox>

</window>

Le disabled ne fonctionne pas dans le menuitem (ce n'est jamais grisé) mais si je replace le command="cmd_test" par oncommand="foo();" alors là ça marche. Y a t-il une chose que je n'est pas compris avec le broadcaster ?

Il faux savoir que je suis avec firefox-1.5.0.X soux XP ou win98 En version mandriva, slackware avec firefox-1.0.XX celà fonctionne.

Fichier XUL indépendant (non déclaré ds le chrome)

Merçi d'avance

# Re: Probs avec menuitem command et observes

Envoyé par : Paul Rouget

Date : 31/08/2006 17:09

Un broadcaster et un command sont en fait les mêmes élements je crois.

Je sais qu'il y a des soucis avec des balises exploitant un <command> en combinaison avec un <broadcaster> et l'attribut disable.

Personnellement, je dois passer mes broadcaster en disable="true" via du JS au chargement de la page, sinon, ça ne fonctionne pas. Donc l'attribut disable doit être passé à true dans la méthode onload de la ta page xul.

# Re: Probs avec menuitem command et observes

Envoyé par : gp974

Date : 01/09/2006 08:36

Hello Paul,

Celà ne marche pas mieux ! Mais ton conseil n'a pas été vain.

il a suffi de déplacer l'observeur du 'menuitem' vers le 'command'

Avant :

<command id="cmd_test" oncommand="foo();" />
...
<menuitem label="Test 1" command="cmd_test"  observes="broadc_test" />

Après

<command id="cmd_test" oncommand="foo();"  observes="broadc_test" />
...
<menuitem label="Test 1" command="cmd_test" />

Et là ... Nickel-chrome ;-)

Merci

A++

Gilles

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.