Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Surcharge (prototypage) de menulist

Envoyé par : aMan

Date : 15/03/2007 11:59

Bonjour tous le monde.

Je me pose une question au sujet du prototypage (surcharge) des méthodes sur un objet xul. Actuellement je travaille avec beaucoup de menulist que je peuple en javascript. Il existe donc des méthodes comme appendItem() qui permet d'ajouter des menuitem dans un menulist sans passé par de la manipulation DOM.

Cependant il n'existe pas de fonction appendMenuSeparator. J'aimerai pouvoir l'intégrer au méthodes des menulist. Comment m'y prendre ?

Je suppose qu'il faut utiliser

   xxxxx.prototype = {
       appendMenuSeparator : function(){
           // la fonction
       }
   }

Mais que dois je mettre à xxxxx en sachant que je veux appliqué cette méthode à toutes les menulist.

Merci d'avance (et bonne ap)

# Re: Surcharge (prototypage) de menulist

Envoyé par : hhf

Date : 15/03/2007 19:45

moi je te dirais plutot de faire un XBL tout simple. Allé je te mache le boulot :

le fichier xml :

<?xml version="1.0" encoding="UTF-8"?>
<bindings 	xmlns="http://www.mozilla.org/xbl" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:xbl="http://www.mozilla.org/xbl"
			xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
	<binding id="monmenulist" extends="chrome://global/content/bindings/menulist.xml#menulist">
		<content>
			<children/>
		</content>
		<implementation>
			<constructor><![CDATA[
				this.dispatchEvent(evt); 
			]]></constructor>
			<method name="appendMenuSeparator ">
				<body><![CDATA[
							...
				]]></body>
			</method>
		</implementation>
	</binding>
</bindings>

le fichier css

  menulist {
     -moz-binding: url("chemin/mesxbl.xml#monmenulist");
  }

dans le fichier xul

tu rajoutes le le fichier css

 <?xml-stylesheet href="xbl/mesxbl.css" type="text/css"?>

Et voila. je pense que ca ca doit fonctionné, la seule chose dont je suis pas sur, c'est que FF te permette de remplacer totalement le xbl d'origine par un autre qui en herite. Au pire tu rajoute un attribut sur tes balises menulist et tu change le CSS par

  menulist[type="attr="value"] {
     -moz-binding: url("chemin/mesxbl.xml#monmenulist");
  }

# Re: Surcharge (prototypage) de menulist

Envoyé par : aMan

Date : 15/03/2007 20:33

Salut hhf, Merci beaucoup pour ta soluce. Il est vrai que je me suis jamais vraiment penché sur les xbl et je pense que je vais tester ça ce soir ou demain (je suis un peu sur les rotules). Cependant je reste quand même curieux pour savoir si c'est possible de passer par le prototypage.

Ps : superbe boulot pour sudoxul que j'avais testé à ses débuts. A bientôt et merci encore.

# Re: Surcharge (prototypage) de menulist

Envoyé par : hhf

Date : 16/03/2007 01:56

Pour le prototypage je dirais que non. Tu peux le faire sur des Object du Core javascript (Array, Date, Etc), mais pas pour des NodeElements. Pense que pour les elements tu n'instancies pas directement les Object, mais tu passes par une sorte de factory : document.createElement("eltName");

Oui, je sais je ramene tout à l'objet... on se refait pas.... :-D

# Re: Surcharge (prototypage) de menulist

Envoyé par : aMan

Date : 17/03/2007 09:27

Mais il faut, il faut ramener tout à l'objet ;) Merci encore une fois pour tes réponses.

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.